0

我有以下代码,它获取 Android 上的用户位置,并创建或(应该)更新地图上的标记

var myPos = null;

function locSuccess(position) {

 var newPoint = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

 if(myPos == null) {
     myPos = new google.maps.Marker({
        'id':'myPos',
        'position':newPoint,
        'icon' : 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
     });
     $('#map_canvas').gmap('addMarker', myPos);
 } else {
    myPos.setPosition(newPoint); 
 }

 $('#map_canvas').gmap('get', 'map').panTo(newPoint);
 $('#map_canvas').gmap('refresh');  
}

新标记的创建工作正常,更新位置时平移到新点也工作正常,只是标记不会改变它的位置

有任何想法吗 ?

提前致谢

4

1 回答 1

1

像我一样保持变量中的位置不起作用,我必须像这样将变量分配给标记数组中的标记

var myPos = $('#map_canvas').gmap('get', 'markers')['myPos']; 

if(!myPos) {
    //Create a new marker
    $('#map_canvas').gmap('addMarker', {
        'id':'myPos',
        'position':newPoint,
        'icon' : 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
    });
    $('#map_canvas').gmap('option', 'zoom', 12);
} else {
    //If there is already a marker, update the position
    myPos.setPosition(newPoint); 
}
于 2013-07-16T01:41:07.947 回答