4

マイアプリはユーザーの走行ルートを表示します。数秒後、マップは新しいコンテンツの読み込みを停止し、次のようになります。 ここに画像の説明を入力

マイ コード: XML

    <fragment 
    xmlns:android="http://schemas.android.com/apk/res/android"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="19"
    android:layout_below="@+id/tracking_maps_colorgradient">
</fragment>

ジャワ:

            float zoom =  18;//googleMap.getCameraPosition().zoom;
        LatLng latLng = new LatLng(lastLatitude, lastLongitude);
        locations.add(latLng);
        CameraPosition pos = new CameraPosition.Builder()
            .target(latLng)
            .bearing(bearing)
            .zoom(zoom)
            .tilt(googleMap.getCameraPosition().tilt)
            .build();

        googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(pos));
        Polyline p = googleMap.addPolyline(new PolylineOptions()
            .add(latLng)
            .width(15)
            .color(Color.RED)
            .geodesic(true));
        p.setPoints(locations);

マップを無効にする方法はありますか?

ご協力いただきありがとうございます!

4

3 に答える 3

0

わかりました、同じ問題を抱えているこの人たちのために、ここに解決策があります。問題は、GoogleMap が常に更新されないことです。ユーザーが境界から出たときにカメラの位置を変更する必要があります。

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

if(!bounds.contains(new LatLng(gps.getLatitude(), gps.getLongitude())))        {
    //Move the camera to the user's location if they are off-screen!
    CameraPosition cameraPosition = new CameraPosition.Builder()
  .target(new LatLng(gps.getLatitude(), gps.getLongitude()))      
  .zoom(zoom)                   // Sets the zoom
  .bearing(bearing)
  .build();                   // Creates a CameraPosition from the builder
    googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
于 2012-12-23T11:39:40.277 に答える
0

あなたが問題を起こすまで、私はそこにあることを知りません。しかし、私は解決したので、あなたと共有したいと思いました. handler と Thread.sleep(600) を使用できます。ハンドラーのみを使用すると、同じ問題が発生します。Thread.sleep 関数はマップの更新を待ってから、マーカーに移動します。

于 2014-08-18T19:14:52.510 に答える
0

Thread.sleep(300); を使用します。マーカー、オーバーレイなどでマップを更新した後。Google マップは独自の内部スレッドを使用するため、変更を適用するのに時間がかかります。マップに要素を追加するスレッドが Google マップのスレッドをブロックしている可能性があります。スリープにより、更新を行うための時間が与えられます。

于 2013-07-18T15:00:37.030 に答える