1

AndroidアプリにMapFragmentがありますが、実際の地図に表示されている最小および最大の緯度/経度を知りたいのですが。

私はこの解決策を見つけました:

MapViewの角の経度の緯度を知りたい場合は、次を使用できます。

Point mapCenter = mapView.getMapCenter();
int latitudeSpan = mapView.getLatitudeSpan() / 2;
int longitudeSpan = mapView.getLongitudeSpan() / 2;
int topLeftLat = mapCenter.getLatitudeE6() + (latitudeSpan);
int topLeftLon = mapCenter.getLongitudeE6() - (longitudeSpan);
int bottomLeftLat = mapCenter.getLatitudeE6() - (latitudeSpan);
int bottomLeftLon = mapCenter.getLongitudeE6() + (longitudeSpan);

私の問題は、MapViewがなく、GoogleMap(com.google.android.gms.maps.GoogleMap)とMapFragment(com.google.android.gms.maps.MapFragment)しかないことです。

POI-DB-Entrysを選択するためのDBクエリを実行するには、最小/最大座標が必要です。

4

2 に答える 2

2

から取得できGoogleMapます。getVisibleRegionProjection

GoogleMapasという名前を付けたと仮定するとmap、そうします

VisibleRegion bounds = map.getProjection().getVisibleRegion();

VisibleRegion必ずしも長方形ではありませんが、境界を示します。詳細についてはドキュメントを参照してください。

于 2013-01-31T21:26:58.157 に答える
0

iagreen の回答に追加するには、おそらく可視領域呼び出しの LatLngBounds に興味があるでしょう。

LatLngBounds bounds = this.mMap.getProjection().getVisibleRegion().latLngBounds;

そこから、最小/最大緯度/経度 (北東/南西の角) を取得できます。

これで何をしようとしているのかわかりませんが、マーカーが「画面上」にあるかどうかを確認したい場合は、この回答に興味があるかもしれません

于 2013-02-01T17:55:37.160 に答える