Создание GeoPoint в Android

GeoPoint point = new GeoPoint(
       (int) (userlocation.getLatitude() * 1E6),
       (int) (userlocation.getLongitude() * 1E6));

Я создаю географическую точку, как указано выше, но она не находится в точном местоположении пользователя, это примерно от 500 до 600 метров

Здесь userlocation - местоположение, которое я получаю от слушателя местоположения.

В пользовательском местоположении я получаю значения примерно 18.453225455645 & 78.15446456546 Но при построении графиков я могу использовать только 18.453225 & 78.154464, т.е. только шесть цифр после десятичной дроби. если я пытаюсь использовать дополнительные значения, маркер показывает неправильное местоположение.(Это связано с необходимостью значений геопункта в int)

Как я могу построить точное местоположение на карте?

Отредактировано:- Я не думаю, что у кого-то есть решение по этому вопросу. Я проверил несколько приложений и обнаружил, что одно приложение под названием myTaxi имеет большую точность, чем карта Google, не знаю, как они это получают. В настоящее время я просто округляю широту и долготу.

Благодарю вас

1 ответ

Решение

А. Если убрать последние несколько цифр после шести цифр, вы не получите ошибку 500–600 м, поскольку 5 цифр после десятичных разрядов дают точность около 1 м.

б. Используете ли вы GPS или другой поставщик местоположения? Используйте только GPS в качестве поставщика местоположения, если вы хотите точное местоположение. Есть ловушка, хотя для корректной работы GPS потребуется линия видимости.

Другие вопросы по тегам