我正在尝试获取-23.4456和45.44334的GeoPoint。
当GeoPoint只接受整数时,我需要传递哪些值到构造函数中?
我正在尝试获取-23.4456和45.44334的GeoPoint。
当GeoPoint只接受整数时,我需要传递哪些值到构造函数中?
GeoPoint坐标基于微度(度数*1e6)-- 在这里有介绍
float lat = -23.4456f;
float lng = 45.44334f;
GeoPoint gp = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6));
我更喜欢创建一个LatLonPoint,而不是在整个应用程序中重复使用数学计算。
private static final class LatLonPoint extends GeoPoint {
public LatLonPoint(double latitude, double longitude) {
super((int) (latitude * 1E6), (int) (longitude * 1E6));
}
}
然后无论我在哪里需要创建一个GeoPoint,并且我有一个纬度/经度,我只需要执行以下操作
GeoPoint point = new LatLonPoint(37.234569, -122.123456);
实际上,GeoPoint 上本来就应该有一个经纬度构造函数。
我正在寻找解决方案,也许它会对您有所帮助。
1)首先,您需要以度为单位提供数据(位置)。 2)通过公式,您需要将其乘以1000000。 3)现在,您有特定的GEO POINT位置。
例如,如果我有如下位置:纬度:23.0395677,经度:72.5660045° 那么,您的GeoPoint为(23039568、72566045);