Блог API Яндекс.Карт

Пример: определение местоположения с использованием Geolocation API

9 августа 2012, 16:05

Мы уже публиковали статью и пример использования Geolocation API для API Яндекс.Карт 1.x в 2010 году. До сих пор она остается одной из самых популярных в блоге.

В связи с выходом версии 2.0 API Яндекс.Карт мы решили обновить пример и переписали код.

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

Сам API Яндекс.Карт также умеет определять местоположение пользователя на основе его IP-адреса. Но этот способ не такой точный, как при использовании Geolocation API.

Местоположение пользователей уже определяют, например, сайты allcafe.ru и esosedi.ru.

17 комментариев
Подписаться на комментарии к посту

Подскажите, пожалуйста, как этот пример преобразовать, чтобы местоположение определялось сразу при открытии, а не после нажатия на кнопку

кнопка не нужна?

нет, не нужна
чтобы сразу загружалась карта с определенным местоположением

можете использовать Geolocation API напрямую

вызвав метод navigator.geolocation.getCurrentPosition(

    onGeolocationSuccess, // Функция будет вызвана при удачном определении местоположения (в ней инициализируем карту с пришедшими в параметрах координатами центра)
    onGeolocationError, // функция, будет вызвана, если произошла ошибка (в ней можно инициализировать карту в какой-то точке по-умолчанию)
    options // опции геолокации
);

Спасибо!

а можно пример?

Пример чего?

чтобы сразу загружалась карта с определенным местоположением, в идеале что бы сразу был построен маршрут к определённой точке на карте

Ну определяйте местоположение не по нажатию на кнопку, а при загрузке страницы. Вроде это

еще проще

Собственно пример этого и попросил :)

Переделайте существующий под свои потребности, в чем затруднение?

Сорри, я только начинающий. Вы можете написать на примере, как вызывать этот метод.

Я пробовал но у меня не получилось.

Сейчас при загрузке только это:

================

    var myMap = new ymaps.Map('tab-1', {

            center: [координаты], 

            zoom: 12,

            behaviors: ["default", "scrollZoom"]

        }),

================

Посмотрите эту статью. В ней карта создается уже по местоположению

Подскажите пожалуйста, есть возможность определить местопложение в php?

Задача определить город посетителя.

По ip наверное можно, но кажется у Яндекса нет такого публичного сервиса

На данный момент пришлось извращаться и на клиенте получать город, и отправлять аяксом на сервер.

я вот вижу что если просто сходить по ссылке

http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU

то во первых же строках можно наблюдать что-то вроде

 

project_data["geolocation"] = {longitude:xxx,latitude:yyy,zoom:12,city:'Мой город',region:'Моя область',country:'Россия'}
так что можно вытащить это curl'om и разобрать регексом, вопрос не изменится ли внезапно формат.

 

 PS :подумал и понял что не сработает, нужен же ip, если курлом, то ip ,будет сервера, а не клиента.

В горле пока они не прикрыли свой сервис была возможность скопировать код и вставить на сайт чтобы получить карту с местоположение андроид аппарата который залогинен на локаторе. Очень много пользователей пишет гневные отклики по поводу остановки сервиса и вот вопрос с яндекс так сделать можно?