Подтвердить что ты не робот

Android GeoPoint с значениями lat/long

Я пытаюсь получить GeoPoint для -23.4456 на 45.44334

Какие значения я передаю в конструктор GeoPoint, поскольку он принимает только Ints.

4b9b3361

Ответ 1

Координаты GeoPoint основаны на микродегрегах (градусов * 1e6) - написано здесь

float lat = -23.4456f;
float lng = 45.44334f;
GeoPoint gp = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6));

Ответ 2

вместо того, чтобы повторять математику во всем моем приложении, я предпочитаю создавать LatLonPoint:

private static final class LatLonPoint extends GeoPoint {
    public LatLonPoint(double latitude, double longitude) {
        super((int) (latitude * 1E6), (int) (longitude * 1E6));
    }
}

тогда везде, где мне нужно создать GeoPoint, и у меня есть lat/lon, я просто делаю

GeoPoint point = new LatLonPoint(37.234569, -122.123456);

на GeoPoint действительно должен быть конструктор lat/long.

Ответ 3

Я взял lat/long из этой страницы и написал его без особого смысла... он работал очень хорошо, мой дом там, где он должен быть; )

поэтому вместо (выше) 34.234569 просто напишите 34234569... помните: 1e6 - 1000000, ничего больше;)

Ответ 4

Я нахожу решение, возможно, это поможет вам.

1) Сначала у вас есть данные (местоположение) в форме образования. 2) Уравнением вы должны умножить его на 1000000 3) теперь у вас есть определенное местоположение GEO POINT.

Как здесь, если у меня есть местоположение, например: Широта: 23.0395677 и Долгота: 72.5660045 ° Итак, ваш GeoPoint (23039568,72566045);