2 点間の方向を見つけて Google マップに表示し、サーバー側に保存して、必要に応じて再度レンダリングして、あるルートと別のルートを比較できるようにするアプリケーションを開発しています。Google マップ API Web サービスを使用してルートを見つけることに
成功しました。また、 Google マップ JavaScript v3を使用してルートを見つけ、 DirectionsRendererを使用してマップに表示しました。
これらのサービスは両方とも、JSON のプロパティの名前が異なるだけで、同様の JSON を返します (以下の例 1 を参照)。さらに重要なことに、JS API は呼び出しごとに異なる緯度/経度のプロパティ名を返します (以下の例 2 を参照)。
したがって、問題は、サーバー側の Web サービス呼び出しから取得した JSON を使用できず、それを javascripts DirectionRenderer クラスに直接渡してルートを表示できないことです。さらに、マップにルートを表示するたびに JS 呼び出しを行う必要があります。これにより、クォータが不要に使用されます。これを行うためのより良い方法はありますか。私は次の質問をしましたが、実際にはこことここで答えを得ることができません
例 1:
Web サービスの呼び出し結果:
{
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 12.9198217,
"lng" : 77.6124895
},
"southwest" : {
"lat" : 12.912811,
"lng" : 77.60924989999999
}
},
.....
これには「パス」プロパティはありません。
Javascript V3 呼び出し結果:
{
"routes": [
{
"bounds": {
"ta": {
"d": 12.91281,
"b": 12.919820000000001
},
"ga": {
"b": 77.60925,
"d": 77.61249000000001
}
},
......
"path": [
{
"d": 12.913920000000001,
"e": 77.60928000000001
},
{
"d": 12.913960000000001,
"e": 77.60958000000001
},
{
"d": 12.91398,
"e": 77.61
}
],
..........
例 2: 別の Javascript V3 呼び出しの結果:
{
"routes": [
{
"bounds": {
"Aa": {
"k": 12.91281,
"j": 12.919820000000001
},
"qa": {
"j": 77.60925,
"k": 77.61249000000001
}
},
.....
"path": [
{
"k": 12.91281,
"A": 77.60925
},
{
"k": 12.913920000000001,
"A": 77.60928000000001
}
],
.........