0

私のアプリでは、Google Maps v2 API を利用しています。

以下のコードは、アクティビティが最初に開始されたときに、私の場所を示す青いピンで全世界を表示します。ただし、直接の場所にズームインしません。ただし、しばらくしてからこのメソッドを再度呼び出すと (現在地の表示ボタンを使用して)、必要なレベルにズームされます。

 public void onLocationChanged(Location location)
{
    if(location != null)
    {

        double latitude = location.getLatitude();
        currentLat = location.getLatitude();

        double longitude = location.getLongitude();
        currentLon = location.getLongitude();

        LatLng latLng = new LatLng(latitude, longitude);

        if(googleMap != null)
        {               
                 googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));   
                 googleMap.animateCamera(CameraUpdateFactory.zoomTo(13));

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

            if (!bounds.contains(new LatLng(location.getLatitude(), location.getLongitude())))
            {
                googleMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude())));
            }

        }
    }
4

1 に答える 1

1

マップビューのカメラ位置とズームレベルについて話していると思います。アクティビティの読み込み時にカメラが移動する正しい緯度と経度があれば、次のコードは正常に機能するはずです。

CameraPosition cameraPosition = new CameraPosition.Builder().target(new LatLng(17.385044,78.486671)).zoom(12).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

このチュートリアルから多くのことを学ぶことができます:

http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/

于 2013-11-06T15:26:24.890 に答える