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

你好 FragmentActivity 添加实现 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 回答
0

出于某种原因,它刚刚起作用。去吃午饭,然后打开应用程序。当我返回时,蓝色箭头绘制在地图上。虽然不在正确的位置,但它在地图上。所以我发布的代码有效。它只需要位置管理器的更新。

于 2012-12-12T12:27:12.363 回答
0

FWIW,我的问题与三星 Galaxy Tab 2 上的原始帖子完全相同。但是,我在爱可视 101G9 上没有这个问题。

如果我重新启动,使用 Google Maps v2 加载我的应用程序并单击右上角的“转到我的位置”按钮,Archos 会直接转到我当前的位置,但 SGT2 什么也不做。

如果我使用位置管理器手动获取当前位置并将地图设置为动画,那么它会导航。但是,单击“转到我的位置”按钮仍然没有任何作用。

使用 GPS 进行定位似乎可以解决问题。

编辑:在 SGT2 上,蓝色位置点仅在 GPS 定位时出现,但爱可视显示蓝点与移动数据/wifi 定位。

于 2012-12-12T12:59:57.340 回答