Я пытался разделить необработанные данные о дороге на сегменты. Сначала я создал таблицу road_segments. Затем я преобразовал содержимое таблицы дорог в серию связанных сегментов дорог, используя shapely.
Для каждой дороги я начинаю с загрузки ее названия и геометрии в память.
Код до сих пор работает правильно.
У меня есть геометрия LineString дороги, я хочу разделить ее в каждой точке, где она касается или пересекает другую дорогу. Для этого я пытаюсь построить список перекрестков для этой дороги.
crossroads = []
cursor.execute("SELECT ST_AsText(centerline) FROM ROADS" +
"WHERE ST_Touches(roads.centerline, " +
"ST_GeomFromText(%s)) OR ST_Crosses(" +
"roads.centerline, ST_GeomFromText(%s))",
(wkt, wkt))
for row in cursor:
crossroad = shapely.wkt.loads(row[0])
crossroads.append(crossroad)
Но выходит следующая ошибка:
---------------------------------------------------------------------------
ProgrammingError Traceback (most recent call last)
<ipython-input-9-0d71c4db883b> in <module>()
4 "ST_GeomFromText(%s)) OR ST_Crosses(" +
5 "roads.centerline, ST_GeomFromText(%s))",
----> 6 (wkt, wkt))
ProgrammingError: syntax error at or near "."
LINE 1: ...sText(centerline) FROM ROADSWHERE ST_Touches(roads.centerlin...
Когда я отредактировал код, как показано ниже:
crossroads = []
cursor.execute("SELECT ST_AsText(centerline) FROM ROADS WHERE ST_Touches(roads.centerline, " +
"ST_GeomFromText(%s)) OR ST_Crosses(" +
"roads.centerline, ST_GeomFromText(%s))",
(wkt, wkt))
for row in cursor:
crossroad = shapely.wkt.loads(row[0])
crossroads.append(crossroad)
Следующая ошибка:
---------------------------------------------------------------------------
InternalError Traceback (most recent call last)
<ipython-input-5-b50bc9a8488c> in <module>()
3 "ST_GeomFromText(%s)) OR ST_Crosses(" +
4 "roads.centerline, ST_GeomFromText(%s))",
----> 5 (wkt, wkt))
6 for row in cursor:
7 crossroad = shapely.wkt.loads(row[0])
InternalError: current transaction is aborted, commands ignored until end of transaction block
FROM ROADS
иWHERE ST_Touches
? - person Jeremy Weirich   schedule 25.05.2016