我开始使用MapBox iOS SDK。
有没有办法通过坐标查询MapView并返回地形类型(水,土地)?
我现在已经阅读API doc了很长一段时间,但无法理解。 我知道有(interim) solutions可以使用Google网络服务,但我需要离线工作。
我并不局限于MapBox(但我喜欢它),谢谢你的提示!
答案 0 :(得分:1)
似乎有可能:
在https://www.mapbox.com/ios-sdk/api/3.5.0/runtime-styling.html
上找到有可能根据用户的位置(公园,城市,水等)调整UI。不幸的是我不知道怎么做! (我会在发现后立即更新)
地图互动您可以自定义地图,使其根据您的用户所采取的操作动态响应。 强调,在用户驾驶时增加街道的文字大小 根据用户的偏好定制的兴趣点,或更改您的UI 如果用户在公园,小径,地标或河流。
答案 1 :(得分:1)
无需深入研究运行时样式(请参阅我的其他答案,假导致):使用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>]
如果结果为空:没有水,如果是多边形:水。
答案 2 :(得分:0)
我制作了一个可以帮助你的示例代码。 https://github.com/P0nj4/Coordinates-on-water-or-land
给出一个坐标,应用程序会检查谷歌是否是土地或水。