Google 距離マトリックスは、最大 100 個のパラメーターを受け入れることができます。しかし、GET Ruquest url lenth では 15 未満 (2048 文字だと思います) に制限されており、エラー 414 - 要求された URL が大きすぎて処理できません。したがって、POST メソッドを使用する必要があるという結論に達しました。しかし、私はできません。REQUEST_DENIED エラーが発生しました。では、どうすればこのサービスを利用できますか?
public static bool GetMatrix(string origins, string destinations)
{
string poststring = string.Format("origins={0}&destinations={1}&mode=bicycling&language=fr-FR&sensor=false", origins, destinations);
byte[] postdata = Encoding.UTF8.GetBytes(poststring);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://maps.googleapis.com/maps/api/distancematrix/xml");
webRequest.Method = "POST";
webRequest.ContentType = "application/xml"; // or any other type dont work
webRequest.ContentLength = postdata.Length;
using (Stream writer = webRequest.GetRequestStream())
writer.Write(postdata, 0, postdata.Length);
using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
{
//Only for debug
using (var stream = new StreamReader(webResponse.GetResponseStream()))
System.Diagnostics.Debug.WriteLine(stream.ReadToEnd());
return (webResponse.StatusCode == HttpStatusCode.OK);
}
}