【问题标题】:Geohash functions in SQL Server?SQL Server 中的 Geohash 函数?
【发布时间】:2018-11-14 16:39:30
【问题描述】:

SQL Server 中是否有用于处理geohashes 的内置函数?要么去/来自多边形表示或获取中心点?我查看了geography 函数here,但什么也没看到......

如果没有内置函数,是否有人知道用户定义的函数的任何定义,这些函数可能会漂浮在那里执行此操作?我知道该算法是公开可用的,但如果已经完成,我宁愿不推出自己的 SQL 实现。

【问题讨论】:

  • sql server 本身没有任何此类功能。这是我读到的关于 geohashes 的第一件事,但我用 Lat/Lng 坐标做了类似的事情。您可以对 Lat/Lng 执行相同的“接近”操作,只需添加和减去值以创建范围。

标签: sql sql-server azure-sql-database geohashing


【解决方案1】:

我创建了一个基本的用户 sclarar 函数来完成其中的一些:

https://github.com/Broham/SQL-Server-Geohash

目前它只需要一个 geohash 并返回它的中心 lat/long,但它可以很容易地修改为返回一个边界框,获取一个 lat/long 的 geohash 或任何其他数量的用例。希望这对某人有帮助

【讨论】:

    【解决方案2】:

    在搜索了一个 Geohash 类型和转换函数的 SQL Server TSQL 实现后,我终于自己写了一个完整的开源库:

    我设计它是为了最大限度地提高准确性、性能和强大的转换一致性保证。它使普通的 IT 数据仓库分析师或报告编写者能够有效地使用、处理和利用简单的 GIS 空间邻近模型和查询。它无需上述分析师或报告作者参与寻找和采用完整 GIS 风格解决方案的陡峭学习曲线即可完成所有这些工作。

    它提供了两种 Geohash 实现类型; Integer (BIGINT)String (VARCHAR)。它还提供了两种坐标类型; Longitude+LatitudeDMS。然后它提供与这些不同类型之间的转换。它还提供conversions to/from the SQL Server spatial geography Point type

    有关详细信息,请参阅README.md

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-06
      • 2018-06-11
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      相关资源
      最近更新 更多