Я пытаюсь получить GeoPoint для -23.4456 на 45.44334
Какие значения я передаю в конструктор GeoPoint, поскольку он принимает только Ints.
Ответ 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);