无法将标记添加到Angular Leaflet指令

时间:2015-11-24 20:40:49

标签: leaflet angular-leaflet-directive

我正在尝试向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上收到无效数据。

我忽略了一些非常简单的事情,但我不知道是什么......任何领导都会非常感激。

1 个答案:

答案 0 :(得分:2)

$scope.markers期望获得具有标记属性的对象,而不是标记本身。在将示例包装为LatLng之前,您的示例中只有一个Marker对象。

$scope.markers[0] = L.latLng(52.163815, 5.365131);

或者,如果你从外面得到Marker,你可以从里面取回它:

$scope.markers[0] = marker.getLatLng();

显然,这并没有传达另一个标记。属性,只是坐标。