Mapbox Geolocation, how to load into map?

霸气de小男生 提交于 2020-01-07 00:35:07

问题


I have being playing around with MapBox and I am having some issues with getting the GeoLocation API to send data back to the map and update the it.

This is what I got right now:

  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
      });
 });

回答1:


The answer may lie with how you are encoding UK_ADDRESS_HERE.

https://api.mapbox.com/geocoding/v5/mapbox.places/UK_ADDRESS_HERE.json


The request format for the Mapbox Geocding API requires that since the {query} parameter can contain any value, it should be URL-encoded.

That means that a simple geocode request like 10 Downing Street, Westminster must be encoded using encodeURIComponent to 10%20Downing%20Street%2C%20Westminster.

Try this and verify that your request is proper.

curl https://api.tiles.mapbox.com/geocoding/v5/mapbox.places/10%20Downing%20Street%2C%20London.json?access_token=${MAPBOX_ACCESS_TOKEN}


来源:https://stackoverflow.com/questions/38330100/mapbox-geolocation-how-to-load-into-map

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!