我的JavaScript的學習,並與Mapbox GL JS一個問題:我有一個風格Mapbox工作室,那裏是one my layer — "locations"。我已經將它添加爲一個tileset。這一層有兩個GeoJSON點,但我無法在GL JS中獲得它們。 我發現我應該使用方法querySourceFeatures(sourceID, [parameters])
,但我在正確填寫參數時遇到了問題。我寫道:如何從Mapbox GL JS中的樣式圖層獲取要素?
var allFeatures = map.querySourceFeatures('_id-of-my-tyleset_', {
'sourceLayer': 'locations'
});
..它不起作用。
更有趣的是在後面的代碼我用這個層方法queryRenderedFeatures
,和這沒關係:
map.on('click', function(e) {
var features = map.queryRenderedFeatures(e.point, {
layers: ['locations']
});
if (!features.length) {
return;
}
var feature = features[0];
flyToPoint(feature);
var popup = new mapboxgl.Popup({
offset: [0, -15]
})
.setLngLat(feature.geometry.coordinates)
.setHTML('<h3>' + feature.properties.name + '</h3>' + '<p>' +
feature.properties.description + '</p>')
.addTo(map);
});
我已經閱讀了很多關於在地圖上添加圖層,知道答案很簡單,但我無法實現的解決方案,所以幫助,請:)
Here is在GitHub上的項目。
順便說一句,實際查看您的網頁的鏈接:https://rawgit.com/nikita-nikiforov/bilhorod-map/master/index.html –
@SteveBennett謝謝!非常有用的工具。 – nikiforovpizza