我有一个select2选项,用户可以在其中选择一个洲,地区,国家,城市或机场。我集成了地图框,以便在选择位置时向地图添加标记。
在选择“国家和大陆”的情况下,我想选择整个国家/地区,而不仅仅是标记。
我尝试使用https://api.mapbox.com/geocoding/v5/mapbox.places/germany.json?types=country&access_token= ****之类的Mapbox地理编码API,但我注意到它仅返回“点”坐标。
我想使用提供国家/地区名称的服务,该服务会返回具有所有边界坐标的多边形,以便能够在地图上的多边形上突出显示。
mapbox是否具有针对此类功能的内置服务?还是我需要使用第三方服务或json文件?
答案 0 :(得分:1)
虽然Mapbox Geocoding API未返回要素的完整多边形几何,但是您可以将Geocoding API与其他一些开源数据源和工具结合使用。
这是您可以尝试的工作流程的开始:
使用国家名称(如“德国”)的文本查询地理编码api,并从API响应的coordinates
属性中获取经纬度坐标。
使用来自诸如Natural Earth:https://www.naturalearthdata.com/downloads/
将坐标和面数据传递到此turf.js函数中:http://turfjs.org/docs/#booleanPointInPolygon
标识点所在的多边形,并突出显示地图上的边界。有关如何在突出显示部分使用GL JS的更多信息,请查看示例页面:https://docs.mapbox.com/mapbox-gl-js/example/query-similar-features/