leaflet清除点、线集合的方法

leaflet清除点、线集合的方法

  • 点集合
    • 创建
    • 清除
  • 线集合
    • 创建
    • 清除
  • 总结

点集合

创建

// 定义maker集合
var marker_group;
//可通过item.id找到对应的maeker
var marker_map={};
//创建点集合
function createMarkerGroup (data)
{
	var markers = [];
	data.forEach(function (item) {
		icon = new L.icon({
		      iconUrl: ' /static/icon/icon.png' ,//图标路径
		      iconSize: [32, 32],
		      iconAnchor: [16, 32]
		});
		var marker = new L.marker(30, 118), {
		      icon: icon,
		      riseOnHover: true,
		      title: item.name
		});
		markers.push(marker);
		marker_map[item.id] = marker;
	}
	marker_group = new L.layerGroup(markers).addTo(map);
}

清除

//清除点集合
function clearMarkerGroup ()
{
	if(marker_group){
		marker_group.clearLayers();
	}
}

线集合

创建

// 定义polyline集合
var polyline_group;
//创建线集合
function createPolylineGroup (data){
	var latlngs = [];
    data.forEach(function (item) {
        var latlng = [item.y, item.x];
        latlngs.push(latlng);
    })
	polyliner_group =new L.polyline(latlngs, {color: 'red'}).addTo(map);
}

清除

//清除点集合
function clearPolylineGroup ()
{
	if(polyline_group){
		map.removeLayer(polyline_group);
	}
}

总结

当创建和分离执行时需要注意一点,当连续执行两次创建时再进行清除,第一次再地图上创建的点、线集合不会被清除。建议不同功能类型的集合分开存放,同一个功能类型的集合在重新创建前先对该集合(例:marker_group.clearLayers() )进行清除操作

你可能感兴趣的:(leaflet清除点、线集合的方法)