Я работаю над проектом, который основан на Symfony2. Я использую IvoryGoogleMapBundle комплект для создания Google Maps. Для карты мне нужно, чтобы она была центрирована на текущих пользовательских координатах.
Для этого я хочу использовать Geolocation HTML5 API вместо серверного решения.
В документации комплекта не представлено решение для этого случая.
Каков элегантный способ добавить эту функцию на карту Google, созданную с помощью IvoryGoogleMap?
Мы используем сервис для его генерации. Но основные настройки для карты довольно просты.
/** 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
файл и включите его в свой шаблон. В этом файле вы можете сделать что-то вроде этого:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(updateMap, error);
}
function updateMap(position) {
// location determined
}
position
содержит текущую позицию следующим образом:
position.coords.latitude, position.coords.longitude
используйте это так, например центрируйте карту там. Вы можете получить доступ к карте, которую вы создали в сервисе, через переменную Javascript. your_awesome_map
,
Других решений пока нет …