【问题标题】:Google Maps add remove Polyline谷歌地图添加删除折线
【发布时间】:2015-07-12 22:15:22
【问题描述】:

我有一个关于从 Google 地图中“删除折线”的问题。在本文档中解释了如何添加或删除折线。 (https://developers.google.com/maps/documentation/javascript/examples/polyline-remove?hl=de)

但我的情况有点不同。 我有一个“addPolyline”函数,它在谷歌地图上添加折线。使用此功能,我可以添加折线,因此我可以返回“折线对象”,但我无法以相同的方式删除此折线。

如果你点击'addLines',它可以画一条线,但如果我点击removeLine,它不会被删除。

var map;
var flightPlanCoordinates;

function addPolyline(el){
    polyName = new google.maps.Polyline({
        path: el,
        strokeColor: '#FF0000',
        strokeOpacity: 1.0,
        strokeWeight: 2
  });
   return polyName;
}


function initialize() {
  var mapOptions = {
    zoom: 3,
    center: new google.maps.LatLng(0, -180),
    mapTypeId: google.maps.MapTypeId.TERRAIN
  };

  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  flightPlanCoordinates = [
    new google.maps.LatLng(37.772323, -122.214897),
    new google.maps.LatLng(21.291982, -157.821856),
    new google.maps.LatLng(-18.142599, 178.431),
    new google.maps.LatLng(-27.46758, 153.027892)
  ];  
}

function addLine(el) {
  el.setMap(map);
}

function removeLine(el) {
  el.setMap(null);
}

google.maps.event.addDomListener(window, 'load', initialize);

这里是小提琴:http://jsfiddle.net/aldimeola1122/gna00zwb/

我怎样才能做到这一点,你能帮我吗? 提前致谢。

【问题讨论】:

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


    【解决方案1】:

    您正在创建一条新的折线,然后将其移除。

    <input onclick="removeLine(addPolyline(flightPlanCoordinates));" type=button value="Remove line">
    

    如果要删除现有的折线,则需要保留对它的引用。

    <input onclick="removeLine(polyline);" type=button value="Remove line">
    <input onclick="polyline=addLine(addPolyline(flightPlanCoordinates));" type=button value="Add line">
    

    working fiddle

    var map;
    var flightPlanCoordinates;
    var polyline;
    
    function addPolyline(el) {
      polyName = new google.maps.Polyline({
        path: el,
        strokeColor: '#FF0000',
        strokeOpacity: 1.0,
        strokeWeight: 2
      });
      return polyName;
    }
    
    
    function initialize() {
      var mapOptions = {
        zoom: 3,
        center: new google.maps.LatLng(0, -180),
        mapTypeId: google.maps.MapTypeId.TERRAIN
      };
    
      map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    
      flightPlanCoordinates = [
        new google.maps.LatLng(37.772323, -122.214897),
        new google.maps.LatLng(21.291982, -157.821856),
        new google.maps.LatLng(-18.142599, 178.431),
        new google.maps.LatLng(-27.46758, 153.027892)
      ];
    }
    
    function addLine(el) {
      el.setMap(map);
      return el;
    }
    
    function removeLine(el) {
      el.setMap(null);
    }
    
    google.maps.event.addDomListener(window, 'load', initialize);
    html,
    body,
    #map-canvas {
      height: 100%;
      margin: 0px;
      padding: 0px
    }
    #panel {
      position: absolute;
      top: 5px;
      left: 50%;
      margin-left: -180px;
      z-index: 5;
      background-color: #fff;
      padding: 5px;
      border: 1px solid #999;
    }
    <script src="https://maps.googleapis.com/maps/api/js"></script>
    <div id="panel">
      <input onclick="removeLine(polyline);" type=button value="Remove line">
      <input onclick="polyline=addLine(addPolyline(flightPlanCoordinates));" type=button value="Add line">
    </div>
    <div id="map-canvas"></div>

    【讨论】:

    • 完美,但我没有想到保留参考,感谢 geocodezip。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2015-12-12
    • 2017-02-06
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多