Как определить входят ли географические координаты в область многоугольника, вершины которого так же заданы?
На Яндекс.Картах нарисовано несколько многоугольников. Координаты их вершин сохранены в базе. Есть координаты точки, полученные от геокодера. Как программно определить в какой из многоугольников попадают координаты искомой точки? То есть не загружая карты, а внутри своего кода?
Доп. Средствами Яндекс карт, но не в браузере. Может есть способ или библиотека. Или на крайний случай, средствами других КГС.
Или я чего-то не понял или у вас лыжи не едут. Нагуглить вхождении точки в многоугольник вроде должен мочь любой студент.
Если у вас всё в базе, так используйте spatial расширения для базы и считайте там.
Алгоритмы мне известны. Я не хочу начинать колхозить 3х-колесный велосипед, хочу сначала поискать типовые решения.
Координаты вершин в базе - абстракция, база, например, 1С файловая или MS SQL - я не слышал про sparital ext там. А в MySQl и PostgreSQL они, говорят, завяли давно.
Вопрос задавался "как это сделать средствами API Яндекс Карт, не загружая карты в браузер". Мне нужно получить на выходе веб-сервис, которому скармиливаешь массив полигонов и точку, а на выходе получаешь id полигона.
shachneff: Эээ, вы видимо из тех, кто ставит плагин pad_left? MSSQL имеет такое расширение лет уже 5 как. Про завяли я что-то не понял, питон 2.7 завял по-вашему?
Внешнего ЯК.API с вашей хотелкой нет, да и вряд ли вы где найдёте аналоги. Это как искать сервис для поиска текста в файле.
Не хотите свой велосипед, используйте возможности БД.
freeExec: Да, спасибо огромное за направление поиска! PostGIS из бесплатного, а из платного, но привычного - MS SQL, пространственные данные, честно говоря, даже не знал, что такое там есть, причем не как плагин, а в ядре.
Я наивно думал, что где-то в Яндекс-картах (или других картах) есть тупо функция Polygon.contains(coordPoint) которую можно "дернуть" программно.
freeExec: про js на клиенте знаю. Вообще все клиентское API ЯК знаю. Но думал, вдруг есть она же для сервера. И в этом как раз была суть вопроса. В любом случае спасибо за ответы, очень помогли нащупать направление