Предположим, что в таблице есть географический столбец myGeoColumn
, который содержит MultiPolygon
следующим образом:
MULTIPOLYGON( ((-99 56,-52 18,-88 -27,-99 56))),((-77 56, 90 30, 92 36, -77 56)) )')
Если я выдаю запрос, подобный этому:
SELECT * from myTable where ST_Intersection(myGeoColumn, ST_GeomFromText('POINT (-77 56)') is not null
, тогдазапрос завершается успешно, и я возвращаю строку - но я получаю также и весь MultiPolygon
.Я не могу определить, какой полигон был сопоставлен.
Как улучшить запрос, чтобы он возвращал только фактический совпадающий многоугольник внутри MultiPolygon
(в приведенном выше примере, многоугольник # 2)?Я считаю, что тот же вопрос применим, если столбец содержит GeometryCollection
.