数据库中从固定位置自动到 lan lng 的 lat lng 距离(澳大利亚)
Posted
技术标签:
【中文标题】数据库中从固定位置自动到 lan lng 的 lat lng 距离(澳大利亚)【英文标题】:lat lng distances automated from fixed positions to lan lng in database ( australia ) 【发布时间】:2012-02-02 15:06:25 【问题描述】:好的,这是一个很大的问题,我已经在这里和通过 tinternet 阅读了很多关于此的内容。
我找到的最好的是:this link
现在这是我们的问题(这仅适用于澳大利亚距离) 我们有一个包含澳大利亚每个郊区的 lat 和 lng 值的数据库。
我的问题是......有没有一种方法可以运行某种脚本来 ping 我们的服务器,并将结果存储在一个大型数据库中。
有点像:
record a: lat lng -> record b: lat lng (进行计算并将距离存储在记录中) 记录 a: lat lng -> 记录 b: lat lng (进行计算并将距离存储在记录中)
以此类推(并且不要记录 b:lat lng -> 记录 a:lat lng(因为这是已知的)
目前,访问这些数据的最简单方法是通过现实世界的名称,例如郊区州和邮政编码,我们在数据库中拥有这些名称以及 lat lng 值。
这些真的是多余的,因为每个数据条目都有一个 id。类似于我上面的例子。
目标是获得:
ID 1 -> ID2 距离 =:75 公里
其中 ID1 = -27.4561899, 153.3564564(已知名称 Raby Bay QLD 4163) 和 ID2 = -27.1054534, 152.948145(已知名称 Morayfield QLD 4560)
你知道我要去哪里了吗...
所以我的问题是,有谁知道我们可以运行自动化脚本的方法,该脚本将获取 ID,然后是下一个 ID 记录并执行一个函数并将结果保存到数据库,然后执行下一个......所以等等。
我们有非常快的服务器,并且有大约 13000 条个人记录(郊区)供我们相互竞争..
这将为我们提供大约 84,506,500 个结果 (.ish)
显然我们需要对同一个 ID 进行计算,因为这样我们就可以回显 0 公里
所以有什么建议吗,有没有人见过或做过类似的事情??
有没有更好的方法,理想情况下,我们希望做这个服务器端(并存储结果),然后在页面加载时将它们吐出来......
因为这是针对会员网站和广告项目..所以我们知道:
广告商的位置和访问者的位置,因此希望即时喷出从买家到卖家的距离。无需运行大型客户端代码。
步骤
【问题讨论】:
【参考方案1】:计算并没有那么难——当然不值得在一个表中预先计算超过 8400 万行,因为几乎可以肯定很少有人会用到。
如果像这样的数据是在数据库中存储每个位置的“最近位置”列表,我唯一需要进行大量预计算的时候,这可以用一个小得多的表来完成。 (即使这并不总是必要的,因为有时您可以通过边界框查询获得相同的数据)
如果您采用这种架构,您是否考虑过将表用作缓存,以便在人们请求结果时存储结果,并且当您的应用程序出现新问题时,他们会首先将其作为您的应用程序寻找答案的地方查询到达?
【讨论】:
有趣的是,我想到了一个替代方案,并且有点道理,因为用户总是会从相似的位置查看广告,因此数据已经被获取和存储。我看过不少网站,使用基本位置(作为 from )和卖方位置作为 to .. 我很确定这是通过 sql 获取的。例如:brisbane.gumtree.com.au/…以上是关于数据库中从固定位置自动到 lan lng 的 lat lng 距离(澳大利亚)的主要内容,如果未能解决你的问题,请参考以下文章
使用 R 中的 lat 和 lng 坐标将颜色段添加到地图上的位置