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 度までしか移動しませんが、周囲の場所をタップすると

アンタリカ、特に下では、-80 しか見えません。つまり、緯度は -80 から 80 に制限されます。

度。これは私のせいですか、それともグーグルのせいですか?

4

2 に答える 2

2

あなたは「南極大陸をタップします」、MapViewを使って座標を取得していると思います。MapView は地図投影法としてメルカトル図法を使用していますが、その投影法の欠点は、この場合タップしたい極の周りでは役に立たないことです。ですから、北極と南極は地図にも載っていません。したがって、これは使用される地図投影法の制限です。

南極大陸の優れた地図が必要な場合は、別の地図投影法を使用する必要がありますが、地図表示でそれが可能かどうかはわかりません。ただし、少なくとも Google マップで地図投影法を変更できることは知っています。

于 2011-07-31T21:06:56.580 に答える
2

APIドキュメントを確認すると、次のように書かれています:

緯度: メルカトル図法の精度を維持するために、-80 度から +80 度までの範囲に固定されます。

これは、極の近くでメルカトル図法の精度が失われるためです。

于 2011-07-31T21:09:16.637 に答える