MapBox水/土地检测

时间:2013-11-04 19:33:54

标签: ios objective-c map detection mapbox

我开始使用MapBox iOS SDK

有没有办法通过坐标查询MapView并返回地形类型(水,土地)?

我现在已经阅读API doc了很长一段时间,但无法理解。 我知道有(interim) solutions可以使用Google网络服务,但我需要离线工作。

我并不局限于MapBox(但我喜欢它),谢谢你的提示!

3 个答案:

答案 0 :(得分:1)

似乎有可能:

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

上找到

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

  

地图互动您可以自定义地图,使其根据您的用户所采取的操作动态响应。   强调,在用户驾驶时增加街道的文字大小   根据用户的偏好定制的兴趣点,或更改您的UI   如果用户在公园,小径,地标或河流。

     

UI GIF demo

答案 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

给出一个坐标,应用程序会检查谷歌是否是土地或水。