【发布时间】:2019-02-03 22:01:52
【问题描述】:
我们拥有地理空间性质的用户数据(纬度、经度)。我们使用 SQL 服务器来存储这个(几何数据类型)。是否有任何实现来了解用户访问的前 k 个最受欢迎的位置(地理数据)。假设我们以 100m 为半径,并将其中的所有点都考虑到同一位置。这基本上意味着对所有用户位置进行聚类并找到最填充的聚类。
就像标量值一样,我们在表上进行分组以找出出现次数最多的条目。我如何为地理数据实现这一目标?
【问题讨论】:
-
如果是纬度/经度,你为什么用
geometry而不是geography? -
另外,举一个极其荒谬的例子,我们存储了一系列点,每个点相距 90m,一直围绕赤道(如果不能被 90 整除,则需要进行任何伪造来完成圆)。每个点都在其他两个点的 90m 范围内,但你如何确定一个集群的位置?
-
@Damien_The_Unbeliever,感谢您的回复。是的,我考虑过这一点,但是对于实际数据点,例如在城市中四处旅行的用户,有理由认为在他的家庭和办公室位置周围形成了几个集群,对吗?我们目前正在计算级别解决这个问题,但我很想知道是否有办法在数据库级别解决它。
标签: sql sql-server geometry geospatial