2017-01-18 4 views
0

Просто быстрый запрос - я уверен, что у него есть быстрый ответ :) Я пытаюсь перебрать массив точек, определяющих многоугольник на картах Google, и изменить их (моя тестовая программа просто уменьшая широту на небольшое количество, чтобы увидеть, могу ли я заставить его работать). Я взял свой экспериментальный код из примера Бермудского треугольника, но с массивом LatLong, а не MVC.изменение google maps polygon vertices

triangleCoords = [ 
     new google.maps.LatLng(25.774, -80.190), 
     new google.maps.LatLng(18.466, -66.118), 
     new google.maps.LatLng(32.321, -64.757) 
    ]; 

    bermudaTriangle = new google.maps.Polygon({ 
     paths: triangleCoords, 
     strokeColor: '#FF0000', 
     strokeOpacity: 0.8, 
     strokeWeight: 2, 
     fillColor: '#FF0000', 
     fillOpacity: 0.35, 
     map: map 
    }); 

И я пытаюсь изменить точки с этим:

var vertices = bermudaTriangle.getPath(); 

    for (var i =0; i < vertices.getLength(); i++) { 
     var xy = vertices.getAt(i); 
     vertices.setAt(i, new google.maps.LatLng(xy.lat()-0.01, xy.lng())); 
    } 

Но это не работает. Кто-нибудь может понять, что не так? Спасибо

ответ

0

У вас есть массив координат, сохраненный как переменная vertices, которую вы затем обновили новыми значениями ... а потом что? Все, что вы сделали, это обновление массива.

Если вы хотите, чтобы перерисовать полигон, вы также должны затем сделать:

bermudaTriangle.setPath(vertices); 
+0

Спасибо, я забыл об этом. У меня все еще есть проблемы; ошибка заключается в строке: vertices.setAt (i, новый google.maps.LatLng (xy.lat() - = 0.01, xy.lng())); - указанная ошибка: «ReferenceError: недопустимое назначение левой стороны» – user3713442

Смежные вопросы