Как получить полный код из открытого кода местоположения - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь получить полностью открытый код местоположения из короткого открытого кода местоположения, что я делаю неправильно?Я использую Java Open Location Code -library в моем проекте Android.

        // 63.7740574, 23.9011008

        // This is an full olc (I searched it from web)
        // input = "9GM5QWF2+JC";

        // This is an short olc (also searched from the web)
        // input = "QWF2+JC";

        // And this is an olc which is copied to clipboard from google maps application
        input = "QWF2+JC Hautala";

        boolean isFullCode = OpenLocationCode.isFullCode(input);
        boolean isShortCode = OpenLocationCode.isShortCode(input);

        if (isFullCode || isShortCode)
        {
            OpenLocationCode olc = new OpenLocationCode(input);

            Double lat = olc.decode().getCenterLatitude(); // Crashes here if we are parsing input to short code
            Double lng = olc.decode().getCenterLatitude(); // But doesn't crash if we are using full lenght code

            result = new LatLng(lat, lng);
        }

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Невозможно восстановить полный код из короткого кода без какого-либо геокодирования.Краткая форма предназначена для более удобного для чтения человека и определения местоположения в пределах известного региона.

Однако, если вы получаете короткий код из Карт Google, вместо этого вы можете использовать пару долгота / широта для генерацииполный код полностью в автономном режиме.

double latitude = 63.7740574;
double longitude = 23.9011008;

OpenLocationCode olc = new OpenLocationCode(latitude, longitude, 10); // the last parameter specifies the number of digits
String code = olc.getCode(); // this will be the full code
0 голосов
/ 18 октября 2018

Полный код выглядит как 8FVC9G8F + 6W - то есть он имеет восемь цифр перед «+».

Короткий код такой же, только с меньшим количеством цифр перед «+» (обычно четыре).

"QWF2 + JC Hautala" - короткий код с указанием населенного пункта.Чтобы преобразовать его в полный код, вам необходимо:

  1. Разделить его на "QWF2 + JC" и "Hautala";
  2. Геокодировать "Hautala" вширота и долгота, используя выбранный вами геокодер;
  3. Восстановление полного кода с помощью метода recover() объекта OpenLocationCode.

Альтернативой является просто выбросить его в Google Geocoding API (вам необходимо получить ключ API).

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