我有以下设置工作正常,但是,我有一些小问题..尝试了很多方法,但我不能摆脱标记添加新标记之前..
通过以下示例,无论何时从控制器推出,都会添加标记.在添加任何新标记之前,删除现有标记的最佳方法是什么?
var module = angular.module('Map', []);
module.directive('sap', function() {
return {
restrict: 'E',
replace: true,
template: '<div></div>',
link: function(scope, element, attrs) {
var map = L.map(attrs.id, {
center: [-35.123, 170.123],
zoom: 14
});
//create a CloudMade tile layer and add it to the map
L.tileLayer('http://{s}.tile.cloudmade.com/57cbb6ca8cac418dbb1a402586df4528/997/256/{z}/{x}/{y}.png', {
maxZoom: 18
}).addTo(map);
//add markers dynamically
var points = [];
updatePoints(points);
function updatePoints(pts) {
for (var p in pts) {
L.marker([pts[p].lat, pts[p].long]).addTo(map).bindPopup(pts[p].message);
}
}
scope.$watch(attrs.pointsource, function(value) {
updatePoints(value);
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
在控制器内部,添加新标记的方法是
$scope.pointsFromController.push({
lat: val.geoLat,
long: val.geoLong
});
Run Code Online (Sandbox Code Playgroud)
HTML中的代码很简单
<sap id="map" pointsource="pointsFromController"></sap>
Run Code Online (Sandbox Code Playgroud)
传单创作者在这里.清除标记的最佳方法是将它们添加到一个组中(而不是直接添加到地图中),然后在需要时调用group.clearLayers().http://leafletjs.com/examples/layers-control.html
| 归档时间: |
|
| 查看次数: |
4030 次 |
| 最近记录: |