Карты Google: получить точки, содержащиеся в нарисованном пользователем многоугольнике? - PullRequest
2 голосов
/ 21 июля 2010

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

Насколько я понимаю, это займет ГИС-вуду. Но прежде чем я начну изучать сложность PostGIS, мне интересно, есть ли лучший способ сделать это? Сайт работает в стандартном стеке LAMP, но я надеюсь убедить его перейти на Python / Nginx / PostgreSQL.

Ответы [ 2 ]

4 голосов
/ 21 июля 2010

Я не думаю, что нужно переходить на PostGIS.

  • Первые шансы на то, что ваш клиент получит список через базу данных MLS через адрес (улица fooview 123).Обновите этот список в файл kml
  • Используя Учебное пособие по Google Maps или Этот инструмент карты Нарисуйте многоугольник
  • , используя этот веб-сайт (см. карты) вы можете указать точку в многоугольнике (совпадать, если любой из ваших адресов находится в пределах границ многоугольника).Я думаю, что они делают это в более чем одном приложении.

РЕДАКТИРОВАТЬ

другой способ сделать точка-полигон в Googleкарты

1 голос
/ 21 июля 2010

Не думаю, что для этого потребуется столько ГИС-вуду, сколько вы думаете.Я хотел бы подойти к этому в три этапа:

  1. Создать координаты широты и долготы для каждого списка.Возможно, у вас уже есть эта информация в вашей базе данных.Если вы этого не сделаете, есть несколько бесплатных инструментов для этого.Мы запрограммировали приложение карт Google на работе, которое напрямую связано с нашей серверной инфраструктурой SQL, и я могу помочь вам настроить его в своем приложении, если это необходимо.

  2. Используйте GLatLng для возврата координат для произвольноготочки, в которых заинтересован респондент: http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng

  3. Использование математики для создания области точек (будет проще, если вы разрешите только 4 точки для произвольной формы), а затем используйте цикл forчтобы сравнить пары lat / long каждого листинга с областью.

Если ваша область слишком велика, чтобы сравнивать все списки с произвольной областью, выполните некоторую предварительную фильтрацию на основе состояния / графства /город / любые данные, которые у вас есть.

Надеюсь, что это поможет, -Chase

...