我在我的项目中使用phonegape,google maps api v3和navigator.geolocation.watchPosition函数。
我试着追随自己的立场。我有标记问题。应用程序运行良好,但不会删除旧标记。当我得到新的坐标时,它会一直创造新的标记。
function onSuccess(position) {
var image = 'arrow1.png';
var pos_table = ['Here I am', position.coords.latitude, position.coords.longitude];
var where_i_am = new google.maps.LatLng(pos_table[1], pos_table[2]);
var my_position = new google.maps.Marker({
position: where_i_am,
map: map,
title: pos_table[0],
icon: image
});
map.panTo(new google.maps.LatLng(
position.coords.latitude,
position.coords.longitude
));
}
我添加了setmap(null),但现在地图上没有任何标记
for (var i = 0; i < my_position.length; i++) {
my_position[i].setMap(null);
}
当我尝试:
if (my_position) {
for (var i = 0; i < my_position.length; i++) {
my_position[i].setMap(null);
}
}
它根本不起作用。请帮我。 THX。
答案 0 :(得分:2)
您可以尝试使用更新旧标记的位置,而不是尝试删除旧标记。
var my_position;
function onSuccess(position) {
var image = 'arrow1.png';
var pos_table = ['Here I am', position.coords.latitude, position.coords.longitude];
var where_i_am = new google.maps.LatLng(pos_table[1], pos_table[2]);
if (my_position) {
my_position.setPosition(where_i_am);
} else {
my_position = new google.maps.Marker({
position: where_i_am,
map: map,
title: pos_table[0],
icon: image
});
}
map.panTo(where_i_am);
}
答案 1 :(得分:0)
更改为
var my_position = new Array();
function onSuccess(position) {
for(var i = 0; i< 10; i++){
var image = 'arrow1.png';
var pos_table = ['Here I am', position.coords.latitude, position.coords.longitude];
var where_i_am = new google.maps.LatLng(pos_table[1], pos_table[2]);
my_position[i] = new google.maps.Marker({
position: where_i_am,
map: map,
title: pos_table[0],
icon: image
});
map.panTo(new google.maps.LatLng(
position.coords.latitude,
position.coords.longitude
));
}
}