Fixed error in GastausboxDictConverter.to_python when the state already had an inn.
[philipp/winterrodeln/wrpylib.git] / wrpylib / wrmwcache.py
index 4b3df610d72329eb7f6cf50f1aa0ee265149e97d..4c3940ca0afc14c7ae7f750a7c46576cbb4ecaf7 100644 (file)
@@ -6,7 +6,6 @@
 from sqlalchemy import schema
 from sqlalchemy.sql import select
 from sqlalchemy.sql.expression import func as sqlfunc
-import geoalchemy.functions as geofunc
 from osgeo import ogr
 import formencode
 from wrpylib import mwdb, wrmwdb, mwmarkup, wrmwmarkup
@@ -183,7 +182,7 @@ def update_wrmapcache(connection):
                 if properties['type'] in wrmwmarkup.WRMAP_POINT_TYPES:
                     lon, lat = coordinates
                     label = properties.get('name')
-                    point_types = {u'gasthaus': u'hut', u'haltestelle': u'busstop', u'parkplatz': u'carpark', u'achtung': u'warning', u'punkt': u'point'}
+                    point_types = {u'gasthaus': u'hut', u'haltestelle': u'busstop', u'parkplatz': u'carpark', u'achtung': u'warning', u'foto': u'photo', u'verleih': u'rental', u'punkt': u'point'}
                     point_type = point_types[properties['type']]
                     sql = u'insert into wrmappointcache (page_id, type, point, label) values (%s, %s, POINT(%s, %s), %s)'
                     connection.execute(sql, (sledrun_page.page_id, point_type, lon, lat, label))
@@ -229,7 +228,7 @@ def update_wrregioncache(connection):
     connection.execute(wrregioncache.delete())
     
     # Query all combinations of sledruns and regions
-    sel = select([wrregion.c.id.label('wrregion_id'), wrregion.c.border.label('border'), wrsledruncache.c.page_id, wrsledruncache.c.position_longitude, wrsledruncache.c.position_latitude], geofunc.gcontains(wrregion.c.border, sqlfunc.point(wrsledruncache.c.position_longitude, wrsledruncache.c.position_latitude))) 
+    sel = select([wrregion.c.id.label('region_id'), sqlfunc.AsWKB(wrregion.c.border).label('border'), wrsledruncache.c.page_id, wrsledruncache.c.position_longitude, wrsledruncache.c.position_latitude], sqlfunc.contains(wrregion.c.border, sqlfunc.point(wrsledruncache.c.position_longitude, wrsledruncache.c.position_latitude)))
     ins = wrregioncache.insert()
 
     # Refill wrregioncache
@@ -237,8 +236,8 @@ def update_wrregioncache(connection):
     result = connection.execute(sel)
     for row in result:
         point.SetPoint(0, row.position_longitude, row.position_latitude)
-        if point.Within(ogr.CreateGeometryFromWkb(row.border.geom_wkb)):
-            connection.execute(ins.values(wrregion_id=row.wrregion_id, page_id=row.page_id))
+        if point.Within(ogr.CreateGeometryFromWkb(row.border)):
+            connection.execute(ins.values(region_id=row.region_id, page_id=row.page_id))
 
     # commit
     transaction.commit()