【问题标题】:Mapbox GL JS - Highlight Country PolygonMapbox GL JS - 突出显示国家多边形
【发布时间】:2019-09-11 16:26:13
【问题描述】:

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

如果选择国家和大陆,我想选择整个国家/大陆,而不仅仅是一个标记。

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

我想使用我提供国家/大陆名称的服务,它会返回一个包含所有边界坐标的多边形,以便能够在地图上的多边形上突出显示。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    2. 使用来自 Natural Earth 等开源的 geojson 格式的多边形数据:https://www.naturalearthdata.com/downloads/

    3. 将坐标和多边形数据传递到这个 turf.js 函数中:http://turfjs.org/docs/#booleanPointInPolygon

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

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 2013-04-19
      • 1970-01-01
      • 2023-01-30
      • 2015-05-11
      • 1970-01-01
      相关资源
      最近更新 更多