Google Maps Intents für Android

Die Google Maps App für Android bietet mehrere Intents, mit denen Sie Google Maps im Anzeige-, Such-, Navigations- oder Street View-Modus aufrufen können. Informationen zum Einbetten einer Karte in Ihrer App finden Sie im Startleitfaden für die Google Maps Android API.

Übersicht

Mit Intents können Sie eine Aktivität in einer anderen App starten. Dazu beschreiben Sie in einem Intent-Objekt eine einfache Aktion, die ausgeführt werden soll, z. B. „Karte einblenden“ oder „Wegbeschreibung zum Flughafen anzeigen“. Die Google Maps App für Android unterstützt verschiedene Intents. So können Sie die Google Maps App aufrufen und eine von vier Aktionen ausführen:

  1. Anzeigen einer Karte für einen angegebenen Standort mit einer bestimmten Zoomstufe
  2. Suchen und Anzeigen von Orten auf einer Karte
  3. Anfordern einer Route von einem Ort zu einem anderen. Es können drei Verkehrsmittel ausgewählt werden: Auto, Fahrrad und Fußweg.
  4. Panoramabilder in Google Street View anzeigen

Auf dieser Seite werden die Intents beschrieben, die Sie mit der Google Maps App für Android verwenden können. Weitere Informationen zu Intents und Intent-Filtern oder Intents, die für die Android-Plattform üblich sind, finden Sie in der Android-Entwicklerdokumentation.

Intent-Anfragen

Wenn Sie Google Maps mit einer Intent starten möchten, müssen Sie zuerst ein Intent-Objekt erstellen und die Aktion, den URI und das Paket angeben.

  • Aktion: Alle Google Maps-Intents werden als Ansichtsaktion aufgerufen: ACTION_VIEW.
  • URI: Google Maps-Intents verwenden URL-codierte Daten, die eine gewünschte Aktion und einige Daten angeben, mit denen die Aktion ausgeführt werden soll.
  • Paket: Wenn Sie setPackage("com.google.android.apps.maps") aufrufen, wird der Intent von der Google Maps App für Android verarbeitet. Wenn das Paket nicht festgelegt ist, ermittelt das System, welche Apps die Intent verarbeiten können. Wenn mehrere Apps verfügbar sind, wird der Nutzer möglicherweise gefragt, welche App er verwenden möchte.

Nachdem Sie die Intent erstellt haben, können Sie das System auf verschiedene Arten auffordern, die zugehörige App zu starten. Eine gängige Methode ist die Weitergabe der Intent an die Methode startActivity(). Das System startet die erforderliche App – in diesem Fall Google Maps – und die entsprechende Activity.

Java

// Create a Uri from an intent string. Use the result to create an Intent.
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988");

// Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");

// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);

Kotlin

// Create a Uri from an intent string. Use the result to create an Intent.
val gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988")

// Create an Intent from gmmIntentUri. Set the action to ACTION_VIEW
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps")

// Attempt to start an activity that can handle the Intent
startActivity(mapIntent)

Wenn das System keine App finden kann, die auf die Absicht reagieren kann, stürzt Ihre App möglicherweise ab. Daher sollten Sie zuerst prüfen, ob eine Empfängeranwendung installiert ist, bevor Sie einem Nutzer einen dieser Intents präsentieren.

Wenn Sie prüfen möchten, ob eine App verfügbar ist, um die Intent zu empfangen, rufen Sie resolveActivity() auf Ihrem Intent-Objekt auf. Wenn das Ergebnis nicht null ist, gibt es mindestens eine App, die den Intent verarbeiten kann. In diesem Fall kann startActivity() sicher aufgerufen werden. Wenn das Ergebnis null ist, sollten Sie den Intent nicht verwenden und nach Möglichkeit die Funktion deaktivieren, die den Intent aufruft.

Java

if (mapIntent.resolveActivity(getPackageManager()) != null) {
  ...
}

Kotlin

mapIntent.resolveActivity(packageManager)?.let {
  ...
}

Um eine Karte von San Francisco anzuzeigen, können Sie beispielsweise folgenden Code verwenden.

Java

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
  startActivity(mapIntent);
}

Kotlin

val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
mapIntent.resolveActivity(packageManager)?.let {
  startActivity(mapIntent)
}

URL-codierte Abfragestrings

Alle Zeichenfolgen, die an die Google Maps-Intents weitergegeben werden, müssen URI-codiert werden. Beispiel: Aus dem String „1st & Pike, Seattle“ sollte 1st%20%26%20Pike%2C%20Seattle werden. Leerzeichen in der Zeichenfolge können mit „%20“ codiert oder durch das Pluszeichen (+) ersetzt werden.

Sie können die Methode android.net.Uri parse() verwenden, um Ihre Strings zu codieren. Beispiel:

Java

Uri gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"));

Kotlin

val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode("1st & Pike, Seattle"))

Eine Karte anzeigen

Mit der geo:-Intention können Sie eine Karte an einem bestimmten Ort und mit einer bestimmten Zoomstufe anzeigen.

geo:latitude,longitude?z=zoom

Parameter

  • Mit latitude und longitude legen Sie den Mittelpunkt der Karte fest.
  • Mit z wird optional die anfängliche Zoomstufe der Karte festgelegt. Zulässige Werte reichen von 0 (die ganze Welt) bis 21 (einzelne Gebäude). Die Obergrenze kann je nach den am ausgewählten Standort verfügbaren Kartendaten variieren.

Beispiele

Java

// Creates an Intent that will load a map of San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Creates an Intent that will load a map of San Francisco
val gmmIntentUri = Uri.parse("geo:37.7749,-122.4194")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Nach einem Ort suchen

Mithilfe dieses Intents können Sie Suchabfragen innerhalb eines bestimmten Viewports anzeigen. Wenn die Suchanfrage nur ein Ergebnis hat, können Sie mit dieser Intent-Art eine Markierung an einem bestimmten Ort oder einer bestimmten Adresse anzeigen lassen, z. B. an einem Wahrzeichen, einem Unternehmen, einer geografischen Besonderheit oder einer Stadt.

geo:latitude,longitude?q=query
geo:0,0?q=my+street+address
geo:0,0?q=latitude,longitude(label)

Parameter

Zusätzlich zu den Parametern, die zum Darstellen einer Karte verwendet werden, werden in der Google Suche die folgenden Parameter unterstützt:

  • Mit q werden die Orte definiert, die auf der Karte hervorgehoben werden sollen. Der Parameter q ist für alle Suchanfragen erforderlich. Als Standort kann entweder ein Ortsname oder eine Adresse angegeben werden. Der String muss URL-codiert sein. Eine Adresse wie „Rathaus, Berlin, Deutschland“ sollte also in „Rathaus,Berlin,Deutschland“ umgewandelt werden.

  • Mit label können Sie an einem auf der Karte markierten Ort ein benutzerdefiniertes Label setzen. label muss als String angegeben werden.

Wenn Sie einen allgemeinen Suchbegriff übergeben, versucht Google Maps, einen Standort in der Nähe der von Ihnen angegebenen Koordinaten zu finden, der Ihren Kriterien entspricht. Wenn kein Standort angegeben ist, versucht Google Maps, Einträge in der Nähe zu finden. Beispiel:

Java

// Search for restaurants nearby
Uri gmmIntentUri = Uri.parse("geo:0,0?q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

// Search for restaurants in San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Search for restaurants nearby
val gmmIntentUri = Uri.parse("geo:0,0?q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

// Search for restaurants in San Francisco
val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4194?q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Suche nach Restaurants in San Francisco

Sie können die Suchergebnisse weiter beeinflussen, indem Sie zusammen mit dem Abfragestring einen Zoomparameter angeben. Im folgenden Beispiel werden bei einem Zoom von 10 Restaurants auf Stadtebene statt in der Nähe gesucht.

Java

Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4194?z=10&q=restaurants")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Bei der Suche nach einer Adresse wird eine Pinnadel an diesem Standort angezeigt.

Java

Uri gmmIntentUri = Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("geo:0,0?q=1600 Amphitheatre Parkway, Mountain+View, California")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Im obigen Beispiel wird eine Lat/Lng von 0,0 festgelegt, aber eine Adresse als Abfragestring übergeben. Bei der Suche nach einem ganz bestimmten Ort sind der Breiten- und der Längengrad nicht erforderlich. Wenn Sie die genaue Adresse jedoch nicht kennen, können Sie versuchen, die Ergebnisse der Suche durch Angabe einer Koordinate zu beeinflussen. Wenn Sie beispielsweise nach „Main Street“ suchen, werden zu viele Ergebnisse zurückgegeben.

Java

// Searching for 'Main Street' will return too many results
Uri gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street");

Kotlin

// Searching for 'Main Street' will return too many results
val gmmIntentUri = Uri.parse("geo:0,0?q=101+main+street")

Wenn Sie dem Intent-URI „lat/lng“ hinzufügen, werden die Ergebnisse auf einen bestimmten Bereich ausgerichtet:

Java

// Searches for 'Main Street' near San Francisco
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194?q=101+main+street");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Searches for 'Main Street' near San Francisco
val gmmIntentUri =
  Uri.parse("geo:37.7749,-122.4194?q=101+main+street")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Wenn Sie wissen, dass Ihre Suche einen einzelnen Wert zurückgibt, können Sie ein optionales Label übergeben. Labels müssen als String angegeben werden und werden unter der Markierung auf der Karte angezeigt. Labels sind nur verfügbar, wenn q als Koordinate (Breiten-/Längengrad) angegeben ist.

Java

// Display a label at the location of Google's Sydney office
Uri gmmIntentUri = Uri.parse("geo:0,0?q=Google+Sydney@-33.8666,151.1957");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Display a label at the location of Google's Sydney office
val gmmIntentUri =
  Uri.parse("geo:0,0?q=-33.8666,151.1957(Google+Sydney)")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Als Alternative zu einer Adresse oder einem Breiten-/Längengrad können Sie an einem bekannten Ort einen Markierungs-Pin mit einem Plus Code anzeigen.

Java

// Display the location of Google, San Francisco using a global plus code.
Uri gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX");
// Equivalently, define the same location using a local plus code
gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco");
// Construct and use the Intent as in the examples above

Kotlin

// Display the location of Google, San Francisco using a global plus code.
var gmmIntentUri = Uri.parse("http://plus.codes/849VQJQ5+XX")
// Equivalently, define the same location using a local plus code
gmmIntentUri = Uri.parse("https://plus.codes/QJQ5+XX,San%20Francisco")
// Construct and use the Intent as in the examples above

Detaillierte Routenführung starten

Mit dieser Intent-Aktion wird die Google Maps-Navigation mit einer detaillierten Routenbeschreibung zur angegebenen Adresse oder Koordinate gestartet. Die Wegbeschreibungen beginnen immer am aktuellen Standort des Nutzers.

google.navigation:q=a+street+address
google.navigation:q=latitude,longitude

Parameter

  • q: Legt den Endpunkt für Navigationssuchen fest. Dieser Wert kann Breiten- und Längengrade oder eine in Abfrageform formatierte Adresse sein. Wenn es sich um einen Abfragestring handelt, der mehr als ein Ergebnis zurückgibt, wird das erste Ergebnis ausgewählt.

  • mode legt die Mobilitätsform fest. Der Modus ist optional und kann auf eine der folgenden Optionen festgelegt werden:

    • d für Fahrten (Standard)
    • b für Radfahren
    • l für Motorrad
    • w zu Fuß
  • Mit avoid werden Elemente festgelegt, die die Route möglichst vermeiden sollte. „Vermeiden“ ist optional und kann auf eine oder mehrere der folgenden Optionen festgelegt werden:

    • t für Mautgebühren
    • h für Autobahnen
    • f für Fähren

Beispiele

Mit der folgenden Intent wird eine detaillierte Wegbeschreibung zum Taronga Zoo in Sydney, Australien, angefordert:

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Wegbeschreibung zum Taronga Zoo

Wenn Sie keine Maut bezahlen oder keine Fähre nutzen möchten, können Sie eine Route anfordern, bei der diese Optionen vermieden werden.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Wenn Sie lieber etwas Sport treiben möchten, können Sie stattdessen eine Fahrradroute anfordern.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&mode=b")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Wenn Sie lieber ein motorisiertes Zweirad nutzen möchten, können Sie angeben, dass die Routenbeschreibung schmale Straßen und Wege enthalten soll, die für Autos nicht befahrbar sind. Der folgende intent gibt eine Route in Indien zurück.

Java

Uri gmmIntentUri = Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

val gmmIntentUri =
  Uri.parse("google.navigation:q=Connaught+Place,+New+Delhi,Delhi&mode=l")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Street View-Panorama anzeigen

Verwenden Sie die google.streetview-Intent, um Google Street View zu starten. Google Street View bietet Panoramaansichten von ausgewählten Orten in seinem Abdeckungsbereich. Außerdem sind von Nutzern erstellte Fotosphären und besondere Street View-Sammlungen verfügbar.

google.streetview:cbll=latitude,longitude&cbp=0,bearing,0,zoom,tilt
google.streetview:panoid=id&cbp=0,bearing,0,zoom,tilt

Parameter

Alle google.streetview-URIs müssen entweder einen cbll- oder einen panoid-Parameter enthalten.

  • Für cbll werden ein Breiten- und ein Längengrad als kommagetrennte Werte (46.414382,10.013988) akzeptiert. Die App zeigt das Panorama an, das dem angegebenen Ort am nächsten ist. Da Street View-Bilder regelmäßig aktualisiert werden und Fotos jedes Mal von leicht unterschiedlichen Positionen aufgenommen werden können, ist es möglich, dass Ihr Standort bei der Aktualisierung der Bilder zu einem anderen Panoramabild wechselt.

  • panoid ist eine bestimmte Panorama-ID. In Google Maps wird die Panorama-ID verwendet, wenn sowohl eine panoid als auch eine cbll angegeben ist. Panorama-IDs sind für eine Android-App über das StreetViewPanoramaLocation-Objekt verfügbar.

  • cbp ist ein optionaler Parameter, mit dem die anfängliche Ausrichtung der Kamera angepasst wird. Der Parameter cbp nimmt fünf durch Kommas getrennte Werte an, die alle optional sind. Die wichtigsten Werte sind der zweite, vierte und fünfte, mit denen Ausrichtung, Zoom und Neigung festgelegt werden. Der erste und dritte Wert werden nicht unterstützt und sollten auf 0 festgelegt werden.

    • bearing: Gibt die Kompassrichtung der Kamera in Grad im Uhrzeigersinn vom Norden an. Der geografische Norden ist 0, Osten 90, Süden 180 und Westen 270. Werte, die an „bearing“ übergeben werden, werden umgeschlagen. Das bedeutet, dass 0°, 360° und 720° in dieselbe Richtung zeigen. Die Peilung ist der zweite von fünf durch Kommas getrennten Werten.
    • zoom: Hiermit wird die Zoomstufe der Kamera festgelegt. Die Standardzoomstufe ist auf 0 festgelegt. Bei einem Zoom von 1 wird die Vergrößerung verdoppelt. Der Zoom ist auf den Bereich zwischen 0 und der maximalen Zoomstufe für das aktuelle Panorama beschränkt. Das bedeutet, dass alle Werte, die außerhalb dieses Bereichs liegen, auf den nächstgelegenen Extremwert innerhalb des Bereichs gesetzt werden. Ein Wert von -1 wird beispielsweise auf 0 gesetzt. „Zoom“ ist der vierte von fünf kommagetrennten Werten.
    • tilt: Gibt den Auf- oder Abwärtswinkel der Kamera an. Der Wertebereich geht damit von ‑90 über 0 bis 90, wobei 90 senkrecht nach unten, 0 zentriert auf den Horizont und ‑90 senkrecht nach oben bedeutet.

Beispiele

Nachfolgend sind einige Beispiele für die Verwendung des Street View-Intents aufgeführt.

Java

// Displays an image of the Swiss Alps
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=46.414382,10.013988");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

// Uses a PanoID to show an image from Maroubra beach in Sydney, Australia
Uri gmmIntentUri = Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

// Opens Street View between two Pyramids in Giza. The values passed to the
// cbp parameter will angle the camera slightly up, and towards the east.
Uri gmmIntentUri = Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Kotlin

// Displays an image of the Swiss Alps
val gmmIntentUri =
  Uri.parse("google.streetview:cbll=46.414382,10.013988")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

// Uses a PanoID to show an image from Maroubra beach in Sydney, Australia
val gmmIntentUri =
  Uri.parse("google.streetview:panoid=Iaa2JyfIggYAAAQfCZU9KQ")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

// Opens Street View between two Pyramids in Giza. The values passed to the
// cbp parameter will angle the camera slightly up, and towards the east.
val gmmIntentUri =
  Uri.parse("google.streetview:cbll=29.9774614,31.1329645&cbp=0,30,0,0,-15")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

Pyramiden in Street View