2011-12-07 5 views
1

GooleMaps APIとAndroidを使用して実際のズームレベルで現在使用できるLatitude/Longitude値を取得するにはどうすればよいですか?私はマップ上のすべてのユーザーのGeoLocationsを持っていますが、私は現在の "Display"(Zoomlevel)にあるユーザーだけを持っていたいので、実際のZoomlevelのGeo-Locationの境界を知る必要があります。Google Maps for Androidの現在のズームレベルでGeolocationsを取得する方法

答えて

0

を使用でき

int latSpanE6 = mapView.getLatitudeSpan(); 
int lonSpanE6 = mapView.getLongitudeSpan(); 

EDIT:

おっと、これはマップの中央せずにすべての無駄です:あなたはわずか数平方キロメートルを表示していると仮定すると、

GeoPoint center = mapView.getMapCenter(); 

int minMapLat = center.getLatitudeE6() - (latSpanE6/2); 
int maxMapLat = center.getLatitudeE6() + (latSpanE6/2); 
int minMapLon = center.getLongitudeE6() - (lonSpanE6/2); 
int maxMapLon = center.getLongitudeE6() + (lonSpanE6/2); 
+0

を与えるだろう、私はあなたが/追加する前に2で、これらのスパンを分割する必要があると思いますあなたがこのようにしたいならば、センターから/を引く。 – NickT

+0

@NickTが修正されました!ありがとう! – Craigy

1

と惑星の半分ではない場合、マップビューの境界ボックスの適切な近似は、次のようなコードで行うことができます。

GeoPoint topLeftGpt; 
GeoPoint bottomRightGpt; 

topLeftGpt = mapView.getProjection().fromPixels(0, 0); 
bottomRightGpt = mapView.getProjection().fromPixels(mapView.getWidth(), 
      mapView.getHeight()); 

あなたは、これらのGeopointsのそれぞれに.getLatitudeE6()メソッドを使用して.getLongitudeE6()した場合、それはあなたのバウンディングボックスの制限

関連する問題