【发布时间】:2015-01-06 07:19:12
【问题描述】:
我有以下 6 个位置的 JSON 数组。有没有办法根据附近位置在数组中的下一个经度和纬度对这些进行排序?
[
{"id" : 279, "longitude":79.853239,"latitude":6.912283},
{"id" : 284, "longitude":79.865699,"latitude":6.885697},
{"id" : 13, "longitude":79.851187,"latitude":6.912220},
{"id" : 282, "longitude":79.858904,"latitude":6.871041},
{"id" : 281, "longitude":79.853346,"latitude":6.899757},
{"id" : 16, "longitude":79.854786,"latitude":6.894039}
]
排序可以从第一项开始,结果应该是这样的
[
{"id" : 279, "longitute":79.853239,"latitude":6.912283},
{"id" : 13, "longitute":79.851187,"latitude":6.912220},
{"id" : 281, "longitute":79.853346,"latitude":6.899757},
{"id" : 16, "longitute":79.854786,"latitude":6.894039},
{"id" : 284, "longitute":79.865699,"latitude":6.885697},
{"id" : 282, "longitute":79.858904,"latitude":6.871041}
]
【问题讨论】:
-
如果第一项是 id=279,则数组的下一项应该最接近第一项(在这种情况下,它是 id=13)。那么它应该 b 最接近 id=13
-
那么如果你按照彼此之间的距离排序,你会如何选择哪个是第一个,哪个是最后一个?
-
作为第一个元素,我们可以获取第一个项目,然后基于该项目我们可以对下一个项目进行排序。正如我上面解释的,如果第一项是 id=279,那么最近的一项将是第二项 id=13,那么第三项应该最接近 id=13。
-
所以 - 创建另一个以
0开头的数组,并且每个下一个元素包含从第一个元素到其他每个元素的距离
标签: javascript arrays sorting latitude-longitude geo