5

青い点/矢印が地図に表示されていません。他のすべては正常に動作します。いくつかの権限がありませんか?

Javaクラス、マニフェスト、およびレイアウトXMLが含まれています。

private void setUpMap(int satelliteMode, LatLng startPoint, float zoomLevel) {

        mapView.getUiSettings().setZoomControlsEnabled(false);
        //mapView.getUiSettings().setMyLocationButtonEnabled(false);
        mapView.setMapType(satelliteMode);
        mapView.setMyLocationEnabled(true);
        mapView.moveCamera(CameraUpdateFactory.newLatLngZoom(startPoint, zoomLevel));
    }

xml:

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

マニフェスト:

<permission
         android:name="com.example.project.MAPS_RECEIVE"
         android:protectionLevel="signature"/>
    <uses-permission  android:name="com.example.project.MAPS_RECEIVE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/>

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >

        <meta-data
           android:name="com.google.android.maps.v2.API_KEY"
           android:value="API_KEY"/>
4

4 に答える 4

3

[現在地]ボタンをクリックすると、現在の場所に青い点が作成されます。ロケーションマネージャーを使用して位置の更新を追跡し、それに応じてカメラを移動すると、ボタンをクリックしなくてもユーザーを追跡できます。以下のスニペットを参照してください。

LocationListener ll = new LocationListener() {

        @Override
        public void onLocationChanged(Location arg0) {
            Toast.makeText(getBaseContext(), "Moved to "+arg0.toString(), Toast.LENGTH_LONG).show();
            CameraPosition cp = new CameraPosition.Builder()
            .target(new LatLng(arg0.getLatitude(),arg0.getLongitude()))
            .zoom(12)
            .build();     
            map.animateCamera(CameraUpdateFactory.newCameraPosition(cp));
        }
}
于 2012-12-10T23:47:04.717 に答える
0

何らかの理由でそれはうまくいきました。昼食に出かけ、アプリをオンのままにしました。私が戻ったとき、青い矢印が地図上に描かれました。正しい場所ではありませんが、地図上にありました。したがって、投稿された私のコードは機能します。ロケーションマネージャからの更新のみが必要です。

于 2012-12-12T12:27:12.363 に答える
0

FWIW、Samsung Galaxy Tab 2の元の投稿とまったく同じ問題があります。ただし、Archos101G9では問題はありません。

再起動し、Google Maps v2を使用してアプリをロードし、右上の[現在地に移動]ボタンをクリックすると、Archosは現在の場所に直接移動しますが、SGT2は何もしません。

ロケーションマネージャーを使用して現在地を手動で取得し、それにマップをアニメーション化すると、ナビゲートされます。ただし、[現在地に移動]ボタンをクリックしても何も起こりません。

GPSを使用して位置情報を修正すると、問題が解決するようです。

編集:SGT2では、青い位置のドットはGPS修正でのみ表示されますが、Archosはモバイルデータ/Wi-Fi修正で青い点を表示します。

于 2012-12-12T12:59:57.340 に答える
0

こんにちはFragmentActivityaddはLocationListenerを実装します

private LocationManager locationManager;

onCreate(Bundle savedInstanceState)....追加

locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

Criteria locationCriteria = new Criteria();
locationCriteria.setAccuracy(Criteria.ACCURACY_FINE);       locationManager.requestLocationUpdates(locationManager.getBestProvider(locationCriteria, true), 1L, 2F, this);

そしてLocationListenerにメトスを実装しました;)

于 2012-12-21T17:38:29.460 に答える