Solr пространственный поиск, ошибка пересечения полигонов

Я пытаюсь выполнить пространственный поиск в SOLR 5.0. Моя система запущена и работает, но иногда я сталкиваюсь с этой ошибкой, я погуглил, но не нашел объяснения как такового, кто-нибудь, пожалуйста, помогите мне с этим.

Моя ошибка

because: com.spatial4j.core.exception.InvalidShapeException: Self-intersection at or near point 
(13.143009111281323, 80.07316589355469, NaN)","code":400}})

Мой запрос:

Intersects(POLYGON((13.142340452070176 80.07522583007812,13.141003126359843 80.079345703125
,13.141003126359843 80.08621215820312,13.1383284530778 80.09445190429688,13.1383284530778 80.101318359375
,13.136991105507466 80.11367797851562,13.131641642380112 80.14114379882812,13.128966867118496 80.15350341796875
,13.126292062732247 80.16311645507812,13.124954649619115 80.17135620117188,13.111580118251648 80.17135620117188
,13.099542418228534 80.15899658203125,13.095529720741494 80.10543823242188,13.09820485966459 80.10543823242188
,13.099542418228534 80.10406494140625,13.102217513557752 80.10406494140625,13.103555050321653 80.10269165039062
,13.106230102044576 80.101318359375,13.114255082724767 80.101318359375,13.1155925540513 80.09994506835938
,13.118267474880913 80.09857177734375,13.119604924382593 80.09857177734375,13.124954649619115 80.0958251953125
,13.127629468565612 80.0958251953125,13.130304258390225 80.09445190429688,13.131641642380112 80.09445190429688
,13.134316388511614 80.09307861328125,13.136991105507466 80.09033203125,13.139665793362148 80.0848388671875
,13.141003126359843 80.08346557617188,13.141003126359843 80.08209228515625,13.142340452070176 80.08071899414062
,13.142340452070176 80.0738525390625,13.14367777049247 80.07247924804688,13.14367777049247 80.07110595703125
,13.142340452070176 80.07522583007812)))distErrPct=0

person Dimag Kharab    schedule 24.04.2015    source источник


Ответы (1)


Итак, давайте посмотрим на полигон:

полный сюжет

Выглядит разумно, но довольно занято в правом нижнем углу:

Увеличить правый нижний угол

Там вы можете увидеть самопересечение, а самопересекающиеся многоугольники неприемлемы (см. Solr Spatial search с самопересекающимися полигонами для получения дополнительной информации об этом).

Мне кажется, что вы пытаетесь быть более точным, чем способно ваше приложение.

person femtoRgon    schedule 24.04.2015
comment
Спасибо @femtoRgon, на самом деле я пытаюсь нарисовать многоугольник от руки на карте Google.. в любом случае, я видел, что многие люди советовали сделать jts-буфер (0). Есть идеи ? - person Dimag Kharab; 24.04.2015