如何循环遍历坐标数组来为layerGroup创建地图标记
How to loop through an array of coordinates to create map markers for a layerGroup?
下面是当前使用for循环的快速代码片段。我只取了地图的一部分作为例子:
链接图片只是显示,就目前而言,我的代码在地图加载时自动显示所有灭火器——这不是我想要的。请阅读下面我的问题的详细版本。
// Fifth Grade class teachers //
var blower = L.marker([-38.68551, -44.12109], {icon: fiveTeacherIcon}).bindPopup('Mrs. Blower''s class'),
okonowski = L.marker([-55.47885, -43.41797], {icon: fiveTeacherIcon}).bindPopup('Mrs. Okonowski''s class'),
vermeulen = L.marker([-38.95941, -23.37891], {icon: fiveTeacherIcon}).bindPopup('Mrs. Vermeulen''s class');
var fifthGrade = L.layerGroup([blower, okonowski, vermeulen]);
var classesOverlay = {
"Kindergarten": kindergarten,
"First Grade": firstGrade,
"Second Grade": secondGrade,
"Third Grade": thirdGrade,
"Fourth Grade": fourthGrade,
"Fifth Grade": fifthGrade
};
L.control.layers(classesOverlay).addTo(cmap);
正如你在上面看到的,这是我如何显示五年级班级的标记。当我在图层选择选项上点击"Fifth Grade"时(同时查看地图),这三个标记弹出。这正是我想要的灭火器。
但是我想要一种更有效的方法,因为我有很多坐标。而对于五年级,我只有三个,所以我不介意逐个手动输入。
所以我的问题基本上是问是否有更有效的方法来做到这一点。正如我上面所展示的,我现在让它在数组中运行一个for循环,并将它们放置到地图上,但问题是我不希望灭火器一直显示;我希望他们就像我有五年级(显然其他年级也一样),我只是从图层组中选择他们,然后他们都出现了。
我只是不想为每一组灭火器的坐标单独做一个标记,因为我觉得那样会适得其反。
我不知道如何使它,所以当选择它将运行for循环,并显示所有的;当我尝试时,它最终只显示一组坐标。
我希望这更有意义。我真的很感谢你在一天中抽出时间来帮助我!
function createMarker (coords) {
return (new L.marker(coords, {icon: fireEx}).bindPopup('<strong>Hi! I''m a fire extinguisher! And you are?</strong>').addTo(cmap));
}
function createMarkerGroup (markerLocationList) {
var
markerList = [];
markerLocationList.forEach(function (location) {
markerList.push(createMarker(location));
});
return L.layerGroup.apply(L.layerGroup, markerList);
}
var extinguishers = [
[71.52491, -17.75391],
[71.69129, 0.35156],
[60.84491, -56.25],
[49.49667, -14.41406],
[10.66061, -33.75],
[11.3508, -10.01953],
[-21.45307, -22.5],
[-50.1769, -60.46875],
[-49.49667, -27.94922],
[-59.88894, 36.03516],
[-48.80686, 47.10938],
[-49.15297, 84.72656],
[-49.15297, 84.72656],
[-48.80686, 47.10938]
];
var fireExtinguishers = createMarkerGroup(extinguishers);
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何访问声音管理器2创建的声音对象
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 使用Facebook live API创建实时视频对象时的隐私设置
- 在动态创建的元素上获取对特定选择器的引用
- 如何创建带有插槽的vue js组件预加载程序
- 如何在创建键时引用来自同一对象的键
- 如何创建JSON数组
- 从html创建一个指令,该指令按类名应用函数
- 使用Javascript创建测验页面
- 更改使用Chart.js创建的图表中的轴线颜色
- JavaScript名称空间和对象创建
- JQuery对动态创建的对象进行选择
- 传单错误:对象函数没有方法'createIcon'在LayerGroup中创建自定义图标标记时
- 如何循环遍历坐标数组来为layerGroup创建地图标记