Отображение местоположения пользователей сайта на карте Google Map с помощью модулей Content Profile, Location, и GMap

01.12.2009

В этом материале будет показано как с помощью связки из модулей Content Profile, Location, и GMap сделать на сайте карту, которая отображала бы местоположения всех пользователей Вашего сайта. Для начала загрузите с сайта drupal.org и затем распакуйте в папке modules Вашего сайта следующие модули:

  • Content
  • Location
  • Location CCK
  • Content Profile
  • GMap
  • GMap Location
  • Views
  • Views UI

Активируйте данные модули. Не забудьте выставить в разделе «Разрешения» пользователям соответствующие права на использование модулей.
Далее Вам необходимо настроить модули. На странице настройки модуля GMap (admin/settings/gmap) нужно добавить ключ API для Google maps и активировать параметр Use AutoZoom. На странице настройки модуля Location (admin/settings/location) включите флажок напротив параметра «Google Map to set latitude and longitude» (это позволит организовать совместную работу модулей Gmap и Location) и активировать параметр JIT geocoding. В разделе Geocoding (admin/settings/location/geocoding), Вы должны активировать использование Google Maps для нужных стран.

Модуль Content Profile после активации создает новый тип материала, который называется "Profile" (профиль пользователя). В этом типе материалов Вам нужно добавить новое поле (cck field) для того, которое потом позволит пользователю указать свое местоположение (admin/content/node-type/profile/fields).

И при создании нового поля вводим следующую информацию:

  • Label: Местонахождение
  • Field: location
  • Select Field Type: Location
  • Widget: Location Field

И сохраняем поле. В появившемся новом окне с более подробными настройками поля измените параметры по своему усмотрению, или оставьте их по умолчанию:
Теперь, при создании или редактировании профиля (node/add/profile) пользователь сможет указать на карте координаты своего местоположения.

Если все работает правильно, то после сохранения материала и возвращения на страницу редактирования материала профиля (node/*/edit), Вы увидите карту google maps и маркер на том месте на карте, которое было указано пользователем.

Теперь вы можете создать новый вид (views) (admin/build/views/add), чтобы можно было отобразить местоположение пользователей на карте. Введите название Вашего вида, тип “node” и нажмите кнопку «Далее». Добавьте новый фильтр "Node: Type" - "Profile". Добавьте новую взаимосвязь (relationship) и выберете Content: Location (field_location). И добавьте поля "Location: Latitude" (используя Location relationship), "Location: Longitude" (используя Location relationship) и другие поля, которые Вы хотите чтобы отображались на карте. Стиль вида (Style) - «GMap». В настройках необходимо выбрать "Choose latitude and longitude fields" и укажите соответствующие поля для указания координат (широты и долготы).


Ну, вот, карта и готова, осталось сделать либо новый блок, либо отдельную страницу. И вы увидите на карте в виде маркеров местоположение всех пользователей, которые указали свои координаты в профиле.

Добавить в блог:

Для вставки в блог анонса данной статьи, скопируйте нижеприведенный код.

Комментарии (2)

Отличный модуль, спасибо

Интересно, надо будет попробовать

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA на основе изображений
Введите символы с картинки, не обращая внимание на пробелы и соблюдая регистр символов.