Как обновить состояние карты - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь создать многоугольник по щелчку карты и каждый раз, когда я добавляю новый объект 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);

          }

1 Ответ

0 голосов
/ 27 мая 2019

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