Mapbox Geolocation,如何加载到地图中?

Posted

技术标签:

【中文标题】Mapbox Geolocation,如何加载到地图中?【英文标题】:Mapbox Geolocation, how to load into map? 【发布时间】:2016-07-12 13:20:15 【问题描述】:

我一直在玩 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
      );
 );

【问题讨论】:

您在 JS 控制台中收到了哪些错误? 【参考方案1】:

答案可能在于您如何编码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

【讨论】:

请你帮忙,***.com/questions/47945104/…

以上是关于Mapbox Geolocation,如何加载到地图中?的主要内容,如果未能解决你的问题,请参考以下文章

Mapbox源码分析(2)url解析

mapbox加载sprite图标

如何使用 Mapbox 通过弹出框获取当前位置

大疆mapbox地图加载慢

片段上的 Mapbox 膨胀视图

Mapbox GL JS:样式未完成加载