2012-12-07 15 views
5

Il puntino blu/freccia non viene visualizzato sulla mia mappa. Tutto il resto funziona bene. Mi mancano alcune autorizzazioni?Android Google Maps V2 Posizione utente

Incluso la classe Java, Manifest e XML di layout.

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

manifestare:

<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

funziona con l'applicazione Google Maps su questo dispositivo? C'è un problema nelle versioni più recenti di Android in cui devi dare il permesso a Google Maps in particolare tramite l'area Account dell'app Impostazioni per essere in grado di utilizzare il GPS. È concepibile che ciò influenzi anche le cose di V2 Maps. – CommonsWare

+0

purtroppo il punto blu si presenta bene nell'applicazione google maps sul mio samsung galaxy s2 –

+0

Le impostazioni in-device della mia app dicono anche che questa app può accedere a "La tua posizione" (ha anche "Comunicazione di rete") –

risposta

0

Per qualche motivo ha funzionato. Sono andato via a pranzo e ho lasciato l'app. Quando ho restituito la freccia blu è stata disegnata sulla mappa. Non sulla giusta posizione, ma era sulla mappa. Quindi il mio codice pubblicato funziona. Ha solo bisogno di un aggiornamento dal responsabile della posizione.

+0

Quando eseguo il codice tour mi dà errore che ** java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout non può essere lanciato su com.google.android.gms.maps.MapView ** Io uso Google Inc. : API di Google: 10 e MAP V2. –

3

vedreste che facendo clic sul pulsante 'la mia posizione' crea il punto blu alla vostra posizione corrente. Utilizzando il gestore di posizione per tenere traccia degli aggiornamenti di posizione e spostare la telecamera di conseguenza consente di monitorare anche l'utente, senza fare clic sul pulsante. Guarda uno snippet qui sotto.

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

Dove si registra questo ascoltatore? È sul servizio di sistema 'LocationManager' invece che sulla' Mappa'? – dnkoutso

+0

facendo clic sul pulsante La mia posizione non crea nemmeno il punto blu nel mio caso. –

+0

Sì, il LocationManager, come in: LocationManager.requestLocationUpdates (provider, ora, distanza, LocationListener); – soujisama

0

FWIW, ho lo stesso identico problema del post originale su un Samsung Galaxy Tab 2. Tuttavia, NON ho il problema su un Archos 101G9.

Se si riavvia, caricare la mia app con Google Maps v2 e fare clic sul pulsante "vai alla mia posizione" in alto a destra, l'Archos passa direttamente alla posizione corrente ma l'SGT2 non fa nulla.

Se ottengo manualmente la posizione corrente utilizzando il gestore località e l'animazione della mappa, esso naviga. Tuttavia, facendo clic sul pulsante "Vai alla mia posizione" non viene ancora eseguito nulla.

Ottenere una correzione della posizione tramite GPS sembra risolvere il problema.

MODIFICA: Sul SGT2 il punto di posizione blu viene visualizzato solo con una correzione GPS, tuttavia l'Archos visualizza il punto blu con una correzione dati/wifi mobile.

0

Hi in voi FragmentActivity aggiunge attrezzi LocationListener

private LocationManager locationManager; 

In onCreate(Bundle savedInstanceState) .... aggiungere

locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 

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

e attuate methos a LocationListener;)

Problemi correlati