Symfony2:IvoryGoogleMapBundle中的HTML5 Geolocation API

时间:2014-11-08 10:44:37

标签: php google-maps symfony geolocation

我正在开发一个基于Symfony2的项目。我使用IvoryGoogleMapBundle捆绑包生成Google地图。对于地图,我需要它以当前用户坐标为中心。

为此,我想使用Geolocation HTML5 API,而不是服务器端解决方案。

在捆绑包的文档中,没有为此案例提供解决方案。

将此功能添加到使用IvoryGoogleMap生成的Google地图的优雅方式是什么?

1 个答案:

答案 0 :(得分:3)

首先生成地图:

我们使用服务来生成它。但是地图的基本设置非常简单。

/** 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访问您在服务中生成的地图。