public boolean onTap(GeoPoint p, MapView mapView) {
String msg;
double d1 = p.getLatitudeE6()/1E6;
double d2 = p.getLongitudeE6()/1E6;
String str1 = Location.convert(d1, Location.FORMAT_DEGREES);
String str2 = Location.convert(d2, Location.FORMAT_DEGREES);
msg = "x = "+ p.getLatitudeE6() +
", y = "+ p.getLongitudeE6();
Toast.makeText(MapViewActivity.this, msg, Toast.LENGTH_LONG).show();
return true;
}
我刚刚制作了这段代码来查看手指点击Android设备时的纬度和经度。
我想我的代码中存在问题或
提供的函数'getLatitudeE6'中的错误谷歌。如您所知,纬度仅在-90到+90度之间,但当我点击
周围的位置时 南极洲,特别是下面,我只看到-80。换句话说,纬度限制在-80到80度。这是我的错还是谷歌的错?
答案 0 :(得分:2)
你“点击南极洲”,我猜你正在使用MapView获取坐标。 MapView正在使用Mercator projection作为地图投影,并且该投影的一个缺点是它在极点周围无用,在这种情况下您想要点击它们。所以我猜北极和南极在地图上都没有。所以这是使用地图投影的限制。
如果你想要一张好的南极洲地图,你应该使用不同的map projection,但我不知道地图视图是否可行。但我知道您至少可以在Google地图中更改地图投影。
答案 1 :(得分:2)
如果您查看API文档,则说明:
纬度:这将被夹在-80度到+80度之间,以保持墨卡托投影的准确性。
这是因为在极点附近,墨卡托投影会失去准确性。