MapBox水/土地检测

我开始使用MapBox iOS SDK 。

是否有任何可能的方式通过坐标来查询MapView并返回地形types(水,陆地)?

我一直在阅读API文档已经有一段时间了,但无法弄清楚。 我知道有(临时)解决scheme可以使用谷歌web服务,但我需要这个脱机工作。

我不是绑定到MapBox(但我喜欢它),但是,谢谢你的提示!

没有必要深入研究运行时的样式(请参阅我的其他答案,假领导):使用mapView.visibleFeatures(at: CGPoint, styleLayerIdentifiers: Set<String>)等效于javascript API的非常简单的方法是queryRenderedFeatures

 func mapView(_ mapView: MGLMapView, regionDidChangeAnimated animated: Bool) { let features = mapView.visibleFeatures(at: mapView.center, styleLayerIdentifiers: ["water"]) print(features) } 

移动时的输出示例:

 [] [] [] [<MGLMultiPolygonFeature: 0x170284650>] 

如果空的结果:没有水,如果多边形:水。

这似乎是可能的:

https://www.mapbox.com/ios-sdk/api/3.5.0/runtime-styling.html上find

根据用户的位置(公园,城市,水等)有可能调整UI。不幸的是,我不知道该怎么做! (我会尽快更新)

地图交互性您可以自定义地图,以根据用户正在采取的操作dynamic地进行响应。 在用户驾驶时增加街道的文字大小,强调根据用户喜好量身定制的兴趣点,或者在用户在公园,小径,地标或河stream时更改用户界面。

UI GIF演示

我做了一个示例代码,可以帮助你一点点。 https://github.com/P0nj4/Coordinates-on-water-or-land

给一个协调,应用程序检查与谷歌,如果是土地或水。