Удалить многоугольник / круг вокруг маркера? - PullRequest
0 голосов
/ 28 февраля 2012

Я надеюсь, вы можете помочь.У меня двойная проблема, но я довольно плохо знаком с javascript и API карт Google (v3), поэтому будьте осторожны.

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

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

Чтобы понять, чего я пытаюсь достичь, взгляните на http://www.gleff.com/test/

В приведенном выше примере, если вы геокодируетеадрес, он центрируется на месте маркера и рисует круг.Я хочу перетащить маркер в другое место, и удалить старый круг, и нарисовать новый круг на основе нового местоположения.В данный момент он просто перетаскивает маркер в новое место, но круг остается там, где он есть.

Я предполагаю, что лучший способ - перетащить маркер, затем удалить наложение круга и затем повторнодобавьте его в новом месте.

Задача 1. Как удалить круг (наложение) Задача 2. Как повторно добавить его в новом месте после перетаскивания маркера

У меня естьпробовал несколько вещей, таких как добавление маркеров в массив, например.маркеры var = [];а затем пытается очистить оверлеи, используя это в качестве примера.

http://code.google.com/apis/maps/documentation/javascript/examples/overlay-remove.html

Я потерпел неудачу, потому что, вероятно, не помещаю код в правильное место.

Я экспериментировал с кодом удаления оверлея внесколько частей JavaScript, но, кажется, ничего не работает.Вместо того, чтобы пройтись по всем местам кода, к которым я пытался добавить код, я намеренно удалил все ссылки на него, чтобы его было легче понять.

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

Примечание. Я уверен, чтоЯ могу решить, как удалить сами маркеры, но круг просто не хочет быть удаленным.Например, если я геокодирую адрес дважды, то круг просто нарисуется во второй раз, делая его темнее, а не удаляется с карты и перерисовывается.

Любая помощь будет большой.

Спасибо, Джефф

Примечание: единственный код, который я изменил, находится в main.js

Ответы [ 2 ]

0 голосов
/ 29 февраля 2012

Это дает подвижный маркер с наложенным на него кружком

function init() {
    var mapCenter = new google.maps.LatLng(56, -4);
    var map = new google.maps.Map(document.getElementById('map'), {
      'zoom': 10,
      'center': mapCenter,
      'mapTypeId': google.maps.MapTypeId.ROADMAP
    });

    // Create a draggable marker which will later on be binded to a Circle overlay.
    var marker = new google.maps.Marker({
      map: map,
      position: new google.maps.LatLng(56, -4),
      draggable: true,
      title: 'Drag me!'
    });

    // Add a Circle overlay to the map.
    var circle = new google.maps.Circle({
      map: map,
      radius: 5000// 5 km
    });
    //Bind circle to marker
    circle.bindTo('center', marker, 'position');
  }

  // Register an event listener to fire when the page finishes loading.
  google.maps.event.addDomListener(window, 'load', init);
0 голосов
/ 28 февраля 2012

Я не знаком с API, но вы могли бы посмотреть, какие события доступны в API, когда вы начинаете перетаскивать маркер, а также когда вы опускаете маркер.Создание слушателей событий, которые рисуют и удаляют круг вокруг маркера, - это путь.Извините, я не могу помочь вам с тем, ЧТО вам нужно слушать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...