Как я могу преобразовать Google Maps плюс коды в Lng & Lat координаты - PullRequest
1 голос
/ 23 мая 2019

Я работаю над проектом и использую некоторые старые вещи из карт Google Например, для определения местоположения больницы требуются координаты GPS долготы и широты. Я не могу найти способ получить эту информацию в этом формате 'lng, lat' например (34.417514,8.7518123) Единственное, что есть в новых картах Google, - это плюсовые коды (используемые https://plus.codes/), которые они используют в качестве координат местоположения Не могли бы вы, ребята, помочь мне найти способ конвертировать их в формат lng lat или способ напрямую извлечь lng и lat с веб-сайта Google Maps.

Или альтернатива, сохраняя мою геолокацию в формате плюсовых кодов в Android Studio (конечно же, в базе данных) вместо использования lat lng

https://www.up -00.com / я / 00125 / m4kadq6c7aeb.png

1 Ответ

1 голос
/ 27 мая 2019

Вы можете конвертировать коды Plus в формат lat/lng с помощью API кодов Plus .Если у вас есть полный (8 цифр перед знаком «+», например, 8F6CCQCW+2F для вашего местоположения) плюс код, вы можете локально (без какого-либо запроса в Интернете) использовать метод OpenLocationCode.decode() следующим образом:

...
OpenLocationCode olc = new OpenLocationCode("8F6CCQCW+2F");
Log.d(TAG, "Lat = " + olc.decode().getCenterLatitude() + "  Lng = " + olc.decode().getCenterLongitude());
...

Если у вас короткий Плюс-код (менее 8 цифр перед знаком «+», например CCQCW+2F Gafsa для вашего местоположения), вы можете использовать HttpURLConnection с

`https://plus.codes/api?address=CCQCW%2B2F Gafsa&key=YOUR_GEOCODING_API_KEY`

(NB! вам нужен ключ API геокодирования для геокода Gafsa часть) и получить теги location.lat и location.lng из его ответа JSON:

{
  "plus_code": {
    "global_code": "8F6CCQJG+",
    "geometry": {
      "bounds": {
        "northeast": {
          "lat": 34.432500000000005,
          "lng": 8.777500000000003
        },
        "southwest": {
          "lat": 34.43000000000001,
          "lng": 8.775000000000006
        }
      },
      "location": {
        "lat": 34.431250000000006,
        "lng": 8.776250000000005
      }
    },
    "locality": {}
  },
  "status": "OK"
}

для "альтернативного" (сохранение моегогеолокации в формате плюсовых кодов) вы можете (полностью локально) использовать encode() метод OpenLocationCode класс:

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