JavaScript - 传单,添加一堆标记

JavaScript - leaflet, adding a bunch of markers

假设我有一堆标记(超过 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...]); 会很累。

那么我该如何将所有这些标记添加到一个新图层中(这样我就可以切换它们 on/off)

如何添加一个空的 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