Плакат первый раз! У меня есть определенный замкнутый многоугольник с набором координат, которые я нарисовал на картах Google и определил в SQL-запросе. У меня есть база данных, которая содержит атрибут формы (я не уверен, что это геометрический или географический тип, но я как бы пробовал оба).
Я пытаюсь получить все записи в таблице базы данных, где фигура находится внутри многоугольника (координаты широты и долготы тоже будут в порядке). Я ничего не получаю, когда внутри многоугольника и за его пределами есть точки. Запуск WHERE @g.STIntersects(Shape) = 0
тоже ничего не извлекает, поэтому я уверен, что это не проблема ориентации кожуры.
Я использую SQL Server 2012. Я пробовал ST Содержит и ST Intersects, а также пытался взять необработанные координаты, добавив новый столбец геометрических точек из широты и долготы и наблюдая, пересекаются ли они с моим многоугольником, но возникает та же проблема . Различные другие сообщения были похожи, но не затрагивали корень моей проблемы.
DECLARE @g geometry = geometry::STGeomFromText('polygon ((
-123 45,
...
-123 44
-123 45 ))', 4326);
SELECT *
FROM [Database file].[schema name].[table name]
WHERE @g.STIntersects(Shape) = 1
Я должен получить список точек, которые находятся внутри многоугольника, и я ничего не получаю, хотя ручная проверка координат показывает, что некоторые точки находятся в многоугольнике, а некоторые нет.