Symfony2: API геолокации HTML5 в IvoryGoogleMapBundle

Я работаю над проектом, который основан на Symfony2. Я использую IvoryGoogleMapBundle комплект для создания Google Maps. Для карты мне нужно, чтобы она была центрирована на текущих пользовательских координатах.

Для этого я хочу использовать Geolocation HTML5 API вместо серверного решения.

В документации комплекта не представлено решение для этого случая.

Каков элегантный способ добавить эту функцию на карту Google, созданную с помощью IvoryGoogleMap?

-1

Решение

Сначала создайте свою карту:

Мы используем сервис для его генерации. Но основные настройки для карты довольно просты.

/** var \Ivory\GoogleMapBundle\Model\MapBuilder $map */
$map = $mapBuilder->build();
// any additional config goes here.
// make sure you set the Javascript Variable name like so:
$map->setJavascriptVariable('your_awesome_map');

Теперь визуализируем карту:

{{ google_map_container(map) }}
{{ google_map_js(map) }}

Наконец, вы можете ввести свой собственный код Javascript:

Настроить javascript файл и включите его в свой шаблон. В этом файле вы можете сделать что-то вроде этого:

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(updateMap, error);
}

function updateMap(position) {
// location determined
}

position содержит текущую позицию следующим образом:

position.coords.latitude, position.coords.longitude

используйте это так, например центрируйте карту там. Вы можете получить доступ к карте, которую вы создали в сервисе, через переменную Javascript. your_awesome_map,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]