使用 gmaps.js 从 google 地图中删除圆圈

Remove circles from google maps with gmaps.js

我使用 gmaps javascript 工具包在标记周围附加了一个圆圈。

ajax调用returns车辆信息,我运行通过一个简单的解析器运行。

  var status_text = "";
  var records = result.split("*");
  var len = records.length - 1; 
  for (var i = 0; i < len; ++i) {
    var record = records[i].split("|");
    var lll = new google.maps.LatLng(record[4], record[5]);

    var m = current_map.addMarker({
    lat: record[4],
    lng: record[5],
    title: "Vehicle :" + record[2],
    labelStyle: { opacity: 0.50 },
    icon: image
  });


  var c = current_map.drawCircle({
    strokeColor: '#000000',
    strokeOpacity: 0.4,
    strokeWeight: 2,
    fillColor: '#c3fc49',
    fillOpacity: 0.15,
    radius: eval(record[18]) * 2
  });

  c.bindTo('center', m, 'position');

我有一个计时器设置需要删除并重新绘制标记以及相关的圆圈。

正在尝试的代码是

var VehicleTicketMovementTimer = setInterval(function (){
  var x = current_map.markers.length;
  for (var i = 0; i < x; i++) {
    current_map.removeMarker(i);
  }
  GetOpenServiceOrders();
  GetLatestVehicleStatus2();
  }, 10000);

看起来圆圈的颜色变得更纯了,就好像它没有被擦除一样,如果车辆在行驶,标记将没有轨迹地移动,但圆圈将在新位置绘制, 没有擦除之前的圈子。

我是否需要断开 bindTo 从圆圈到标记,或者标记移除是否应该移除绑定到它的圆圈?

我很茫然 - 任何帮助将不胜感激。

您要删除所有标记,但我看不到您要从地图上的哪个位置删除圆圈,您可以通过将其地图设置为空来删除它:

var VehicleTicketMovementTimer = setInterval(function () {
    var x = current_map.markers.length;
    for (var i = 0; i < x; i++) {
        current_map.removeMarker(i);
    }
    c.setMap(null); //Add this line.
    //if the above does not work, try this:
    c.remove();
    GetOpenServiceOrders();
    GetLatestVehicleStatus2();
}, 10000);