私のアプリケーションでは、グーグルマップのマーカーを使用して場所を表示しています。しかし、私はやりたくないすべての利用可能な場所を一度にマークしています。以下に示すように、地図の座標を取得して、画面にのみ収まる場所を表示したかったのです。
マップの座標を送信して、この範囲で利用可能な場所のみをソースから取得したかったのです。画面の隅からすべての4座標をキャプチャする必要があるかどうかわかりませんか?
誰かが私がこれを理解するのを手伝ってくれる?
私のアプリケーションでは、グーグルマップのマーカーを使用して場所を表示しています。しかし、私はやりたくないすべての利用可能な場所を一度にマークしています。以下に示すように、地図の座標を取得して、画面にのみ収まる場所を表示したかったのです。
マップの座標を送信して、この範囲で利用可能な場所のみをソースから取得したかったのです。画面の隅からすべての4座標をキャプチャする必要があるかどうかわかりませんか?
誰かが私がこれを理解するのを手伝ってくれる?
この方法を使用してそれらを取得できます。
yourMapView.getMap().getCameraPosition();
これにより、 CameraPositionオブジェクトが返されます。カメラの座標はフィールド ターゲットによって与えられ、ズームレベルはフィールドズームによって与えられます。これで、画面の隅の近似座標を計算できるようになります。
マップのTopLeft座標とBottomRight座標をいつでも取得するには、次を使用します。
public GeoPoint getCurrentTL(MapView map){
Projection pr = map.getProjection();
return pr.fromPixels(0, 0);
}
public GeoPoint getCurrentBR(MapView map){
Projection pr = map.getProjection();
return pr.fromPixels(map.getWidth(), map.getHeight());
}
ですから、これは古い質問ですが、ここにこの問題に関する新たな見解があります。
マップが上にある(表示されている)ときに、次の方法で表示領域を要求できます。
VisibleRegion vRegion = mMap.getProjection().getVisibleRegion();
LatLng upperLeft = vRegion.farLeft
LatLng lowerRight = vRegion.nearRight;
逆に、 LatLngBoundsを使用することもできます。北東と南西の2つのポイントを返します。
VisibleRegion vRegion = mMap.getProjection()。getVisibleRegion();
LatLng南西=vRegion.latLngBounds.southwest;
LatLng北東=vRegion.latLngBounds.northeast;
https://developers.google.com/maps/documentation/android-api/views