【问题标题】:Remove single marker with phonegap and google maps api使用 phonegap 和 google maps api 删除单个标记
【发布时间】:2014-07-15 17:55:41
【问题描述】:

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

它根本不起作用。请帮我。谢谢。

【问题讨论】:

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


    【解决方案1】:

    改成

     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
                    ));
    
        }
    }
    

    【讨论】:

      【解决方案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);
      
      }
      

      【讨论】:

        猜你喜欢
        • 2014-08-04
        • 1970-01-01
        • 2015-07-16
        • 1970-01-01
        • 1970-01-01
        • 2012-07-20
        • 2012-05-24
        • 2013-05-02
        • 2014-09-02
        相关资源
        最近更新 更多