3
    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度,但是当我点击周围的位置时

antarica,尤其是下面,我只看到-80。也就是说,纬度被限制在-80到80

度。这是我的错还是谷歌的错?

4

2 回答 2

2

您“在南极洲周围轻拍”,我猜您正在使用 MapView 来获取坐标。MapView 使用墨卡托投影作为地图投影,该投影的一个缺点是它在极点周围没有用,在这种情况下您想要点击的地方。所以我猜北极和南极甚至不在地图上。所以这是使用的地图投影的限制。

如果你想要一张好的南极洲地图,你应该使用不同的地图投影,但我不知道地图视图是否可行。但是我知道您至少可以更改 Google Maps 中的地图投影。

于 2011-07-31T21:06:56.580 回答
2

如果您检查 API 文档,它会说:

纬度:这将被限制在 -80 度和 +80 度之间,以保持墨卡托投影的准确性。

这是因为在两极附近,墨卡托投影会失去准确性。

于 2011-07-31T21:09:16.637 回答