我正在尝试向Leaflet指令添加标记,但不知何故它不接受使用默认L.marker()
方法创建的标记。
该指令的用法如下:
<leaflet markers="markers" center="center" layers="layers" defaults="defaults"></leaflet>
我按照规定在控制器中扩展$scope
:
angular.extend($scope, {
markers: {},
//markers: { { someName: {lat:52.163815,lng:5.365131} } //this does work
});
之后添加标记不会以某种方式起作用。首先.markers
对象不是数组,所以我不能只使用push()
添加任何元素。但即使将元素添加为关联数组也不起作用:
var marker = L.marker(L.latLng(52.163815, 5.365131));
$scope.markers[0] = marker;
错误是:
[AngularJS - Leaflet]标记定义无效。
[AngularJS - Leaflet]在标记0上收到无效数据。
我忽略了一些非常简单的事情,但我不知道是什么......任何领导都会非常感激。
答案 0 :(得分:2)
$scope.markers
期望获得具有标记属性的对象,而不是标记本身。在将示例包装为LatLng
之前,您的示例中只有一个Marker
对象。
$scope.markers[0] = L.latLng(52.163815, 5.365131);
或者,如果你从外面得到Marker
,你可以从里面取回它:
$scope.markers[0] = marker.getLatLng();
显然,这并没有传达另一个标记。属性,只是坐标。