使用phonegap和google maps api删除单个标记

时间:2014-05-26 23:24:44

标签: javascript google-maps google-maps-api-3

我在我的项目中使用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。

2 个答案:

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

    }
}