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 starten können. Informationen zum Einbetten einer Karte in Ihrer App finden Sie im Startleitfaden für die Google Maps Android API.

Überblick

Mit Intents können Sie eine Aktivität in einer anderen App starten. Dazu beschreiben Sie in einem Intent-Objekt eine einfache Aktion, die Sie ausführen möchten, z. B. „Karte anzeigen“ oder „Wegbeschreibung zum Flughafen anzeigen“. Die Google Maps App für Android unterstützt verschiedene Intents. Sie können sie also starten 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. Wegbeschreibungen können für drei Mobilitätsformen zurückgegeben werden: Auto, zu Fuß oder mit dem Fahrrad.
  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 bzw. zu allgemeinen Intents für die Android-Plattform finden Sie in der Android-Entwicklerdokumentation.

Intent-Anfragen

Um Google Maps mit einem Intent zu starten, müssen Sie zuerst ein Intent-Objekt erstellen und seine Aktion, seinen URI und sein Paket angeben.

  • Aktion: Alle Google Maps-Intents werden als Aufrufaktion aufgerufen: ACTION_VIEW.
  • URI: Google Maps-Intents verwenden URL-codiert, um eine gewünschte Aktion sowie einige Daten anzugeben, die zur Ausführung der Aktion verwendet werden.
  • Paket: Wenn Sie setPackage("com.google.android.apps.maps") aufrufen, wird der Intent von der Google Maps App for Android verarbeitet. Wenn das Paket nicht konfiguriert ist, ermittelt das System, welche Apps das Intent verarbeiten können. Wenn mehrere Apps verfügbar sind, wird der Nutzer möglicherweise gefragt, welche App er verwenden möchte.

Nachdem du Intent erstellt hast, kannst du auf verschiedene Arten anfordern, dass das System die zugehörige Anwendung startet. Eine gängige Methode besteht darin, Intent an die Methode startActivity() zu übergeben. Das System startet die erforderliche App – in diesem Fall Google Maps – und startet das 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 eine App, die auf den Intent reagieren kann, nicht erkennen kann, stürzt Ihre App möglicherweise ab. Aus diesem Grund sollten Sie zuerst prüfen, ob die empfangende Anwendung installiert ist, bevor Sie einem Nutzer einen dieser Intents präsentieren.

Wenn Sie prüfen möchten, ob eine Anwendung für den Empfang des Intents verfügbar ist, rufen Sie resolveActivity() für das Intent-Objekt auf. Wenn das Ergebnis nicht null ist, gibt es mindestens eine Anwendung, die den Intent verarbeiten kann. Sie können dann startActivity() aufrufen. Wenn das Ergebnis null lautet, 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. Der String „1st & Pike, Seattle“ sollte beispielsweise zu 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

Verwenden Sie den Intent geo:, um eine Karte an einem bestimmten Standort und mit einer bestimmten Zoomstufe anzuzeigen.

geo:latitude,longitude?z=zoom

Parameter

  • Mit latitude und longitude wird der Mittelpunkt der Karte festgelegt.
  • Mit z kann optional die anfängliche Zoomstufe der Karte festgelegt werden. Die zulässigen Werte reichen von 0 (die ganze Welt) bis 21 (einzelne Gebäude). Der obere Grenzwert kann variieren, je nachdem, welche Kartendaten am ausgewählten Standort verfügbar sind.

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 Abfrage nur ein einziges Ergebnis liefert, können Sie mit diesem Intent eine Markierung für einen bestimmten Ort oder eine bestimmte Adresse anzeigen lassen, z. B. eine Sehenswürdigkeit, ein Unternehmen, ein geografisches Element oder eine 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 Anzeigen einer Karte verwendet werden, werden in der Google Suche die folgenden Parameter unterstützt:

  • q definiert den oder die Orte, die auf der Karte markiert werden sollen. Der Parameter q ist für alle Suchanfragen erforderlich. Ein Standort kann als Ortsname oder Adresse angegeben werden. Der String muss URL-codiert sein. Eine Adresse wie „City Hall, New York, NY“ sollte also in „City+Hall,New+York,NY“ umgewandelt werden.

  • Mit label können Sie für einen auf der Karte identifizierten Ort ein benutzerdefiniertes Label festlegen. Die label muss als String angegeben werden.

Wenn Sie einen allgemeinen Suchbegriff übergeben, wird in Google Maps nach einem Ort in der Nähe der von Ihnen angegebenen Breiten- und Längengrade gesucht, der Ihren Kriterien entspricht. Wenn kein Standort angegeben ist, sucht Google Maps nach Einträgen in der Nähe. 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)

Nach Restaurants in San Francisco suchen

Sie können die Suchergebnisse weiter gewichten, indem Sie einen Zoomparameter zusammen mit dem Abfragestring angeben. Im Beispiel unten wird mit der Zoomstufe 10 versucht, Restaurants auf Stadtebene und nicht in der Nähe zu finden.

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 der Breiten- und Längengrad auf 0 (0) festgelegt, aber eine Adresse wird als Abfragestring übergeben. Wenn Sie nach einem ganz bestimmten Ort suchen, sind Breiten- und Längengrad nicht erforderlich. Wenn Sie die genaue Adresse nicht kennen, können Sie versuchen, die Suchergebnisse durch Angabe einer Koordinate zu beeinflussen. Wenn Sie beispielsweise eine Adresssuche nach „Hauptstraße“ durchführen, 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 einen Wert für „lat/lng“ hinzufügen, werden die Ergebnisse nach einem bestimmten Bereich gewichtet:

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 Kartenmarkierung angezeigt. Labels sind nur verfügbar, wenn q als Breiten- und Längengrad-Koordinate 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 mit einem Plus Code eine Markierung an einem bekannten Standort 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 wird gestartet

Verwenden Sie diesen Intent, um die Google Maps-Navigation mit einer detaillierten Routenführung zur angegebenen Adresse oder Koordinate zu starten. Die Wegbeschreibungen basieren immer auf dem 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ängengradkoordinaten oder eine Adresse im Abfrageformat sein. Wenn es sich um einen Abfragestring handelt, der mehr als ein Ergebnis zurückgibt, wird das erste Ergebnis ausgewählt.

  • mode legt das Verkehrsmittel fest. Der Modus ist optional und kann auf einen der folgenden Werte festgelegt werden:

    • d für Fahrten mit dem Auto (Standardeinstellung)
    • b mit dem Fahrrad
    • l für Motorrad
    • w zu Fuß
  • avoid legt Elemente fest, die die Route vermeiden sollte. „Vermeiden“ ist optional und kann auf einen oder mehrere der folgenden Werte festgelegt werden:

    • t für Mautstraßen
    • h für Autobahnen
    • f für Fähren

Beispiele

Mit dem folgenden Intent wird eine detaillierte Routenführung 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)

Route zum Taronga Zoo

Wenn Sie keine Mautgebühren bezahlen oder keine Fähren nutzen möchten, können Sie Routenanfragen anfordern, bei denen solche Probleme 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 sich etwas bewegen 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 mit einem motorisierten Motorrad fahren möchten, können Sie festlegen, dass die Route schmale Straßen und Wege umfasst, die für Autos nicht zugänglich sind. Die 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 den Intent google.streetview, um Google Street View zu starten. Google Street View bietet Panoramaansichten von bestimmten Orten im gesamten Abdeckungsbereich. Außerdem gibt es von Nutzern bereitgestellte 360°-Fotos und ausgewählte Street View-Sammlungen.

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.

  • In cbll können Breiten- und Längengrad als kommagetrennte Werte angegeben werden (46.414382,10.013988). In der App wird das Panorama angezeigt, das in der Nähe dieses Standorts aufgenommen wurde. Street View-Bilder werden regelmäßig aktualisiert und Fotos können jedes Mal aus leicht unterschiedlichen Positionen aufgenommen werden. Daher ist es möglich, dass an Ihrem Standort ein anderes Panorama aufgenommen wird, wenn Bilder aktualisiert werden.

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

  • cbp ist ein optionaler Parameter, mit dem die anfängliche Ausrichtung der Kamera angepasst wird. Für den Parameter cbp werden fünf kommagetrennte Werte angegeben, die alle optional sind. Die wichtigsten Werte sind der zweite, vierte und fünfte Wert, der jeweils die Lage, den Zoom und die Neigung festlegt. 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 ausgehend von Norden an. Der geografische Norden ist 0, Osten 90, Süden 180 und Westen 270. An die Peilung übergebene Werte werden umgebrochen, d. h. 0°, 360° und 720° verweisen alle in dieselbe Richtung. Die Lage ist als zweiter von fünf kommagetrennten Werten definiert.
    • zoom: Hiermit wird die Zoomstufe der Kamera festgelegt. Die Standard-Zoomstufe ist auf „0“ eingestellt. Ein Zoom von 1 würde die Vergrößerung verdoppeln. Der Zoom ist auf einen Wert zwischen 0 und der maximalen Zoomstufe für das aktuelle Panorama festgelegt. Dies bedeutet, dass jeder Wert, der außerhalb dieses Bereichs liegt, auf das nächste Extremwert innerhalb des Bereichs gesetzt wird. Ein Wert von -1 wird z. B. auf 0 gesetzt. Zoom ist der vierte von fünf durch Kommas getrennten Werten.
    • tilt: gibt den Winkel der Kamera nach oben oder unten an. Der Bereich reicht von -90 über 0 bis 90, wobei 90 senkrecht nach unten, 0 zentriert am Horizont und -90 senkrecht nach oben gerichtet ist.

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