我有以下代码,在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');
}
新标记的创建工作正常,当位置更新时平移到新点也可以正常工作,只是标记不会改变它的位置
有什么想法吗?
提前致谢
答案 0 :(得分: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);
}