【发布时间】:2014-04-28 14:10:53
【问题描述】:
在我的网站中,我使用 Mapbox 地图从 URL 加载图标,如下所示:
/* myMapbox.js */
map = L.mapbox.map("map", "somemap.hhlj93e3").setView([47.60,-122.33], 13);
...
.someAjaxCall{
allMyIcons = L.mapbox.featureLayer ().loadURL ("/updatedIcons");
allMyIcons.addTo (map);
}
通过/updatedIcons 加载的图标确实会显示,但它们不可点击。我使用这个SO post 解决了可点击性问题。但是,当我单击图标时,通过/updatedIcons 调用检索到的每个功能(图标)的属性仍然不会显示为弹出窗口(单击图标时没有任何反应)。请注意,在 Mapbox 网站上为somemap 用户创建的图标确实会显示在地图上,并且它们是可点击的,并且弹出窗口会为他们高兴地显示在同一张地图上。
这是我通过 /updatedIcons 加载的 GeoJSON 示例:
[{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [-77.03, 38.90]},
"properties": {
"image": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Cherry_Blossoms_and_Washington_Monument.jpg/320px-Cherry_Blossoms_and_Washington_Monument.jpg",
"url": "https://en.wikipedia.org/wiki/Washington,_D.C.",
"marker-symbol": "star",
"city": "Washington, D.C."
}
}, {
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [-87.63, 41.88]},
"properties": {
"image": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Chicago_sunrise_1.jpg/640px-Chicago_sunrise_1.jpg",
"url": "https://en.wikipedia.org/wiki/Chicago",
"city": "Chicago"
}
}, {
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [-74.00, 40.71]},
"properties": {
"image": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/NYC_Top_of_the_Rock_Pano.jpg/640px-NYC_Top_of_the_Rock_Pano.jpg",
"url": "https://en.wikipedia.org/wiki/New_York_City",
"city": "New York City"
}
}]
我在这里缺少什么?为了清楚起见,图标出现了,但是在我添加了链接的 SO 帖子中提到的 CSS 改进之前,它们是不可点击的,现在,我可以点击图标,但什么也没有发生(属性没有显示在弹出)。我知道上面的 GeoJSON 示例是一个 FeatureCollection,我将上面的内容包含在一个
中{ "type": "FeatureCollection",
"features": <content from above GeoJSON here>
}
但这并没有改变行为。这是分层问题吗?如果是这样,如何合并我地图中的所有图层?我将从 Mapbox 加载基本地图,这是一个由用户创建的标记,我想使用
进行渲染 marker = L.marker ([lat, lng],
{
icon: L.divIcon ({
iconSize: [10, 10]
})
});
以及从上面/updatedIcons 加载的图标,我希望所有这些都是可点击的。
感谢任何帮助。谢谢!
【问题讨论】:
标签: javascript css geojson mapbox