我有一个代码,该代码从sql数据库获取与所选文本相关的位置。对于哪个文本,我有一个按钮(btn_locations
),按钮的类型(标记,多边形,圆形,矩形和折线)具有属性,其中包含用于在地图上设置相关形状的数据。
在单击每个按钮之前,直到在地图上显示形状的那一刻,一切都很好。我没有得到的是如何将地图设置为空,删除所有形状。
我要记住的是按类型获取在地图上显示的形状,并将每个形状(标记,多边形,圆形,矩形和折线)设置为null,但我没有找到具体方法。
var btn_map = document.getElementsByClassname('btn_locations');
for (var i=0; i < btn_mapa.length; i++) {
google.maps.event.addDomListener(btn_map[i],'click',function() {
var marker_data = this.getattribute('data-marker');
var polyline_data = this.getattribute('data-polyline');
var rectangle_data = this.getattribute('data-rectangle');
var circle_data = this.getattribute('data-circle');
var polygon_data = this.getattribute('data-polygon');
if (marker_data != '') {
var markers = (new Function("return [" + marker_data + "];")());
for (var k = 0; k < markers.length; k++) {
var marker = new google.maps.LatLng(markers[k].lat,markers[k].lng);
markers[k] = new google.maps.Marker({
position: marker,map: map,}
});
}
}
if (polyline_data != '') {
var polylines = (new Function("return [" + polyline_data + "];")());
for (var k = 0; k < polylines.length; k++) {
var polyline = new google.maps.Polyline({
path: polylines[k],geodesic: true,strokeColor: '#fbb03b',strokeOpacity: 0.8,strokeWeight: 5
});
polyline.setMap(map);
}
}
if (rectangle_data != '') {
var rectanglesBounds = (new Function("return [" + rectangle_data + "];")());
for (var k = 0; k < rectanglesBounds.length; k++) {
var rectangle = new google.maps.Rectangle({
strokeColor: '#fbb03b',strokeWeight: 1,fillColor: '#fbb03b',fillOpacity: 0.35,bounds: rectanglesBounds[k]
});
rectangle.setMap(map);
}
}
if (circle_data != '') {
var circles = (new Function("return [" + circle_data + "];")());
for (var k = 0; k < circles.length; k++) {
var circle = new google.maps.Circle({
strokeColor: '#fbb03b',center: circles[k].center,radius: circles[k].radius
});
circle.setMap(map);
}
}
if (polygon_data != '') {
var polygons = (new Function("return [" + polygon_data + "];")());
for (var k = 0; k < polygons.length; k++) {
var polygon = new google.maps.Polygon({
paths: polygons[k],strokeColor: "#fbb03b",fillOpacity: 0.35
});
polygon.setMap(map);
}
}
});
}
var btn_clear_all= document.getElementsById('btn_clear');
google.maps.event.addDomListener(btn_clear_all,function() {
//delete all shapes shown at map
});