Mapbox GL JS-突出显示国家/地区多边形

时间:2019-04-22 13:19:29

标签: maps mapbox polygon geocoding mapbox-gl-js

我有一个select2选项,用户可以在其中选择一个洲,地区,国家,城市或机场。我集成了地图框,以便在选择位置时向地图添加标记。

在选择“国家和大陆”的情况下,我想选择整个国家/地区,而不仅仅是标记。

我尝试使用https://api.mapbox.com/geocoding/v5/mapbox.places/germany.json?types=country&access_token= ****之类的Mapbox地理编码API,但我注意到它仅返回“点”坐标。

我想使用提供国家/地区名称的服务,该服务会返回具有所有边界坐标的多边形,以便能够在地图上的多边形上突出显示。

mapbox是否具有针对此类功能的内置服务?还是我需要使用第三方服务或json文件?

1 个答案:

答案 0 :(得分:1)

虽然Mapbox Geocoding API未返回要素的完整多边形几何,但是您可以将Geocoding API与其他一些开源数据源和工具结合使用。

这是您可以尝试的工作流程的开始:

  1. 使用国家名称(如“德国”)的文本查询地理编码api,并从API响应的coordinates属性中获取经纬度坐标。

  2. 使用来自诸如Natural Earth:https://www.naturalearthdata.com/downloads/

  3. 这样的开放源的geojson格式的多边形数据
  4. 将坐标和面数据传递到此turf.js函数中:http://turfjs.org/docs/#booleanPointInPolygon

  5. 标识点所在的多边形,并突出显示地图上的边界。有关如何在突出显示部分使用GL JS的更多信息,请查看示例页面:https://docs.mapbox.com/mapbox-gl-js/example/query-similar-features/