我有以下xml数据:
<nextbus>
<station>
<name>Resecentrum</name>
<url>http://wap.nastabuss.se/its4wap/QueryForm.aspx?hpl=Resecentrum+(V%C3%A4xj%C3%B6)</url>
<latitude>56.87900440</latitude>
<longitude>14.80585220</longitude>
</station>
<station>
<name>Lunnabyvägen</name>
<url>http://wap.nastabuss.se/its4wap/QueryForm.aspx?hpl=Lunnabyv%C3%A4gen+(V%C3%A4xj%C3%B6)</url>
<latitude>56.9127830</latitude>
<longitude>14.74299680</longitude>
</station>
<station>
<name>Slottsruinen</name>
<localurl>http://crossplatform.co.nf/sample%20html/Slottsruinen+(V%C3%A4xj%C3%B6).html</localurl>
<latitude>56.9387270</latitude>
<longitude>14.79787070</longitude>
</station>
<station>
<name>Evedal</name>
<localurl>http://crossplatform.co.nf/sample%20html/Evedal+(V%C3%A4xj%C3%B6).html</localurl>
<latitude>56.92177890000001</latitude>
<longitude>14.82015180</longitude>
</station>
.....
鉴于我有 current geolocation(latitude:56.8517837 and longitude:14.8284759)
,我将使用Google 的 Distance Matrix APIlatitude and longitude
使用它在 xml 数据中提供的从当前位置计算到其中一个站点的距离。像这样:
http://maps.googleapis.com/maps/api/distancematrix/json?origins=56.8517837,14.8284759&destinations=56.91869459999999,14.85939390&mode=walking&sensor=false
我得到的JSON
回应是这样的:
{
"destination_addresses" : [ "Lenhovdavägen 60, 352 49 Växjö Municipality, Sweden" ],
"origin_addresses" : [ "Tuvanäsvägen 1, Linnéuniversitetet, 352 52 Växjö, Sweden" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "9.4 km",
"value" : 9429
},
"duration" : {
"text" : "1 hour 57 mins",
"value" : 7010
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
在回应中,我得到了eg. 9.4km
这里的距离。我想根据这个距离对 xml 进行排序。就像nearest 5 stations from current location
.
我应该如何处理这个?我能简单地想到的是:
- 使用 jQuery 解析 xml。
- 然后查询每对当前位置和目的地站的谷歌距离矩阵 API 以获得距离。
- 将每个站的结果存储在关联数组中,并动态创建键以供参考。
- 然后最后对关联数组进行排序。
完成所有这些之后,我应该能够使用station name
,calculated distance
和url
与排序站关联的。
我正在考虑的解决方案是一般的解决方案,特别是关于dynamic generation of key
一个associative array
好的解决方案吗?如果有人能告诉我适当的方法来解决这个问题,我将不胜感激。也许一些代码会更好。