13

私のアプリケーションでは、ユーザーがマップ上の 2 つのポイントを選択し、Google マップ Apiv3 のルート案内サービスを使用してそれらの間のルートを見つけることができます。次に、このルートに沿った座標をデータベースに保存する必要があります。これを達成するためのすべてのコードをうまく書くことができました。しかし、私は問題を抱えています。

StackOverflow には他にもいくつかの質問があることを知っています- OneTwo同じですが、彼らまたは私がここで何かを逃したことは確かだと思います。

サンプルコード:

function getCoordinates(result) {
            var currentRouteArray = result.routes[0];  //Returns a complex object containing the results of the current route
            var currentRoute = currentRouteArray.overview_path; //Returns a simplified version of all the coordinates on the path


            obj_newPolyline = new google.maps.Polyline({ map: map }); //a polyline just to verify my code is fetching the coordinates
            var path = obj_newPolyline.getPath();
            for (var x = 0; x < currentRoute.length; x++) {
                var pos = new google.maps.LatLng(currentRoute[x].kb, currentRoute[x].lb)
                latArray[x] = currentRoute[x].kb; //Returns the latitude
                lngArray[x] = currentRoute[x].lb; //Returns the longitude
                path.push(pos);
            }
      }

上記のコードは、緯度と経度の座標を保持しているように見えるオーバービュー パスのプロパティkbとプロパティが常に同じであるとは限らないことを除いて、完全に機能します。lb前回コードを作成したときはkbとでしたが、その後、、 今日、lbに変わりました。mbnbjbkb

上記以外の緯度経度を提供できるオブジェクト内の他のプロパティは表示されません。他の同様の質問への回答は、この問題について言及していません。ここで何か不足していますか?信頼できるソリューションをお願いします。

4

2 に答える 2

12

縮小された名前で文書化されていない kb と lb は使用しないでください。文書化されたプロパティ .lat() および .lng() のみを使用してください

于 2013-03-30T11:56:52.537 に答える
0

別のオプションは、「ポイント」文字列をデコードすることです。

http://home.provide.net/~bratliff/routes/

個々のポイントごとに lat() / lng() メソッドを使用するよりもはるかに高速です。

于 2013-03-30T14:00:27.577 に答える