Mapbox Geolocation,如何载入地图?

Mapbox Geolocation, how to load into map?

我一直在玩 MapBox,我在获取 GeoLocation API 以将数据发送回地图并更新它时遇到了一些问题。

这是我现在得到的:

  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-encoded

这意味着像 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}