Google Maps

  • 12 Antworten
  • Letztes Antwortdatum
J

Jajobe

Erfahrenes Mitglied
14
Hallo.
Ich habe eine App entwickelt.
Nun möchte ich wenn man auf einen Button klickt, dass sich Google Maps mit einer in der App festgelegten Adresse öffnet und die navigation vom jetzigen standpunkt bis zur festgelegten adresse navigiert wird.
Also keine Maps integration, sondern einfach Maps seperat öffnen und die Adresse übernehmen.
Weiß jemand wie des geht?
Oder ob es dafür einen speziellen Namen gibt nachdem ich googeln kann?
 
Irgendwie werde ich daraus nicht hilfreich, noch eine idee?
 
Wie schon gesagt, du brauchst einen Intent

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);

In der URI hast du saddr und daddr für start und destination. Müsste auch die Route berechnen, habe es aber nicht ausprobiert...

Quelle: java - Launching Google Maps Directions via an intent on Android - Stack Overflow
 
  • Danke
Reaktionen: Jajobe
Muss ich mal probieren. Dankeschön.
 
Code:
import java.util.Locale;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class StadionActivity extends Activity {
	
	private Button button1;
	


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.stadion);
		
        button1 = (Button)findViewById(R.id.button1);
		
		button1.setOnClickListener(new OnClickListener(){
			public void onClick (View v) {
				String uri = String.format(Locale.ENGLISH, "geo:%f,%f", 49.019571, 8.412362);
				Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
				context.startActivity(intent);
				
			}});
		
		

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.stadion, menu);
		return true;
	}

}

Also ich habe jetzt mal was gefunden. Allerdings ist des context bei context.startActivity(intent);
rot unterstrichen. Ich kann nichts impotieren und so.
Was soll ich jetzt machen?
Bzw. Stimmt das überhaupt?
 
mach es weg, so das nur startActivity(intent); da steht

Das geht, weil du dich ja in einer Activity befindest.
Aber die URI die du aufrufst wäre nur ein Punkt, keine Route von A nach B wie du es ja haben willst.
 
Zuletzt bearbeitet:
Ja. Aber wenn ich einen Punkt habe, kann man ja mit der google maps app navigation zu hier machen.
Wenn man übrigens des context weg macht, stürtzt die app ab
 
Und was steht im Logcat?
 
HAbe gerade den Fehler gefunden.
Merke gerade dass der emulator keine maps installiert hat?!
Deswegen ist es auch immer abgestürtzt.
Danke für die Hilfe ;)
 
Für Maps im Emulator musst du für das jeweilige API-Level die Google-APIs - API Level x nehmen, dann klappt es auch da
 
  • Danke
Reaktionen: Jajobe
Hi Leute,

ich rufe aus meiner App ebenfalls via Intent die Google Maps App zum Anzeigen einer bestimmten Position auf. Funktionierte monatelang auf alle Android-Geräten (Smartphones/Tablets, von Android 2.3 bis 4.1).

Jetzt hab ich festgestellt, dass es nicht mehr geht. Und zwar ab dann, wenn man auf Google Maps 7.x upgedated hat. Die App geht zwar immer noch auf, aber es wird die Position nicht angezeigt sondern:
"Keine Ergebnisse für [Koordinaten] ..."

Irgendwas hat Google hier wieder an der API gedreht. Wenn ich nur wüsste was? Oder Google erlaubt gar nicht mehr, dass Maps von anderen Apps via Intent aufgerufen wird. Ich hab einen Thread gesehen, wo Leute berichten, dass man die Position in WhatsApp nicht mehr angezeigt bekommt, wenn man auf Maps 7 gegangen ist bzw. wurde. Hört sich für mich nach dem gleichen Problem an.

Da kann man nur hoffen, dass es nur eine API-Änderung ist. Allerdings wie soll ich denn von meiner App wissen, welches Maps installiert ist, um es dann so oder so aufzurufen?

Edit:
Jetzt kurz nachdem ich verzweifelt hier gepostet hatte, habe ich doch durch googlen einen Beitrag dazu gefunden:

http://stackoverflow.com/questions/...oesnt-display-a-mark-that-i-create-in-android

Und zwar erlaubt nun Google nicht mehr dem Punkt ein Label zu geben. Früher war sowas erlaubt:

Uri.parse("geo:0,0?q="+lat+","+lng+" (Hier)")

jetzt geht es wohl nur noch wenn man keinen Text mehr angibt. Also so:

Uri.parse("geo:0,0?q="+lat+","+lng)

Ich habs noch nicht selbst ausprobiert, aber ich geht davon aus dass die Kollegen das korrekt rausgefunden haben.


Edit2 (10.8.):

Konnte es jetzt auch durch Änderung der App bestätigen. Nun zeigt die Maps App die Position an. Nun ohne eigenes Label. Stattdessen wird der Strassennamen der am nächstgelegenen Strasse anzeigt.
 
Zuletzt bearbeitet:

Ähnliche Themen

L
Antworten
2
Aufrufe
476
Lexub
L
Zurück
Oben Unten