我開始使用MapBox iOS SDK。MapBox水/土地檢測
是否有任何可能的方式通過座標查詢MapView並獲取地形類型(水,陸地)?
我一直在閱讀API doc很長一段時間了,但無法弄清楚。 我知道有(interim) solutions可以使用Google的web服務,但我需要這個脫機工作。
雖然我沒有綁定到MapBox(但我喜歡它),但是謝謝你的提示!
我開始使用MapBox iOS SDK。MapBox水/土地檢測
是否有任何可能的方式通過座標查詢MapView並獲取地形類型(水,陸地)?
我一直在閱讀API doc很長一段時間了,但無法弄清楚。 我知道有(interim) solutions可以使用Google的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://github.com/P0nj4/Coordinates-on-water-or-land
給出一個座標,應用程序檢查谷歌是否是土地或水。
感謝您的輸入,但此機制的一個必要功能是離線使用,因爲這將用於帆船,其中沒有提供足夠快的互聯網連接來實現針對web服務的路由算法。我實際上使用OSM數據實現了它。它可以輕鬆地在內存中快速運行。在我的上面的答案中查看我的鏈接。 – thomas
這似乎是可能的:
上找到https://www.mapbox.com/ios-sdk/api/3.5.0/runtime-styling.html
有適應根據用戶(公園,城市,水等)不幸的是我不」的位置的UI的可能性不知道該怎麼做! (因爲我發現就會立即更新)
地圖交互您可以自定義地圖,具有動態地根據您的用戶採取的行動作出迴應的地步。 在用戶駕車時增加街道的文字大小,強調根據用戶偏好量身定製的興趣點 ,或者如果用戶在公園,路徑,地標或河流時更改用戶界面 。
另請參見[android](https://stackoverflow.com/a/42728928/4601340) –