Геотаргетинг

С помощью API Яндекс.Карт можно определить предположительное местоположение пользователя, вычисленное на основе его IP адреса.

Примечание

При определении местоположения учитываются настройки региона пользователя на Яндексе.

Внимание

При использовании браузера Internet Explorer возможно некорректное отображение русских символов в случае, если кодировка страницы с картой отлична от utf-8. Решением данной проблемы служит изменение кодировки страницы на utf-8, либо указание данной кодировки при загрузке API:

<script charset="utf-8" src="https://api-maps.yandex.ru/1.1/index.xml" type="text/javascript"></script>

Информация о местоположении пользователя доступна в объекте YMaps.location и имеет следующие поля:

  • longitude - долгота;
  • latitude - широта;
  • zoom - масштаб (если доступен);
  • city - название города;
  • region - название региона;
  • country - название страны.

Если местоположение пользователя определить не удалось, то объект YMaps.location будет не определен, поэтому до начала использования нужно проверить существование этого объекта.

    // Создание экземпляра карты и его привязка к созданному контейнеру
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]),
    
    // Центр карты
    center,
    
    // Масштаб
    zoom = 10;

// Получение информации о местоположении пользователя
if (YMaps.location) {
    center = new YMaps.GeoPoint(YMaps.location.longitude, YMaps.location.latitude);

    if (YMaps.location.zoom) {
        zoom = YMaps.location.zoom;
    }

    map.openBalloon(center, "Место вашего предположительного местоположения:<br/>"
        + (YMaps.location.country || "")
        + (YMaps.location.region ? ", " + YMaps.location.region : "")
        + (YMaps.location.city ? ", " + YMaps.location.city : "")
    )
}else {
    center = new YMaps.GeoPoint(37.64, 55.76);
}

// Установка для карты ее центра и масштаба
map.setCenter(center, zoom);

Посмотреть пример в новом окне

Предыдущая
Следующая