在给定地理点的 50 英尺范围内随机创建一个地理点(空间 SQL)

Posted

技术标签:

【中文标题】在给定地理点的 50 英尺范围内随机创建一个地理点(空间 SQL)【英文标题】:Randomly create a Geopoint within 50 feet of a given Geopoint (Spatial SQL) 【发布时间】:2010-11-19 20:32:02 【问题描述】:

我想在给定 GeoPoint 的 50 英尺范围内创建一个随机 GeoPoint。 (使用 SQL Server 2008 或 iPhone SDK)

我可以在经纬度上添加一些数字来创建这个随机地理点吗?

例子:

mylatdistance = Random(1,50) newlat = lat + mylatdistance 

这是空间 SQL/区域问题吗?

谢谢

【问题讨论】:

你想要什么发行版?均匀地放置在半径 50 英尺的圆圈内的任何位置? 只是一个想法;在 iphone 上,您可以使用获取两点之间距离的倒数功能来获取距离 X 距离的位置吗? 标记 - +-50 英尺半径内的任何单点。 【参考方案1】:

只要您将 delta_longitude 值缩放 1/cos(latitude) 的系数,该方法应该有效,因为 1 度纬度仅等于赤道处的 1 度经度。如果您不进行此缩放,当您的中心点远离赤道时,您的随机点集合将在经度维度上变得更加“挤压”。

【讨论】:

我明白了。谢谢吉姆。所以我可以把它当作一个更简单的数学问题——如果我缩放经度来补偿曲率。 Gr8 建议。谢谢

以上是关于在给定地理点的 50 英尺范围内随机创建一个地理点(空间 SQL)的主要内容,如果未能解决你的问题,请参考以下文章

地理围栏算法

检查用户位置是不是在颤动的2个地理点的区域内

Mongoose 地理空间查询查找所有包含给定点的用户球体

在区域(国家/城市)内生成随机经纬度值

从中心到给定点的纬度、经度和地理区域(NW、NE、SW、SE)

查询以将在特定地理距离内的行返回到给定行(使用 sql server 2008)