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>

.....

現在のがあるgeolocation(latitude:56.8517837 and longitude:14.8284759)場合、Google の Distance Matrix APIlatitude and longitudeを使用して、現在の位置から xml データで提供された駅の 1 つまでの距離を計算します。このような:

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. 次に、現在地と目的地ステーションのペアごとに Google Distance Matrix API にクエリを実行して、距離を取得します。
  3. 各ステーションの結果を連想配列に格納し、参照用にキーを動的に作成します。
  4. 最後に連想配列をソートします。

station nameこれをすべて行った後、 、calculated distanceおよびurl並べ替えられたステーションに関連付けられたを使用できるようになります。

私が一般的に考えている解決策は、特に良いものですかdynamic generation of keyassociative array誰かがこれについて適切な方法を教えてくれれば、とても感謝しています。おそらく、いくつかのコードはさらに優れているでしょう。

4

0 に答える 0