Извините за отсутствие блеска, но это трудно описать ...
Позвольте мне сказать, что у меня есть две таблицы (cad и cad_polygon) ...
cad и cad_polygonиспользовать тот же столбец, который относится друг к другу (cad_pid) ...
cad имеет следующие столбцы: cad_pid, jrsdctn_id
, а cad_polygon содержит следующие столбцы: cad_pid, ogc_fid, wkb_geometry
Теперь, мой нижеприведенный запрос (пытаясь полдня) выбирает участок на основе градуса из длинной латинской координаты, из этого значительно меньшего подмножества полигонов, он находит их расстояние в метрах от заданногоlong, координата lat, затем отображает только многоугольники, центр тяжести которых находится в пределах 500 м от координаты long, lat.
SELECT SUBQUERY.cad_pid, SUBQUERY.ogc_fid, SUBQUERY.dist_meters,
SUBQUERY.wkb_geometry FROM (
SELECT cad_pid, ogc_fid,
CAST(ST_Distance_Sphere(
ST_Centroid(wkb_geometry),
ST_GeomFromText(
'POINT(00.0000 -00.0000)',
900914)
) AS numeric
) AS dist_meters, wkb_geometry
FROM cad_polygon
WHERE ST_DWithin(
ST_Centroid(wkb_geometry),
ST_GeomFromText(
'POINT(00.0000 -00.0000)',
900914),
0.01)
ORDER BY dist_meters ASC
) AS SUBQUERY
WHERE SUBQUERY.dist_meters < 500;
Я хочу добавить к этому и использовать список, который выпадает из этого запроса,присоединиться к моей другой таблице (cad), чтобы я мог дать дополнительный столбец "jrsdctn_id" для каждой результирующей строки ... т.е.:
Пример данных будет: cad:
cad_pid | jrsdctn_id
0001 | abc123
0002 | def456
0003 | dhk778
0004 | dsk730
cad_polygon:
cad_pid | ogc_fid | wkb_geometry
0001 | ht0101 | 67686687601010000200063D7987FF15ASD1518541DAW
0002 | hz4561 | 435453457601010000200063D7987FF15ASDFW4GF8DE4
0003 | yv0301 | 2626WD687601010000200063D7987FF15ASD1WE851D4D
0004 | vt9701 | D484DW4D8441D8W1C684V63D7987FF15ASD1D7DW4848D
Ожидаемые результаты:
cad_pid | jtsdctn_id | ogc_fid | dist_meters | wkb_geometry
0002 | def456 | hz4561 | 192.769 | 43545...
0004 | dsk730 | vt9701 | 342.548 | D484D...
Если какой-нибудь sql wizЯ могу помочь, было бы здорово!