2013-04-24 160 views
3

Im建立一个网络应用程序,以便使用地理位置和GPS在用户当前位置显示标记。这是我的代码Google maps API watchPosition

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); 

} 

此代码可以正常工作,但会随着用户更改位置而不断添加标记。 如何在当前用户位置只显示一个标记?

回答

5

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