Geohash转换

免费在线Geohash编码解码工具,支持经纬度与Geohash字符串的双向转换。实时交互式地图可视化显示位置和8个相邻区域,支持1-12级精度调节。LBS应用开发、空间索引和GIS数据处理的必备在线工具。

Loading...
Geohash是由Gustavo Niemeyer发明的公共领域地理编码系统,它将地理坐标编码成一个紧凑的字母数字字符串。我们的免费在线Geohash编码解码工具可以让你即时将经纬度坐标转换为Geohash字符串,或将Geohash解码回坐标,并提供实时地图可视化。无论你是在构建基于位置的服务、优化数据库的邻近搜索查询,还是处理GIS数据,这个工具都能提供你所需的精度和可视化功能。Geohash被Uber、MongoDB、Redis等公司广泛用于高效的空间索引。
  1. 编码经纬度为Geohash:输入纬度(-90到90)和经度(-180到180),选择精度级别(1-12),Geohash会自动生成。
  2. 解码Geohash为坐标:切换到「解码」标签页,粘贴Geohash字符串,即可看到对应的经纬度和地图位置。
  3. 调整精度控制准确性:精度1覆盖约5000公里,精度6覆盖约1.2公里,精度9覆盖约5米,精度12覆盖约3.7厘米。
  4. 启用「显示相邻区域」可视化所有8个相邻的Geohash单元格——这对实现邻近搜索至关重要。
  5. 点击Geohash可复制到剪贴板,方便在代码、数据库查询或API调用中使用。

什么是Geohash?它是如何工作的?

Geohash是一种分层空间索引系统,将世界划分为网格单元。它使用base32编码将经纬度编码为单个字母数字字符串。每增加一个字符,就将单元格细分为32个更小的单元格,从而提高精度。例如,'u4pruydqqvj'精确定位一个特定位置,而'u4pru'则表示包含该点的更大区域。

不同长度的Geohash精度是多少?

Geohash精度随字符串长度变化:1字符≈5000km×5000km,2字符≈1250km×625km,3字符≈156km×156km,4字符≈39km×19.5km,5字符≈4.9km×4.9km,6字符≈1.2km×0.6km,7字符≈153m×153m,8字符≈38m×19m,9字符≈4.8m×4.8m,10字符≈1.2m×0.6m,11字符≈15cm×15cm,12字符≈3.7cm×1.8cm。

为什么使用Geohash而不是分别存储经纬度?

Geohash有几个关键优势:(1) 单字符串存储——更容易在数据库中建立索引;(2) 基于前缀的邻近性——附近位置共享相同前缀,可实现快速范围查询;(3) 分层精度——截断字符串即可降低精度,无需重新计算;(4) URL安全——可直接用于URL和API。它是Redis、MongoDB、Elasticsearch等数据库和众多位置服务的空间索引标准。

如何使用Geohash进行邻近/附近搜索?

进行邻近搜索时,需要查询目标Geohash及其8个相邻区域。这确保即使在单元格边界处也能捕获所有附近的点。我们工具的「显示相邻区域」功能可以可视化这些相邻单元格。在Redis中使用GEOSEARCH命令;在MongoDB中使用带geohash索引的$geoNear;在Elasticsearch中使用geo_bounding_box查询。

Geohash有什么局限性?

Geohash有一些边界情况:(1) 边缘效应——相邻的点在单元格边界处可能有完全不同的geohash;(2) 非均匀单元格——单元格是矩形而非正方形,随纬度变化;(3) 不适合精确距离计算——应使用Haversine公式计算精确距离。尽管如此,geohash仍然是空间索引和邻近搜索最高效的方法。

如何在不同编程语言中实现Geohash?

大多数语言都有geohash库:JavaScript(ngeohash、latlon-geohash)、Python(python-geohash、pygeohash)、Java(geohash-java)、Go(go-geohash)、Ruby(geohash gem)。数据库方面:Redis内置GEOADD/GEOHASH命令,MongoDB支持geohash索引,PostgreSQL有PostGIS扩展,Elasticsearch原生支持带geohash的geo_point类型。

如何将Geohash解码为经纬度坐标?

使用我们的Geohash解码功能非常简单:(1) 切换到「解码」标签页;(2) 在输入框中粘贴Geohash字符串(如'wx4g0s');(3) 点击「解码」按钮,即可获得对应的经纬度坐标;(4) 地图会自动定位到该位置并显示覆盖区域。解码结果会显示中心点坐标以及该Geohash覆盖的边界范围。

Geohash在线地图可视化有什么用途?

Geohash地图可视化功能可以帮助你:(1) 直观理解Geohash覆盖的地理区域大小;(2) 验证编码结果是否正确;(3) 查看不同精度级别的区域差异;(4) 显示8个相邻区域,用于规划邻近搜索策略;(5) 通过点击地图直接获取任意位置的Geohash。这对于开发基于位置的应用和调试空间查询非常有用。