【问题标题】:Find nearest locations from json Sencha Touch 2从 json Sencha Touch 2 查找最近的位置
【发布时间】:2012-07-18 07:26:33
【问题描述】:
我正在尝试为我的应用设置一部分,其中用户的移动位置(我正在工作)用于查找最近的位置(假设在 15 英里内)与位置的 json 存储(假设为 40左右,它会增加)。
我一直在绞尽脑汁要怎么做。我相信距离矩阵(查看 Google API,但不知道如何从文档中实现它)是我需要的,但我不知道如何加载 json 列表并将其用于该位置(仍然是 n00b) .
如果有教程或一些关于如何去做的细节会很棒。我只需要指出正确的方向。
任何信息都很棒,提前谢谢。
我正在使用 Sencha Touch 2.0.1,一个 json 存储并使用 Google Maps JavaScript API v3。
马特
【问题讨论】:
标签:
google-maps-api-3
extjs
sencha-touch-2
distance
【解决方案1】:
您最好在后端进行该处理并仅将关闭记录发送回客户端。这将使您的客户端应用程序不会陷入困境。
如果您将纬度/经度点存储为空间数据,您可以为此使用 Postgresql/Postgis。您也可以使用 MySQL 空间扩展来执行此操作。如果您想将半正弦公式构建到 MySQL 函数中,您可以在所有点周围绘制 15 英里半径并使用 MySQL 的内置“within”函数。如果您更喜欢使用 NoSQL 风格,那么 CouchDB 有一个不错的 GeoCouch 扩展,可以执行您想要的功能。
【解决方案2】:
是的,想出了一个办法。很可能不是最好的,但它现在可以工作。
我正在将所有纬度和经度与位置一起加载到商店文件中。
然后,在初始化时,它获取当前位置并将其与存储的位置进行匹配,并对每个位置运行 Haversine 公式。一旦它有了所有的距离,它就会排序并完成。