2016-04-04 7 views
0

Ich bin New Comer in Android-Welt. Der Versuch, aktuelle Koordinaten von Google Map zu erhalten. Ich habe eine Beispiel-App gemacht, die Google Map als Absicht öffnet (von der Android-Website). Was ich tun möchte, ist, das lat-lng von dieser Absicht zu bekommen. Ich habe so weit getanHolen Sie sich lat-lng von Google Map Intent

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     // mMap = googleMap; 
     Uri uri = Uri.parse("geo:latitude,longitude?z=17"); 
     Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri); 
     startActivity(intent); 
    } 
} 

UPDATE: Ich weiß, kann ich aktuelle Koordinate in Android bekommen. Aber ich möchte koordinieren von google map intent (aktuell marker position zeigen)?

+0

was meinst du von lat-lng erhalten Absicht beginnen .. Sie Absicht beginnen lat und lange festlegen möchten, oder was? – Bharatesh

+0

@bharat - Ich habe meine Frage aktualisiert. –

+0

Ich denke nicht, dass Sie Google Maps Application Marker Details zu Ihrer Anwendung erhalten können. – Bharatesh

Antwort

1

Bitte beachten Sie die GoogleMap class documentation:

public final Ort getMyLocation()
...

Gibt die derzeit angezeigten Benutzer Standort oder null, wenn keine Standortdaten verfügbar ist .

Returns

  • Die derzeit Benutzerposition angezeigt.

Wirft

  • Illegal wenn die my-Lage-Schicht ist nicht aktiviert.

Dann wieder heißt es auch:

Diese Methode ist veraltet. Verwenden Sie stattdessen com.google.android.gms.location.FusedLocationProviderApi.

So können Sie getMyLocation() verwenden, wenn Sie wirklich wollen, aber es ist nicht zu empfehlen. Und es könnte null zurückgeben. Oder eine Ausnahme auslösen.

Der Code wäre dann so etwas wie:

@Override 
    public void onMapReady(GoogleMap googleMap) { 
     // mMap = googleMap; 
     Location myLocation;    

     try { 
      myLocation = googleMap.getMyLocation(); 
     } 
     catch (IllegalStateException e) { 
      // Handle the exception. 
     } 

     if (!myLocation == null) { 
      // Do something with the location if it's not null... 
     } 
     else { 
      // Handle the null location. 
     } 

     Uri uri = Uri.parse("geo:latitude,longitude?z=17"); 
     Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri); 
     startActivity(intent); 
    } 
Verwandte Themen