【问题标题】:How to update the state of the map如何更新地图的状态
【发布时间】:2019-10-13 06:28:16
【问题描述】:

我试图在点击地图时创建一个多边形,每次我向数组中添加一个新的 LatLng 对象时,我都会将它分配给 Polygon 对象,但我意识到多边形也保存了旧值并且不仅仅得到新创建的数组的值。分配新更新的数组后,如何重新渲染多边形。

        function add_point(map, location) {
           upcoming_point = {lat: location.lat(), lng:location.lng() }
           poligon_array.push(upcoming_point)

           if(polygon_array.length>5){
             polygon_array.shift();
           }
           create_Polygon(polygon_array);
         }

         function create_Polygon(polygon_array) {
             var Polygon = new google.maps.Polygon({
                 paths: polygon_array,
                 strokeColor: '#FF0000',
                 strokeOpacity: 0.8,
                 strokeWeight: 2,
                 fillColor: '#FF0000',
                 fillOpacity: 0.35
               });
              Polygon.setMap(map);

          }

【问题讨论】:

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


    【解决方案1】:

    Polygon.setPath(newArrayOfPoints) 将更新多边形。

    var polygon;
    
    function add_point(map, location) {
      upcoming_point = {lat: location.lat(), lng:location.lng() }
      poligon_array.push(upcoming_point)
    
      if(polygon_array.length > 5){
        polygon_array.shift();
      }
      if (polygon) {
        polygon.setPath(polygon_array);
      } else {
        polygon = create_Polygon(polygon_array);
      }
    }
    
    function create_Polygon(polygon_array) {
      var Polygon = new google.maps.Polygon({
        paths: polygon_array,
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: '#FF0000',
        fillOpacity: 0.35
      });
      Polygon.setMap(map);
      return Polygon;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      相关资源
      最近更新 更多