将地理 JSON 要素属性添加到地图框弹出窗口
Adding geoJSON feature attributes to mapbox popup
我希望在地图上的每个书店标记中添加一个带有geoJSON属性的弹出窗口。我在 marker.bindpopup 方法中使用了"layer.feature.properties.name",但返回"未定义"。
L.mapbox.accessToken = 'jk.eyJ1IjsdkjfhskjdfhksdskdjflWNCJ9.Ov2O5PtskdljfsdR0lq3Q';
var map = L.mapbox.map('map', 'example.kks3kec4')
.setView([38.633, -90.319],12);
//add cafe, books store, and university geoJSON layers with styling
var bookStore = L.mapbox.featureLayer()
.loadURL('book_store84.geojson')
//wait for the layer to be "on", or "loaded", to use a function that will setIcon with an L.icon object
.on('ready', function(layer) {
this.eachLayer(function(marker) {
marker.setIcon(L.mapbox.marker.icon({
'marker-color': '#BA1A1A',
'marker-symbol': "library",
'description': "book store"
}));
//when layer.feature is within the popup, it returns "undefined"
marker.bindPopup("<p>" + layer.feature.properties.name + "</p>");
});
})
.addTo(map);
您正在使用layer
变量:
marker.bindPopup("<p>" + layer.feature.properties.name + "</p>");
layer
变量不包含feature
对象。您正在循环包含的层,将它们分配给marker
变量,这些层具有feature
对象,因此您应该:
marker.bindPopup("<p>" + marker.feature.properties.name + "</p>");
相关文章:
- 谷歌地图点击潜水触发信息窗口
- 将FlowPlayer嵌入谷歌地图信息窗口
- 当我浏览回页面时,谷歌地图信息窗口不会弹出
- 谷歌地图信息窗口Z索引
- 谷歌地图信息窗口为每个标记显示相同的内容
- Cartodb信息窗口未在地图上显示变量
- 如何隐藏谷歌地图Api 3中InfoBox窗口中的关闭(x)按钮
- 为位于路线上的谷歌地图标记(起点和终点)设置一个信息窗口
- 信息窗口谷歌地图点击事件给出错误
- 在新窗口中通过谷歌地图的localStorage作为地图中心
- Javascript谷歌地图每个信息窗口
- 更新打开的谷歌地图信息窗口
- 棱角分明的谷歌地图双窗口
- 禁用角度地图中标记和信息窗口的ng点击
- 在谷歌地图的信息窗口内点击按钮
- 角度谷歌地图 - 窗口不会在点击时打开
- 传单.js绘制控件不能在整个地图窗口区域上移动
- 谷歌地图-窗口.Initialize不是一个函数
- 如何获得边界框坐标为我的谷歌地图窗口
- 当链接点击事件时,谷歌地图InfoWindow不打开地图窗口