0

我正在使用 JavaScript 映射库 - OpenLayer 创建标记叠加层。我想动态控制标记:添加新标记并从图层中删除现有标记。

向图层添加新标记的方法是通过以下命令:

markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));

如您所见,初始化参数仅包含坐标和图标图像,而不是id,甚至不是可选参数。

为了控制我想要创建二维数组的标记,它包含引用数组和 ID 数组的标记数组。

然后,当我想从图层中删除标记时,命令将很简单:

markers.removeMarker(ArrayMarkers[i]);

如何通过引用将元素推送到 JavaScript 数组?

如何通过引用在 ArrayMarkers 元素上运行?

4

2 回答 2

4

尝试:

var ArrayMarkers = [];
var myMarker = new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon);
markers.addMarker(myMarker);
ArrayMarkers.push(myMarker);

基本上,JavaScript 通常使用引用来传递对象。您已经将引用传递给库。您可以使用相同的技术。

于 2010-09-23T10:47:37.307 回答
1

在 JavaScript 中,您不能选择通过引用的值来推送变量……这是根据变量的类型自动完成的。

我猜你的标记是对象。因此它们将通过引用被推送到数组中。id 是字符串,它们将按值推送。

于 2010-09-23T10:49:19.253 回答