2015-11-26 2 views
0

У меня есть экспертная ситуация, которая, насколько мне известно. У меня есть многоугольная таблица и столбец с именем geom, который содержит миллионы многоугольников с полигональным типом данных. Когда я отправляю lat, lang, я хочу выбрать правильный многоугольник, содержащий эти координаты. Я искал так много ответов и не нашел нужного результата. Моя версия db - 5.6. Надеюсь, ваши специалисты помогут в решении этой проблемы.Найти подходящий многоугольник содержит определённую точку

Вот один результат из моей колонки с именем GEOM,

'POLYGON((32.832677661456 39.604395901764,32.835512741784 39.604451520825,32.835457628151 39.604632934478,32.83542524568 39.604933725003,32.835590964324 39.605704952638,32.834519250891 39.605843434172,32.834339561944 39.605868865521,32.833763769865 39.605950014069,32.833486350914 39.606015654716,32.833173277993 39.606086197256,32.832114796112 39.606214593239,32.832301872536 39.605240473323,32.832677661456 39.604395901764))',0 

Мне нужно, чтобы получить этот многоугольник Когда я искал с этой точкой +32,832677661456 +39,604395901764

С уважением

+0

Можете ли вы дать несколько примеров записей из вашего полигона таблицы, чтобы убедиться, что мы понимаем, как многоугольники кодируются в таблице MySql? – trincot

+0

sqlfiddle будет выглядеть как-то [Like This Fiddle] (http://www.sqlfiddle.com/#!9/05b0b), но с реальным с несколькими строками. Создайте левую часть. И опубликуйте URL. Затем мы либо делаем правильную часть, и отправляем ее в виде URL-адреса, либо публикуем здесь, или оба, конечно. – Drew

ответ

2

Это возвращает результат:

select AsText(polygon.geom) 
from polygon 
where Contains(polygon.geom, 
      PointFromText('POINT(32.832677661456 39.604395901764)')); 

См. Это fiddle, w hich имеет две таблицы: polygon (с одним предоставленным вами значением) и location с двумя записями, одна из которых имеет указанную вами точку, а другая с точкой вне данного полигона.

скрипку SQL находит, что первая точка находится внутри многоугольника:

select AsText(polygon.geom), AsText(location.geom) 
from polygon, location 
where Contains(polygon.geom, location.geom); 
+0

Спасибо !!! Ты спасла много неприятностей! Еще раз спасибо! – mertizci

+0

Добро пожаловать, на самом деле я многому научился, отвечая на ваш вопрос. – trincot

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