Как я могу позволить пользователю рисовать несколько полигонов, используя плагин gmap3 или Google Maps Api v3 - PullRequest
1 голос
/ 01 сентября 2011

У меня не так уж много опыта работы с JavaScript и Google Maps Api.Чего я хочу добиться: у меня есть карта, на которой пользователь может либо поставить маркер, либо нарисовать многоугольник.Я использую плагин gmap3, и мне удалось сделать все, что я хотел с маркерами (например, добавление, редактирование, перетаскивание, удаление и т. Д.), Но у меня есть проблема с полигонами.Вот основной код:

    $('#map-mappoints').gmap3(
    {
        action:'init',
        options:{
            zoom: 7
        }
        ,
        events: {
            click: function(event, data) {
                if($(".map #poly").hasClass('active')){
                    placePoly(data.latLng);
                } else {
                    placeMarker(data.latLng);
                }
            }
        }
    },
    {
        action:"autofit"
    }
    );


    function placePoly(location) {
        $('#map-mappoints').gmap3({ 
            action: 'addPolygon',
            options:{
                strokeColor: "#FF0000",
                strokeOpacity: 0.8,
                strokeWeight: 2,
                fillColor: "#FF0000",
                fillOpacity: 0.35
            },
            callback: function(polygon){
                var path = polygon.getPath();
                path.push(location);
                console.log(path);
            }
        }
        )
    } 

Я вижу в консоли, что он создает поли, но он добавляет только один элемент пути, который является логическим, так как он срабатывает после каждого нажатия на карту, но я понятия не имею, какЯ должен сделать это, чтобы продолжить добавление новых элементов в многоугольник, а затем позволить пользователю остановиться (возможно, с помощью какой-нибудь кнопки на панели инструментов) и создать новое после нажатия кнопки «Новый поли».

Спасибо за любые подсказки.

пс.Английский не мой родной язык, поэтому прошу прощения за любые ошибки, я старался их избегать;)

1 Ответ

0 голосов
/ 16 марта 2012

Читайте под заголовком Параметры gmap3

http://gmap3.net/documentation.html

Для основного использования gmap3 принимает объекты в качестве параметров.Каждый объект - это действие, которое нужно выполнить.Действия выполняются в порядке их следования в списке параметров и каждый раз после завершения предыдущего.В этом примере сначала инициализируется карта Google, а затем добавляются два маркера

path

Упорядоченная последовательность координат, обозначающая замкнутый контур.В отличие от полилиний, многоугольник может состоять из одного или нескольких путей.В результате свойство paths может указывать один или несколько массивов координат LatLng.Простые полигоны могут быть определены с использованием одного массива LatLngs.Более сложные полигоны могут указывать массив массивов.Любые простые массивы преобразуются в MVCArrays.При вставке или удалении LatLngs из MVCArray автоматически обновляется многоугольник на карте.

MVCArray является изменяемым массивом, поэтому вы можете добавить в массив больше длинных и длинных координат, и многоугольники будут автоматически обновлены.

Надеюсь, это поможет вам!

greetz

...