2017-10-16 2 views
0

Googleマップ - 距離マトリックスAPIについて結果は、要求を持っている同じ順序であることを保証されますか? 1つの起点から複数の目的地までの距離を取得するようにAPIに要求している場合、結果の並べ替えは要求の順序と一致することが保証されますか?Googleマップ - 距離マトリックスAPI - 結果の順

ビジネスオブジェクトをAPI呼び出しの結果にマップする必要があります。ハードマップに移動する方法が見つかりません。適合する縫い目のみ。

ありがとうございます。

ヒューゴ

答えて

1

距離行列APIウェブサービスリターン結果各行項目が要求にoriginsパラメータから1つの原点に対応し、順序が元の要求のように保存されrowsアレイとして。各行項目はelements配列を含み、各要素は要求のあるdestinationsパラメータから1つの宛先に対応し、順序も保持されます。このことができます

https://developers.google.com/maps/documentation/distance-matrix/intro#DistanceMatrixResponses

希望:

あなたは距離行列のAPIレスポンス構造が説明されている公式ドキュメントを見てすることができます!

1

1)JSON応答の場合、結果は同じ形式になります。 例:a。単発応答:

{ 
    "destination_addresses": [ 
     "Karnataka, India" 
    ], 
    "origin_addresses": [ 
     "Delhi, India" 
    ], 
    "rows": [ 
     { 
      "elements": [ 
       { 
        "distance": { 
         "text": "1,942 km", 
         "value": 1941907 
        }, 
        "duration": { 
         "text": "1 day 9 hours", 
         "value": 120420 
        }, 
        "status": "OK" 
       } 
      ] 
     } 
    ], 
    "status": "OK" 
} 

b。マルチレスポンス:

{ 
    "destination_addresses": [ 
    "67-89 Pacific St, Brooklyn, NY 11201, USA", 
    "67-89 Pacific St, Brooklyn, NY 11201, USA", 
    "67-89 Pacific St, Brooklyn, NY 11201, USA", 
    "67-89 Pacific St, Brooklyn, NY 11201, USA", 
    "67-89 Pacific St, Brooklyn, NY 11201, USA", 
    "67-89 Pacific St, Brooklyn, NY 11201, USA", 
    "557-599 Dr Wesley McDonald Ave, Brooklyn, NY 11203, USA", 
    "66-0-66-26 103rd St, Rego Park, NY 11374, USA", 
    "1000 N Village Ave, Rockville Centre, NY 11570, USA", 
    "300-448 Beach 19th St, Far Rockaway, NY 11691, USA", 
    "557-599 Dr Wesley McDonald Ave, Brooklyn, NY 11203, USA", 
    "66-0-66-26 103rd St, Rego Park, NY 11374, USA", 
    "1000 N Village Ave, Rockville Centre, NY 11570, USA", 
    "300-448 Beach 19th St, Far Rockaway, NY 11691, USA" 
], 
"origin_addresses": [ 
    "566 Vermont St, Brooklyn, NY 11207, USA" 
], 
"rows": [ 
    { 
     "elements": [ 
      { 
       "distance": { 
        "text": "6.5 mi", 
        "value": 10423 
       }, 
       "duration": { 
        "text": "35 mins", 
        "value": 2096 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "6.5 mi", 
        "value": 10423 
       }, 
       "duration": { 
        "text": "35 mins", 
        "value": 2096 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "6.5 mi", 
        "value": 10423 
       }, 
       "duration": { 
        "text": "35 mins", 
        "value": 2096 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "6.5 mi", 
        "value": 10423 
       }, 
       "duration": { 
        "text": "35 mins", 
        "value": 2096 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "6.5 mi", 
        "value": 10423 
       }, 
       "duration": { 
        "text": "35 mins", 
        "value": 2096 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "6.5 mi", 
        "value": 10423 
       }, 
       "duration": { 
        "text": "35 mins", 
        "value": 2096 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "2.9 mi", 
        "value": 4662 
       }, 
       "duration": { 
        "text": "18 mins", 
        "value": 1086 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "8.5 mi", 
        "value": 13738 
       }, 
       "duration": { 
        "text": "23 mins", 
        "value": 1367 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "15.9 mi", 
        "value": 25544 
       }, 
       "duration": { 
        "text": "29 mins", 
        "value": 1755 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "13.2 mi", 
        "value": 21296 
       }, 
       "duration": { 
        "text": "34 mins", 
        "value": 2058 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "2.9 mi", 
        "value": 4662 
       }, 
       "duration": { 
        "text": "18 mins", 
        "value": 1086 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "8.5 mi", 
        "value": 13738 
       }, 
       "duration": { 
        "text": "23 mins", 
        "value": 1367 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "15.9 mi", 
        "value": 25544 
       }, 
       "duration": { 
        "text": "29 mins", 
        "value": 1755 
       }, 
       "status": "OK" 
      }, 
      { 
       "distance": { 
        "text": "13.2 mi", 
        "value": 21296 
       }, 
       "duration": { 
        "text": "34 mins", 
        "value": 2058 
       }, 
       "status": "OK" 
      } 
     ] 
    } 
], 
"status": "OK" 
} 

2)私は上記の例でも2番目の質問に注意する必要があります。 .NETオブジェクトと

3)JSONはmapped.Hereこれは役立つ:)

を以下にマッピングされたクラス

public class Response 
    { 
     public string Status { get; set; } 

     [JsonProperty(PropertyName = "destination_addresses")] 
     public string[] DestinationAddresses { get; set; } 

     [JsonProperty(PropertyName = "origin_addresses")] 
     public string[] OriginAddresses { get; set; } 

     public Row[] Rows { get; set; } 

     public class Data 
     { 
      public int Value { get; set; } 
      public string Text { get; set; } 
     } 

     public class Element 
     { 
      public string Status { get; set; } 
      public Data Duration { get; set; } 
      public Data Distance { get; set; } 
     } 

     public class Row 
     { 
      public Element[] Elements { get; set; } 
     } 
    } 

ホープで容易にすることができる結果

関連する問題