删除标记周围的多边形/圆圈?

时间:2012-02-28 03:22:38

标签: google-maps-api-3

我希望你能提供帮助。我有一个双管齐下的问题,但我对javascript和google maps API(v3)都很陌生,所以请保持温和。

我要做的是根据地址向地图添加标记,例如。地理编码,然后在那个标记的任何地方,在半径5km处围绕它画一个圆圈。我找到了一些代码来做圆圈,还有地理编码,两者都很好地协同工作。

问题是,我想让标记可拖动到新位置,一旦在新位置,删除旧圆圈,并绘制一个新圆圈。

要了解我想要实现的目标,请查看http://www.gleff.com/test/

通过上面的示例,如果您对地址进行地理编码,则会以标记位置为中心并绘制圆圈。我想将标记拖到其他位置,然后删除旧圆圈,并根据新位置绘制新圆圈。目前,它只是将标记拖动到一个新位置,但圆圈保持在原位。

我认为最好的方法是拖动标记,然后删除圆圈的叠加层,然后在新位置重新添加。

问题1.如何删除圆圈(叠加层) 问题2.如何在拖动标记

后在新位置重新添加它

我尝试了很多东西,比如在数组中添加标记,例如。 var markers = [];  然后尝试使用此作为示例清除叠加层。

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

我没有成功,因为我可能没有把代码放在正确的位置。

我已经在javascript的多个部分中尝试了叠加删除代码,但似乎没有任何效果。我试图将代码添加到代码的所有位置,而不是遍历代码的所有位置,而是故意删除对它的所有引用以使其更容易理解。

那么..任何人都可以提供任何帮助吗?我只是想围绕一个标记绘制圆圈,然后能够重新定位该标记(包括圆圈)。但我想了解如何删除圆圈,因为最终,我将有多个标记,并希望从地图中永久删除单个标记(包括圆圈)。

注意:我很确定我可以解决如何删除标记本身,但圆圈不想被删除。例如,如果我对地址进行两次地理编码,则圆圈会再次绘制,使其变暗,而不是从地图中删除,然后重新绘制。

任何帮助都会很棒。

由于 杰夫

注意:我修改过的唯一代码是在main.js

2 个答案:

答案 0 :(得分:0)

我不熟悉API,但是当您开始拖动标记时以及放下标记时,您可以查看API中可用的事件。创建绘制和删除标记周围圆圈的事件侦听器是可行的方法。对不起,我无法帮助你解决你需要听的事件......

答案 1 :(得分:0)

这给出了一个带有圆形覆盖层的可移动标记

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);