2012-12-07 10 views
5

Der blaue Punkt/Pfeil zeigt nicht auf meiner Karte. Alles andere funktioniert gut. Fehle ich einige Berechtigungen?Android Google Maps V2 User Location

Enthalten die Java-Klasse, Manifest und Layout-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"/> 

manifestieren:

<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"/> 
+0

es mit der Google Maps App Funktioniert auf diesem Gerät? In neueren Versionen von Android gibt es ein Problem, bei dem Sie Google Maps speziell über den Bereich "Konten" der App "Einstellungen" genehmigen müssen, damit Sie GPS verwenden können. Es ist denkbar, dass dies auch Auswirkungen auf die V2 Maps hat. – CommonsWare

+0

traurig der blaue Punkt zeigt sich gut in der Google Maps-Anwendung auf meiner Samsung Galaxy s2 –

+0

Die In-Gerät-Einstellungen meiner App sogar sagen, dass diese App auf "Ihren Standort" zugreifen kann (hat auch "Netzwerkkommunikation") –

Antwort

0

Aus irgendeinem Grund hat es einfach funktioniert. Ging zum Mittagessen weg und verließ die App auf. Als ich zurückkam, wurde der blaue Pfeil auf der Karte gezeichnet. Nicht am richtigen Ort, aber es war auf der Karte. Also funktioniert der gepostete Code von mir. Es benötigt nur ein Update vom Location Manager.

+0

Wenn ich den Tour-Code starte, bekomme ich den Fehler, dass ** java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout nicht in com.google.android.gms.maps.MapView umgewandelt werden kann. ** I useGoogle Inc. : Google APIs: 10 und MAP V2 auch. –

3

Sie würden sehen, dass die 'Mein Standort' Button den blauen Punkt an der aktuellen Position erzeugt. Wenn Sie den Standortmanager verwenden, um Standortaktualisierungen zu verfolgen und die Kamera entsprechend zu verschieben, können Sie den Benutzer auch verfolgen, ohne auf die Schaltfläche zu klicken. Sehen Sie sich einen Ausschnitt unten an.

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)); 
     } 
} 
+0

Wo registrieren Sie diesen Listener? Handelt es sich um den Systemdienst 'LocationManager' anstelle der' Map'? – dnkoutso

+0

Durch Klicken auf die Schaltfläche "Mein Standort" wird in meinem Fall nicht einmal der blaue Punkt erstellt. –

+0

Ja, der LocationManager, wie in: LocationManager.requestLocationUpdates (Provider, Zeit, Entfernung, LocationListener); – soujisama

0

FWIW, ich habe genau das gleiche Problem wie der ursprüngliche Beitrag auf einem Samsung Galaxy Tab 2. Allerdings habe ich nicht das Problem auf einem Archos 101G9.

Wenn ich neu starte, laden Sie meine App mit Google Maps v2 und klicken Sie auf die Schaltfläche "Gehe zu meinem Standort" oben rechts, der Archos geht direkt zu meinem aktuellen Standort, aber die SGT2 tut nichts.

Wenn ich meinen aktuellen Standort manuell mit dem Standortmanager abrufe und die Karte dorthin animiere, navigiert er. Wenn Sie jedoch auf die Schaltfläche "Gehe zu meinem Standort" klicken, geschieht nichts.

Eine Standortkorrektur mit GPS scheint das Problem zu beheben.

EDIT: Auf der SGT2 erscheint der blaue Ortspunkt nur mit einem GPS-Fix, aber der Archos zeigt den blauen Punkt mit einem mobilen Daten/WLAN-Fix.

0

Hallo in Sie Geräte hinzufügen FragmentActivity Location

private LocationManager locationManager; 

In 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); 

und umgesetzt methos zu Location hinzufügen;)

Verwandte Themen