JavaScript - 传单,添加一堆标记

时间:2015-03-17 11:42:08

标签: javascript leaflet

让我说我有一堆标记(超过100个)我想从中添加:

module.exports = [
{ value: 'Varrock', lng: 22.5, lat: -15.52249812756166, popular: 1 },
{ value: 'Lumbridge', lng: 25.9661865234375, lat: -43.644025847699496, popular: 1 },
{ value: 'Monastery', lng: -4.0924072265625, lat: -5.714379819235291 },
{ value: 'Edgeville', lng: 2.4884033203125, lat: -6.0094592380595495, popular: 1 },
{ value: 'Varrock Palace', lng: 22.412109375, lat: -6.882800241767556 },
{ value: 'Digsite', lng: 46.043701171875, lat: -17.266727823520508 },
{ value: 'River Salve', lng: 54.931640625, lat: -14.083301314706778 },
{ value: 'Morytania', lng: 64.610595703125, lat: -13.501814172428656 },
{ value: 'Mort Myre Swamp', lng: 59.820556640625, lat: -22.740723091194727 }
];

它使用browserify来获取它。所以,我这样做:

var locations = require('./locations');

将所有这些内容添加到LayerGroup()中的最佳方法是什么?我的意思是,因为手工做var fairy = L.layerGroup([One, Two, Three...]);会让人厌倦。

那么我该如何将所有这些标记添加到一个新图层中(所以我可以打开/关闭它们)

1 个答案:

答案 0 :(得分:2)

如何添加空L.LayerGroup,在数组上循环并将其添加到该层?

var locations = [];

var layer = L.layerGroup().addTo(map);

locations.forEach(function (location) {
  L.marker([location.lat, location.lng])
    .bindPopup(location.value)
    .addTo(layer);
});

关于Plunker的工作示例:http://plnkr.co/edit/Q0DGqs?p=preview