1

我有以下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.

我应该如何处理这个?我能简单地想到的是:

  1. 使用 jQuery 解析 xml。
  2. 然后查询每对当前位置和目的地站的谷歌距离矩阵 API 以获得距离。
  3. 将每个站的结果存储在关联数组中,并动态创建键以供参考。
  4. 然后最后对关联数组进行排序。

完成所有这些之后,我应该能够使用station name,calculated distanceurl与排序站关联的。

我正在考虑的解决方案是一般的解决方案,特别是关于dynamic generation of key一个associative array好的解决方案吗?如果有人能告诉我适当的方法来解决这个问题,我将不胜感激。也许一些代码会更好。

4

0 回答 0