谷歌地图 API watchPosition

Posted

技术标签:

【中文标题】谷歌地图 API watchPosition【英文标题】:Google maps API watchPosition 【发布时间】:2013-04-24 12:34:43 【问题描述】:

我正在构建一个网络应用程序,以便使用地理定位和 GPS 在用户当前位置显示一个标记。这是我的代码

var marker;
 $(window).load(function() 
    myOptions =  zoom: 20, mapTypeId: google.maps.MapTypeId.ROADMAP ;
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var watchId = navigator.geolocation.watchPosition(centerMap); 
 );



function centerMap(location)

var myLatlng = new google.maps.LatLng(location.coords.latitude,location.coords.longitude);
map.setCenter(myLatlng);
map.setZoom(15);

    $("#lat").text("Latitude : " + location.coords.latitude);
    $("#lon").text("Longitude : " + location.coords.longitude);
    //show current location on map
    marker = new google.maps.Marker(
    position: myLatlng,
    map: map,
    zIndex:1
    );

navigator.geolocation.clearWatch(watchId);

 

此代码有效,但随着用户更改位置,它会不断添加标记。 如何在当前用户位置只显示一个标记?

【问题讨论】:

【参考方案1】:

每次调用 centerMap 时都不会生成一个新标记,只需使用 marker.setPosition(myLatlng) 更新其位置即可。

【讨论】:

以上是关于谷歌地图 API watchPosition的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图显示错误 Api 项目未授权

减少谷歌地图成本计算,只能调用谷歌地图javascript api

谷歌地图 API 变化?

谷歌地图方向api:python vs javascript

谷歌地图 API 方向

Android 谷歌地图 API