geohash基本原理是将地球理解为一个二维平面,将平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码。GeoHash将二维的经纬度转换成一维的字符串。
2023-04-17 15:08:09 565KB geohash
1
geohash-java a Java implement of Geohash 提供下列接口: Modifier and Type Method and Description String toGeoHash(double lng, double lat) 根据经纬度计算 geohash String toGeoHash(double lng, double lat, int level) 根据经纬度转换为指定长度的 geohash GPS toGPS(String geohash) 将 geohash 转换成gps,GPS 类包含经纬度两个值 List getRound8(String geohash)根据给定的geohash计算出周围8个 geohash 性能方面在笔记本上随便测试了一下,getRound8 在 50w 上下,其他每个接口都在百万以上。
2023-04-17 14:59:01 3KB Java
1
地理哈希 GeoHash
2023-04-07 11:04:22 8KB C++
1
Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法 此檔案為C語言實現 函式庫使用介紹: 1)編碼 char* geohash_encode(double lat, double lng, int precision); 以所需精度獲取緯度和經度並返回正確的哈希值。如果精度 < 0 或精度 > 20,將使用默認值 6。 2)解碼 GeoCoord geohash_decode(char* hash); 生成一個分配的 GeoCoord 結構,其中包含從 geohash 解碼的緯度和經度。GeoCoord 還提供了 geohash 的邊界框(北、東、南、西)。 3)鄰居 char** geohash_neighbors(char* hash); 使用在 hash 處聲明的邊界框併計算 8 個相鄰框。下面顯示了一個示例。 ezefx ezs48 ezs49 ezefr ezs42 ezs43 ezefp ezs40 ezs41 返回的值是一個長度為 8 的 char* 數組。值的相鄰位置如下所示,每個框代表數組的索引。 7 0 1 6 * 2 5 4 3
2022-07-13 16:04:49 63KB 地理信息編碼算法 地理信息GIS
1
Geohash GeoHash是目前比较主流的实现位置服务的技术,Geohash算法将通过纬度二维数据编码为一个字符串,本质上是一个降维的过程, 一个栗子 地点 经纬度 Geohash 鸟巢 116.402843,39.999375 wx4g8c9v 水立方 116.3967,39.99932 wx4g89tk 故宫 116.40382,39.918118 wx4g0ffe 水立方就在鸟巢在附近,距离600米左右,而故宫到鸟巢直线距离9公里左右,体现在Geohash上,鸟巢和水立方的前五位是一样的,而鸟巢和故宫只有前4位是一样的,根本Geohash前面相同的越多,两个位置越近,但是反过来说,却不一定正确,这个在后面会详细介绍。 原理 将经纬度转换为Geohash大体可以分为三步曲: 将纬度(-90,90)平均两个两个区间(-90,0),(0,90),如果坐标位置的纬度值在第一区间,则编码是0,否则编码为1。我们用39.918118体现,由于39.918118属于(0,90),所以编码为1,然后我们继续将(0,90)分为(0,45),(45,90)两个区间,而39.918118位
2022-04-03 14:56:34 6KB mysql java geohash latitude
1
geohash简介: geohash是一种地址编码,它能把二维的经纬度编码成一维的字符串。geohash有以下几个特点: 首先,geohash用一个字符串表示经度和纬度两个坐标。某些情况下无法在两列上同时应用索引 (例如MySQL 4之前的版本,Google App Engine的数据层等),利用geohash,只需在一列上应用索引即可。 其次,geohash表示的并不是一个点,而是一个矩形区域。比如编码wx4g0ec19,它表示的是一个矩形区域。 使用者可以发布地址编码,既能表明自己位于北海公园附近,又不至于暴露自己的精确坐标,有助于隐私保护。 第三,编码的前缀可以表示更大的区域。例如wx4g0ec1,它的前缀wx4g0e表示包含编码wx4g0ec1在内的更大范围。 这个特性可以用于附近地点搜索。首先根据用户当前坐标计算geohash(例如wx4g0ec1)然后取其前缀进行查询 (SELECT * FROM place WHERE geohash LIKE 'wx4g0e%'),即可查询附近的所有地点。Geohash比直接用经纬度的高效很多。用途: 移动互联网,lbs可以说是一个基础应用,geohash对于解决附近地点搜索提供了一个有效的解决方案。扩展: 这个php扩展,提供了三个函数:/**     *  $latitude    //纬度     *  $longitude   //经度     *  $precision   //精密度, 默认是12     *  返回 $precision 长度的 string     */    geohash_encode($latitude, $longitude, $precision=12);      /**     *  $hash    //geohash_encode后的值     *  返回 array // Array     *                    (     *                        [latitude] => 39.416916975752     *                        [longitude] => 100.92223992571     *                        [north] => 39.416917059571     *                        [east] => 100.92224009335     *                        [south] => 100.92223992571     *                        [west] => 100.92223975807     *                    )     */    geohash_decode($hash);    /**     *  $hash    //geohash_encode后的值     *  返回 在$hash 8个 (东南西北各二个)附近的hash值     */    geohash_neighbors($hash); 标签:geohash
2022-04-03 14:52:59 11KB 开源项目
1
哈希 用于编码,解码和相邻地理哈希的软件包 作者:奥利弗·凯斯(Oliver Keyes) 执照:状态:稳定 描述 地理哈希是一种将纬度/经度对表示为短而短的数字和字母字符串的方法。 geohash软件包提供了用于以下目的的工具: 将纬度/经度对编码为哈希值; 将地理哈希解码为纬度/经度对; 识别提供的geohash(或geohashes的向量)的相邻geohash。 有关更多信息,请参见。 请注意,该项目是与“。 通过参与该项目,您同意遵守其条款。 安装 要获得开发版本(当前建议): devtools::install_github("ironholds/geohash") 可以通过以下方式获取最新的CRAN版本: install.packages("geohash")
2022-03-15 14:58:43 22KB C++
1
GeoHash编码/解码 有关GeoHash的更多信息 支持MongoDB,ElasticSearch和GeoJSON格式的GeoHash编码/解码: GeoJSON MongoDB Elasticsearch { longitude, latitude }对象在某些软件包中常用 受启发。 安装 yarn add @jollie/geohash 或者 npm install @jollie/geohash 用法 import GeoHash from '@jollie/geohash' ; // ... coordinates example const longitude = 4.2122126 ; const latitude = 36.4511093 ; // Encode a GeoJSON Point GeoHash . encode ( { type : 'F
2022-01-10 16:22:01 7KB JavaScript
1
Mapzen Geohash geohash 是一种编码地理坐标的便捷方法,其中 geohash 中的每个字符都增加了额外的精度。 这使得 geohashes 非常适合索引机制、对地理位置实体进行分组以及根据所需的详细程度对坐标进行紧凑编码。 关于 Geohashes 的更多信息: 这个 Python 包包含用于编码和解码 geohashes 的简单工具。 安装 使用pip安装: pip install mzgeohash 或者,或克隆此存储库,并使用 setup.py 进行安装: python ./setup.py install 示例用法 >>> import mzgeohash >>> mzgeohash.decode('xn76urwe1g9y') (139.76608408614993, 35.681382017210126) >>> mzgeohash.enco
2021-10-06 14:42:41 6KB python geohash Python
1
geohash官方发布以及maven发布的版本都是基于jdk1.7编译的,碰到jdk1.6的项目会报unsupported major.minor version 51.0错误。这个资源是我基于jdk1.6编译的,执行测试案例都通过了。
2021-09-09 16:22:06 23KB jdk 1.6 geohash
1