Создание 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, не знаю, как они это получают. Сейчас я просто округляю широту и долготу.

Спасибо


person Sandip Jadhav    schedule 16.02.2012    source источник


Ответы (1)


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

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

person PravinCG    schedule 22.02.2012