# HG changeset patch # User fknauft # Date 1296650565 -3600 # Node ID 3369c21b66e015605d82a4bea89c2033a581db3f # Parent a7087ee57d09f1cd3b2be2ab4282dbf9aa49c8c9 polygon-Layers diff -r a7087ee57d09 -r 3369c21b66e0 RestDbGisApi.py --- a/RestDbGisApi.py Wed Feb 02 13:19:50 2011 +0100 +++ b/RestDbGisApi.py Wed Feb 02 13:42:45 2011 +0100 @@ -161,7 +161,7 @@ paramstr = urllib.urlencode(params) return "%s/db/%s/%s?%s"%(baseUrl,schema,table,paramstr) - def getKmlData(self, schema, table, ids=None, sortBy=1, gisIdField=None, latField=None, lonField=None): + def getKmlData(self, schema, table, ids=None, sortBy=1, gisIdField=None, latField=None, lonField=None, geometry="point"): """returns data structure for KML template""" logging.debug("getKMLdata gid=%s lat=%s lon=%s"%(gisIdField,latField,lonField)) # Mapping a set of points from table-based SQL-query: @@ -189,7 +189,12 @@ data = self.executeSQL(qstr,idList) fieldMap = self.getFieldNameMap(data['fields']) - + try: + geomstr='select astext(st_simplify(transform(the_geom,4326),0.02)) from "%s"."%s"'%(schema,table) + geomdata=self.executeSQL(geomstr) + except: + geomdata=None + if (gisIdField is None) and (latField is None or lonField is None): # no fields given - choose automagically sql = 'SELECT field_name FROM public.gis_table_meta_rows WHERE table_name = %s and gis_type = %s' @@ -225,6 +230,7 @@ gisIdIdx = fieldMap.get(gisIdField,None) latIdx = fieldMap.get(latField,None) lonIdx = fieldMap.get(lonField,None) + the_geom=fieldMap.get("the_geom",None) logging.debug("gisidfield=%s idx=%s"%(gisIdField,gisIdIdx)) # convert data @@ -280,10 +286,13 @@ #kmlPlace['description'] = ""%desc kmlPlace['description'] = desc - kmlPlace['icon'] = '#marker_icon' - kmlPlace['coord_x'] = str(xCoord) - kmlPlace['coord_y'] = str(yCoord) - kmlPlace['coord_z'] = '0' + if geometry=='point': + kmlPlace['icon'] = '#marker_icon' + kmlPlace['coord_x'] = str(xCoord) + kmlPlace['coord_y'] = str(yCoord) + kmlPlace['coord_z'] = '0' + if geomtry=='poly': + kmlPlace['LinearRing']=geomdata.split('(')[4] kmlData.append(kmlPlace) #logging.debug("kmlData=%s"%(repr(kmlData))) @@ -405,7 +414,7 @@ kml4Marker=kml4Marker+attribute_string+"
\n" kml4Marker=kml4Marker+"]]>\n" - kml4Marker=kml4Marker+"#marker_icon\n" + kml4Marker=kml4Marker+"#marker_icon_red\n" kml4Marker=kml4Marker+"" kml4Marker=kml4Marker+""+str(xCoord)+","+str(yCoord)+",0\n" diff -r a7087ee57d09 -r 3369c21b66e0 gis_gui/blocks/layer.html.pt --- a/gis_gui/blocks/layer.html.pt Wed Feb 02 13:19:50 2011 +0100 +++ b/gis_gui/blocks/layer.html.pt Wed Feb 02 13:42:45 2011 +0100 @@ -40,6 +40,7 @@ Label Size Color + Geometry Shape connect markers with a line diff -r a7087ee57d09 -r 3369c21b66e0 gis_gui/blocks/layer.js --- a/gis_gui/blocks/layer.js Wed Feb 02 13:19:50 2011 +0100 +++ b/gis_gui/blocks/layer.js Wed Feb 02 13:42:45 2011 +0100 @@ -36,6 +36,7 @@ } $(this).find("option").filter(function(){return $(this).text() == params.size_field;}).attr("selected","true"); }); + $(be).find(".layer_geom_select"); $(be).find(".layer_color_select"); // $(be).find(".layer_color_select").load("../db/RESTdb/db/public/"+tablename+"?format=HTML&type=schema_table_rows&layout=select&element_id=rows #rows *", // function() { @@ -102,6 +103,7 @@ params.label_field = $(elem).find(".layer_label_select").val(); params.size_field = $(elem).find(".layer_size_select").val(); params.color_field = $(elem).find(".layer_color_select").val(); + params.geom_field = $(elem).find(".layer_geom_select").val(); params.shape_field = $(elem).find(".layer_shape_select").val(); params.connect_line = $(elem).find(".layer_line_checkbox").attr("checked"); return params; @@ -114,9 +116,12 @@ if (params.position_field && params.position_field != "Default") { paramstr += "&gis_id_field="+params.position_field; } - if (params.color_field!="red"){ + if (params.color_field!="None"){ paramstr += "&color_field="+params.color_field; } + if (params.geometry_field!="point"){ + paramstr += "&geometry_field="+params.geometry_field; + } if (params.connect_line) { paramstr += "&connect_line="+params.connect_line; } diff -r a7087ee57d09 -r 3369c21b66e0 gis_gui/head.pt --- a/gis_gui/head.pt Wed Feb 02 13:19:50 2011 +0100 +++ b/gis_gui/head.pt Wed Feb 02 13:42:45 2011 +0100 @@ -1,4 +1,6 @@
-

map Places In Time

+
+
+map Places In Time
\ No newline at end of file diff -r a7087ee57d09 -r 3369c21b66e0 gis_gui/icons/mappit_stand.png Binary file gis_gui/icons/mappit_stand.png has changed diff -r a7087ee57d09 -r 3369c21b66e0 zpt/KML_schema_table.zpt --- a/zpt/KML_schema_table.zpt Wed Feb 02 13:19:50 2011 +0100 +++ b/zpt/KML_schema_table.zpt Wed Feb 02 13:42:45 2011 +0100 @@ -61,7 +61,7 @@ ff0000ff - + ERD-0815: ERD-0815 @@ -71,6 +71,15 @@ 116.38,39.92,0
+ + + ERD-0815: ERD-0815 + +# #marker_icon + + tal:content="string:${place/LinearRing}">116.38,39.92,0 + + Path Red line visualizes path between locations