我一直在使用 MapBox,但在让 GeoLocation API 将数据发送回 map 并更新它时遇到了一些问题。
这就是我现在得到的:
mapboxgl.accessToken = 'TOKEN-HERE';
var map = new mapboxgl.Map({
container: 'map', // container id
style: 'mapbox://styles/mapbox/streets-v9',
center: [-0.968539, 54.562917],
zoom: 9
});
map.on('style.load', function() {
map.addSource("myMap", {
"type": "geojson",
"data": "https://api.mapbox.com/geocoding/v5/mapbox.places/UK_ADDRESS_HERE.json?country=gb&types=address&autocomplete=true&access_token=TOEKN"
});
map.addLayer({
'id': 'test1',
'type': 'line',
'source': 'myMap',
'interactive': true
});
});
最佳答案
答案可能取决于您编码UK_ADDRESS_HERE
的方式。
<小时/>https://api.mapbox.com/geocoding/v5/mapbox.places/UK_ADDRESS_HERE.json
request format for the Mapbox Geocding API要求由于 {query} 参数可以包含任何值,因此它应该是 URL 编码的。
这意味着像 10 Downing Street, Westminster
这样的简单地理编码请求必须使用 encodeURIComponent 进行编码前往 10%20Downing%20Street%2C%20Westminster
。
尝试此操作并验证您的请求是否正确。
curl https://api.tiles.mapbox.com/geocoding/v5/mapbox.places/10%20Downing%20Street%2C%20London.json?access_token=${MAPBOX_ACCESS_TOKEN}
关于javascript - Mapbox Geolocation,如何加载到 map 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330100/