2013-04-24 205 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)更新其位置即可。