当使用循环添加标记时,Leafletjs地图覆盖停止工作
Leafletjs map overlays stops working when markers are added using a loop
如果我手动放置经纬度和.addTo(layer)
。显示右上方的叠加菜单,我可以过滤标记。
但是,当我尝试传递具有纬度和经度的标记的JSON列表并迭代创建标记,然后.addTo(layer)
。叠加菜单消失,但标记生成正确。
Leafletjs脚本(手动输入长度和长度):https://jsfiddle.net/kdu2woLb/1/
var cities = new L.LayerGroup();
L.marker([40.7864742, -73.9393257], {icon: citiesIcon}).bindPopup('Job Title: ').addTo(cities);
L.marker([40.8561684, -73.89659800000001], {icon: citiesIcon}).bindPopup('Job Title: ').addTo(cities);
var jobs = new L.LayerGroup();
L.marker([40.7127837, -74.0059413], {icon: jobIcon}).bindPopup('Job Title: ').addTo(jobs);
L.marker([40.7348796, -73.86348939999999 ], {icon: jobIcon}).bindPopup('Job Title: ').addTo(jobs);
Leafletjs脚本(使用循环生成标记):https://jsfiddle.net/8qmk33kp/2/
var cities = new L.LayerGroup();
for ( var i=0; i < markers.length; ++i )
{
L.marker( [markers[i].latitude, markers[i].longitude], {icon: jobIcon} )
.bindPopup( markers[i].title+ '<br/>' + 'Address: ' + markers[i].address + '<br />' + 'Salary range: ' + '$' + markers[i].min_salary + ' - ' + '$' + markers[i].max_salary )
.addTo(cities);
}
var jobs = new L.LayerGroup();
L.marker([40.7127837, -74.0059413], {icon: jobIcon}).bindPopup('Job Title: ').addTo(jobs);
L.marker([40.7348796, -73.86348939999999 ], {icon: jobIcon}).bindPopup('Job Title: ').addTo(jobs);
我真的不明白为什么循环打破了覆盖。当我查看代码时,它似乎正在创建每个标记,然后将其添加到覆盖。那么它应该被生成并传递给过滤器?为什么标记生成正确,但覆盖菜单消失?
任何见解都会有所帮助。谢谢!
UPDATE:添加工作覆盖和非工作覆盖的jsfiddle链接。看起来我的JSON列表有问题,当我删除除了3-4个标记之外的所有内容时,覆盖再次工作…https://jsfiddle.net/qm5vd6k4/1/
查看您的记录1592至1596包括:
//i = 1592
{
"title": "PRINCIPAL ADMINISTRATIVE ASSOC",
"latitude": null,
"longitude": null
}
//i = 1593
{
"title": "PUBLIC HEALTH ADVISER",
"latitude": null,
"longitude": null
}
//i = 1594
{
"title": "COMMUNITY COORDINATOR",
"latitude": null,
"longitude": null
}
//i = 1595
{
"title": "ADMINISTRATIVE PUBLIC HEALTH N",
"latitude": null,
"longitude": null
}
//i = 1596
{
"title": "FAMILY PUB HEALTH NURSE (HMH)",
"latitude": null,
"longitude": null
}
更新JSFiddle: https://jsfiddle.net/8qmk33kp/3/
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 在谷歌地图上获取事件的x,y坐标
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 模拟谷歌地图中的点击
- 如何知道哪个标记被谷歌地图点击了
- 将卫星轨道添加到WebGLEarth地图(例如Leafletjs或Cesiumjs)
- 在leafletjs地图中使用Bing Quadkey贴图代替x/y/z贴图
- LeafletJS -在下次使用前清除地图
- 我使用LeafletJS和JavaScript在MapBox地图上显示点.然而,这些要点并不一致.它们很接近,但不完全相
- 用Angularjs同步Leafletjs的地图数据
- 当使用循环添加标记时,Leafletjs地图覆盖停止工作
- 我如何添加公里/英里标记到leafletjs地图与gpx文件
- 缩放以适应LeafletJS地图上的所有标记