Как извлечь Lat / Long из Google Maps RoadsApi из ответа SnappedPoints? - PullRequest
0 голосов
/ 29 октября 2018

Я использую 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.

Кому-нибудь повезло с этим в прошлом? Или, может быть, есть идея о том, как экстраполировать нужные мне данные из этого ответа? Я мог бы разобрать его из строкового объекта, но это было бы неуклюже и в лучшем случае ненадежным, поскольку я не уверен, как он будет себя вести, если будет возвращено несколько записей.

Все, что мне нужно, это широчайший и длинный!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...