我想通过45.44334
获得GeoPoint for -23.4456我将什么值传递给GeoPoint的构造函数,因为它只占用Ints。
答案 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);