私は Google Maps Java API を次の目的で使用していますRoadsApi
: ドキュメント: https://developers.google.com/maps/documentation/roads/intro
API: https://github.com/googlemaps/google-maps-services-java
私のリクエストは次のように構成されています。
latlngStart = new LatLng(Double.parseDouble(lastLoc.getNormalized_lat().toString()), Double.parseDouble(lastLoc.getNormalized_lng().toString()));
LatLng latlngEnd = new LatLng(Double.parseDouble(latitude), Double.parseDouble(longitude));
SnappedPoint[] points;
if (origin.equals(true)) {
points = RoadsApi.snapToRoads(context, latlngStart, latlngEnd).await();
} else {
points = RoadsApi.snapToRoads(context, latlngEnd).await();
}
これにより、期待される SnappedPoints[] 応答が得られますが、それを解析する方法や文字列値を取得する方法が少しわかりません。
for (SnappedPoint point : points) {
System.out.println(point);
}
上記のコードは、応答を繰り返し、内容を出力します。
[42.64472036,-83.21762969, placeId=ChIJf2D4OTbAJIgR3qx12TMRuIE, originalIndex=0]
この API のドキュメント ページでわかるように、Java の実装についてはほとんど言及されておらず、応答が次のように返されることだけが示されています。
{
"snappedPoints": [
{
"location": {
"latitude": -35.2784167,
"longitude": 149.1294692
},
"originalIndex": 0,
"placeId": "ChIJoR7CemhNFmsRQB9QbW7qABM"
},
...
}
これは私が受け取った応答を大まかに模倣しており、JavaScript API を使用しているとしか思えません。
過去にこれで運が良かった人はいますか?または、この応答から必要なデータを推定する方法についてアイデアをお持ちですか? 文字列オブジェクトから解析することはできましたが、複数のレコードが返された場合にどのように動作するかがわからないため、それは扱いにくく、せいぜい信頼性がありません。
必要なのは緯度と経度だけです!