使用gmaps.js从Google地图中删除圈子

时间:2015-10-29 20:59:20

标签: javascript google-maps gmaps.js

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

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

  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从圆圈分解为标记,或者标记删除是否应删除绑定到它的圆圈?

我不知所措 - 任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您正在移除所有标记,但我看不到您从地图中删除圆圈的位置,您可以通过将其地图设置为null来删除它:

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