我有一個字串值作為 geohash,我想在 Kotlin 中將其更改為緯度和經度。我找不到任何圖書館。如何在 Kotlin 中將 geohash 轉換為緯度和經度?
uj5u.com熱心網友回復:
看起來geohash-java支持這個:
Geohashes 的純 Java 實作。當使用字符精度(5 位的倍數)時,生成的散列與參考實作 geohash.org 兼容。
但是,您也可以將 Geohashes 編碼為長的完整可用精度,即 64 位。
pom.xml如果您使用的是 Maven,則可以將以下內容添加到您的檔案中:
<dependency>
<groupId>ch.hsr</groupId>
<artifactId>geohash</artifactId>
<version>1.4.0</version>
</dependency>
或者,build.gradle如果您使用的是 Gradle,則將以下實作行添加到您的檔案中:
implementation("ch.hsr:geohash:1.4.0")
示例用法:
import ch.hsr.geohash.GeoHash
fun main(args: Array<String>) {
val geoHashString = "u4pruydqqvj" // Peninsula of Jutland, Denmark from en.wikipedia.org/wiki/Geohash
println("geoHashString: $geoHashString")
val geoHash = GeoHash.fromGeohashString(geoHashString)
println("geoHash: $geoHash")
val point = geoHash.originatingPoint
println("point: $point")
val lat = point.latitude
println("lat: $lat")
val lng = point.longitude
println("lng: $lng")
}
輸出:
geoHashString: u4pruydqqvj
geoHash: 1101000100101011011111010111100110010110101101101110001000000000 -> (57.64911130070686,10.407439023256302) -> (57.649109959602356,10.40744036436081) -> u4pruydqqvj
point: (57.64911063015461,10.407439693808556)
lat: 57.64911063015461
lng: 10.407439693808556
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/401988.html
上一篇::app:dataBindingMergeDependencyArtifactsDebug'錯誤
下一篇:如何在Row中顯示垂直分隔線?
