具有lat / long值的Android GeoPoint

时间:2010-08-26 17:43:34

标签: android android-mapview

我想通过45.44334

获得GeoPoint for -23.4456

我将什么值传递给GeoPoint的构造函数,因为它只占用Ints。

4 个答案:

答案 0 :(得分:73)

GeoPoint坐标基于微度(度* 1e6) - 写成here

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

答案 1 :(得分:30)

而不是在我的应用程序中重复数学,我更喜欢创建一个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构造函数。

答案 2 :(得分:6)

我从this page拿了一个lat / long并且没有任何意义地写了它...它工作得非常好,我的家就在那里,应该在那里;)

所以代替(上面)34.234569只需写34234569 ...记住:1e6是1000000,没别的;)

答案 3 :(得分:2)

我发现解决方案可能会帮助你。

1)首先,您有度数合成的数据(位置)。 2)通过公式,你必须乘以1000000 3)现在,您有特定的GEO POINT位置。

喜欢这里;如果我有类似的位置:纬度:23.0395677和经度:72.5660045° 那么,你的GeoPoint(23039568,72566045);