2016-01-20 4 views
1

Я пытаюсь искать в полигоне в AzureSearch. Я использую фильтр ниже. Я ищу результаты, но не хватает точки в -2.54321666666667, 60.6914166666667 и найти ее на -2.5437833333333333, 60.691433333333336. Оба ошибаются, правильно ???Поиск по полигону, возвращающему неверные результаты

$ = фильтр (geo.intersects (BeginningPoint, geography'POLYGON ((- 2,54321 60,6913, -2,54323 60,6913, -2,54323 60,6915, -2,54321 60,6915, 60,6913 -2,54321)))) & $ кол = истинная

для более удобного просмотра точки являются: -2,54321 60,6913, -2,54323 60,6913, -2,54323 60,6915, -2,54321 60,6915, -2,54321 60,6913

ответ

1

кажется, что вы должны определить полигон в порядке по часовой стрелке чтобы захватить внутреннюю часть области. Поэтому, когда я перевернул точки 2-4, он начал возвращать правильное подмножество.

Я все еще немного запутался в первоначальном поиске, так как он вернул несколько сотен точек (гораздо меньше, чем общий остаток в моем индексе), но у меня нет времени экспериментировать дальше прямо сейчас.

2

Ваши очки должны быть определены против часовой стрелки, а не по часовой стрелке. Эти очки -2.54321 60.6913 (bottom right), -2.54323 60.6913 (bottom left), -2.54323 60.6915 (top left), -2.54321 60.6915 (top right), -2.54321 60.6913 (bottom right) определены по часовой стрелке, и сбрасывали их.

Смежные вопросы