Places Library

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Plattform auswählen: Android iOS JavaScript Webdienst

Übersicht

Mit den Funktionen der Places Library, Maps JavaScript API können Sie in Ihrer Anwendung nach Orten suchen, die in dieser API als Einrichtungen, geografische Standorte oder POIs definiert sind und sich innerhalb eines festgelegten Gebiets befinden, z. B. innerhalb der Grenzen einer Karte oder um einen festen Punkt.

Die Places API bietet eine Funktion zur automatischen Vervollständigung, mit der Sie Ihren Anwendungen das automatische Suchverhalten des Google Maps-Suchfelds mitteilen können. Wenn ein Nutzer beginnt, eine Adresse einzugeben, wird durch die automatische Vervollständigung der Rest ausgefüllt. Weitere Informationen finden Sie in der Dokumentation zur automatischen Vervollständigung.

Erste Schritte

Wenn du mit der Maps JavaScript API oder JavaScript nicht vertraut bist, empfehlen wir dir, dich mit JavaScript und dem Artikel API-Schlüssel anfordern vertraut zu machen.

APIs aktivieren

Bevor Sie die Places Library in der Maps JavaScript API verwenden, muss die Places API in der Google Cloud Console in dem Projekt aktiviert sein, das Sie für die Maps JavaScript API eingerichtet haben.

So zeigen Sie die Liste der aktivierten APIs an:

  1. Rufen Sie die Google Cloud Console auf.
  2. Klicken Sie auf die Schaltfläche Projekt auswählen, wählen Sie das Projekt aus, das Sie für die Maps JavaScript API eingerichtet haben, und klicken Sie dann auf Öffnen.
  3. Suchen Sie im Dashboard in der Liste der APIs nach Places API.
  4. Wenn Sie die Places API in der Liste sehen, ist sie bereits aktiviert. Wenn die API nicht aufgeführt ist, aktivieren Sie sie:
    1. Wähle oben auf der Seite APIS UND DIENSTE AKTIVIEREN aus, um den Tab Bibliothek aufzurufen. Alternativ kannst du im Menü auf der linken Seite Mediathek auswählen.
    2. Suchen Sie nach der Places API und wählen Sie sie in der Ergebnisliste aus.
    3. Wähle AKTIVIEREN aus. Wenn der Vorgang abgeschlossen ist, wird Places API in der Liste der APIs auf dem Dashboard angezeigt.

Laden der Bibliothek

Der Places-Dienst ist eine eigenständige Bibliothek, die unabhängig vom Code der Maps JavaScript API ist. Wenn Sie die in dieser Bibliothek enthaltenen Funktionen verwenden möchten, müssen Sie sie zuerst mit dem Parameter libraries in der Bootstrap-URL der Maps API laden:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places&callback=initMap">
</script>

Weitere Informationen findest du unter Mediatheken.

Places API der API-Einschränkungensliste des API-Schlüssels hinzufügen

Wenn Sie API-Einschränkungen auf Ihre Schlüssel anwenden, wird die Verwendung des API-Schlüssels auf eine oder mehrere APIs oder SDKs beschränkt. Anfragen an eine API oder ein SDK, die mit dem API-Schlüssel verknüpft sind, werden verarbeitet. Anfragen an eine API oder ein SDK, die nicht mit dem API-Schlüssel verknüpft sind, schlagen fehl. So schränken Sie einen API-Schlüssel für die Verwendung mit der Places Library, Maps JavaScript API ein:
  1. Rufen Sie die Google Cloud Console auf.
  2. Klicke auf das Drop-down-Menü für Projekte und wähle das Projekt aus, das den API-Schlüssel enthält, den du sichern möchtest.
  3. Klicke auf die Menüschaltfläche  und wähle Google Maps Platform > Anmeldedaten aus.
  4. Klicke auf der Seite Anmeldedaten auf den Namen des API-Schlüssels, den du sichern möchtest.
  5. Legen Sie auf der Seite API-Schlüssel einschränken und umbenennen die Einschränkungen fest:
    • API-Einschränkungen
      • Wähle Schlüssel einschränken aus.
      • Klicken Sie auf APIs auswählen und wählen Sie dann sowohl Maps JavaScript API als auch Places API aus.
        Wenn eine der APIs nicht aufgeführt ist, musst du sie aktivieren.
  6. Klicken Sie auf SPEICHERN.

Nutzungsbeschränkungen und Richtlinien

Kontingente

Die Places Library, JavaScript API verwendet ein Nutzungskontingent für die Places API, wie in der Dokumentation zur Nutzungslimits für die Places API beschrieben. Die Ratenbegrenzung für Abfragen pro Sekunde wird pro Nutzersitzung angewendet, unabhängig davon, wie viele Nutzer dasselbe Projekt verwenden.*

Hinweis: Beim ersten Laden der API wird Ihnen ein anfängliches Kontingent von Anfragen zugewiesen. Wenn Sie dieses Kontingent verwenden, erzwingt die API Ratenbegrenzungen für zusätzliche Anfragen pro Sekunde. Wenn innerhalb eines bestimmten Zeitraums zu viele Anfragen gestellt werden, gibt die API den Antwortcode OVER_QUERY_LIMIT zurück. Das Ratenlimit pro Sitzung verhindert die Verwendung von clientseitigen Diensten für Batchanfragen. Verwende für Batchanfragen unsere Web Service APIs.

Richtlinien

Die Nutzung der Places Library, Maps JavaScript API muss den Richtlinien für die Places API entsprechen.

Ortssuchen

Mit dem Places-Dienst können Sie folgende Arten von Suchanfragen ausführen:

  • Find Place from Query gibt einen Ort anhand einer Textabfrage zurück, z. B. dem Namen oder der Adresse.
  • Find Place from Phone Number gibt einen Ort anhand einer Telefonnummer zurück.
  • In der Nähe suchen gibt eine Liste von Orten in der Nähe zurück, basierend auf dem Standort eines Nutzers.
  • Text Search gibt eine Liste von Orten in der Nähe zurück, basierend auf einem Suchstring, z. B. &Pizza.
  • Place Details-Anfragen geben ausführlichere Informationen zu einem bestimmten Ort zurück, einschließlich Nutzerrezensionen.

Die zurückgegebenen Informationen können Einrichtungen wie Restaurants, Geschäfte und Büros sowie Ergebnisse, die Adressen, politische Gebiete wie Städte und andere POIs angeben, enthalten.

„Find Place“-Anfragen

Mit einer „Find Place“-Anfrage können Sie nach Text oder Telefonnummer suchen. Es gibt zwei Arten von „Find Place“-Anfragen:

Ort über Suchanfrage finden

„Find Place from Query“ sucht nach einer Texteingabe und gibt einen Ort zurück. Die Eingabe kann jede Art von Ortsdaten sein, z. B. der Name oder die Adresse eines Unternehmens. Um eine „Find Place from Query“-Anfrage zu stellen, rufen Sie die Methode PlaceService von findPlaceFromQuery() auf. Hierfür werden die folgenden Parameter verwendet:

  • query (erforderlich): Der Textstring, in dem gesucht werden soll, z. B. "restaurant" oder "123 Main Street". Dies muss ein Ortsname, eine Adresse oder eine Kategorie von Einrichtungen sein. Alle anderen Arten von Eingaben können Fehler verursachen und sind keine Garantie dafür, dass keine gültigen Ergebnisse zurückgegeben werden. Die Places API gibt mögliche Übereinstimmungen basierend auf diesem String zurück und sortiert die Ergebnisse nach ihrer wahrgenommenen Relevanz.
  • fields (erforderlich): Ein oder mehrere Felder zur Angabe der Typen von Ortsdaten, die zurückgegeben werden sollen.
  • locationBias (optional) Koordinaten, in denen das zu durchsuchende Gebiet definiert ist. Dies kann einer der folgenden Werte sein:

Außerdem musst du eine Callback-Methode an findPlaceFromQuery() übergeben, um das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus-Antwort zu verarbeiten.

Das folgende Beispiel zeigt einen Aufruf von findPlaceFromQuery(), der nach „Museum of Contemporary Art Australia“ sucht und die Felder name und geometry enthält.

var map;
var service;
var infowindow;

function initMap() {
  var sydney = new google.maps.LatLng(-33.867, 151.195);

  infowindow = new google.maps.InfoWindow();

  map = new google.maps.Map(
      document.getElementById('map'), {center: sydney, zoom: 15});

  var request = {
    query: 'Museum of Contemporary Art Australia',
    fields: ['name', 'geometry'],
  };

  var service = new google.maps.places.PlacesService(map);

  service.findPlaceFromQuery(request, function(results, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
      map.setCenter(results[0].geometry.location);
    }
  });
}
Beispiel ansehen

Ort über Telefonnummer finden

Bei „Ort über Telefonnummer finden“ wird eine Telefonnummer verwendet und ein Ort zurückgegeben. Um eine „Find Place from Phone“-Anfrage zu stellen, rufen Sie die Methode PlaceService findPlaceFromPhoneNumber() auf. Hierfür werden die folgenden Parameter verwendet:

  • phoneNumber (erforderlich): Eine Telefonnummer im Format E.164.
  • fields (erforderlich): Ein oder mehrere Felder zur Angabe der Typen von Ortsdaten, die zurückgegeben werden sollen.
  • locationBias (optional): Koordinaten, die den zu durchsuchenden Bereich definieren. Es gibt folgende Möglichkeiten:
    • Ein Satz von Breiten-/Längenkoordinaten, angegeben als LatLngLiteral- oder LatLng-Objekt
    • Rechteckige Grenzen (vier Längen-/Breitengradpunkte oder ein LatLngBounds-Objekt)
    • Radius (in Metern) mittig auf Längen- und Breitengrad

Außerdem musst du eine Callback-Methode an findPlaceFromPhoneNumber() übergeben, um das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus-Antwort zu verarbeiten.

Felder (Find Place-Methoden)

Verwenden Sie den Parameter fields, um ein Array von Ortsdatentypen anzugeben, die zurückgegeben werden sollen. Beispiel: fields: ['formatted_address', 'opening_hours', 'geometry'] Verwenden Sie einen Punkt, wenn Sie zusammengesetzte Werte angeben. zum Beispiel opening_hours.weekday_text.

Die Felder entsprechen Place Search-Ergebnissen und sind in drei Abrechnungskategorien unterteilt: Basic, Contact und Atmosphere. Basisfelder werden zum Basispreis abgerechnet und es fallen keine zusätzlichen Kosten an. Die Felder „Kontakt“ und „Atmosphäre“ werden zu einem höheren Preis abgerechnet. Weitere Informationen finden Sie in der Preisübersicht. Attributionen (html_attributions) werden immer bei jedem Aufruf zurückgegeben, unabhängig davon, ob das Feld angefordert wurde.

Basic

Die Kategorie „Einfach“ enthält die folgenden Felder:
business_status, formatted_address, geometry, icon,icon_mask_base_uri, icon_background_color, name, permanently_closed (verworfen), photos, place_id, plus_code, types

Kontakt

Die Kategorie „Kontakt“ enthält das folgende Feld: opening_hours
(eingestellt in der Places Library, Maps JavaScript API). Verwenden Sie eine Place Details-Anfrage, um die opening_hours-Ergebnisse zu erhalten.

Atmosphäre

Die Kategorie „Atmosphere“ umfasst die folgenden Felder: price_level, rating, user_ratings_total

Die Methoden findPlaceFromQuery() und findPlaceFromPhoneNumber() verwenden jeweils dieselben Felder und können dieselben Felder in ihren jeweiligen Antworten zurückgeben.

Standortgewichtung festlegen (Find Place-Methoden)

Verwenden Sie den Parameter locationBias, um „Find Place“-Ergebnisse in einem bestimmten Gebiet zu bevorzugen. Sie können locationBias auf folgende Arten festlegen:

Verzerrung der Ergebnisse auf einen bestimmten Bereich:

locationBias: {lat: 37.402105, lng: -122.081974}

Definieren Sie einen rechteckigen Bereich für die Suche:

locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}

Sie können auch einen LatLngBounds-Parameter verwenden.

Legen Sie einen Radius für die Suche in Metern fest. Der Mittelpunkt ist auf einen bestimmten Bereich festgelegt:

locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}

Nearby Search-Anforderungen

Mit „Nearby Search“ können Sie nach Orten in einem bestimmten Gebiet anhand eines Suchbegriffs oder Typs suchen. Eine Nearby Search-Anfrage muss immer einen Standort enthalten, der auf zwei Arten angegeben werden kann:

  • LatLngBounds
  • eine kreisförmige Fläche, die als Kombination der Property location definiert wird. Dabei wird der Mittelpunkt des Kreises als LatLng-Objekt angegeben. Außerdem wird ein Radius in Metern angegeben.

Eine „Nearby-Suche“ wird mit einem Aufruf der Methode nearbySearch() von PlacesService gestartet, die ein Array von PlaceResult-Objekten zurückgibt. Die Methode nearbySearch() ersetzt die Methode search() ab Version 3.9.

service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);

Diese Methode verwendet eine Anforderung mit folgenden Feldern:

  • Entweder:
    • bounds, das ein google.maps.LatLngBounds-Objekt sein muss, das den rechteckigen Suchbereich definiert; oder
    • location und radius. Ersteres übernimmt ein google.maps.LatLng-Objekt und Letzteres eine einfache Ganzzahl, die den Radius des Kreises in Metern darstellt. Der maximal zulässige Radius beträgt 50.000 m. Hinweis: Wenn rankBy auf DISTANCE gesetzt ist, müssen Sie einen location angeben, aber keinen radius oder bounds.
  • keyword (optional): ein Begriff, der mit allen verfügbaren Feldern abgeglichen wird, einschließlich, aber nicht beschränkt auf Name, Typ und Adresse sowie Kundenrezensionen und andere Inhalte von Drittanbietern
  • minPriceLevel und maxPriceLevel (optional): schränkt die Ergebnisse auf Orte innerhalb des angegebenen Bereichs ein. Gültige Werte liegen zwischen 0 (am günstigsten) und 4 (am teuersten).
  • name Eingestellt. Dies entspricht keyword. Die Werte in diesem Feld werden mit den Werten im Feld keyword kombiniert und als Teil desselben Suchstrings übergeben.
  • openNow (optional): ein boolescher Wert, der angibt, dass der Places-Dienst nur die Orte zurückgeben soll, die beim Senden der Abfrage geöffnet haben. Orte, für die in der Google Places-Datenbank keine Öffnungszeiten angegeben sind, werden nicht zurückgegeben, wenn Sie diesen Parameter in die Abfrage aufnehmen. Das Festlegen von openNow auf false hat keine Auswirkungen.
  • rankBy (optional): gibt die Reihenfolge an, in der die Ergebnisse aufgelistet werden. Mögliche Werte sind:
    • google.maps.places.RankBy.PROMINENCE (Standard) Bei dieser Option werden die Ergebnisse nach ihrer Wichtigkeit sortiert. Bei der Rankingfunktion werden gut sichtbare Orte innerhalb des festgelegten Umkreises gegenüber Orten in der Nähe bevorzugt, die zwar übereinstimmen, aber nicht so gut sichtbar sind. Die Relevanz kann durch das Ranking eines Ortes im Google-Index, die globale Beliebtheit und andere Faktoren beeinflusst werden. Wenn google.maps.places.RankBy.PROMINENCE angegeben ist, ist der Parameter radius erforderlich.
    • google.maps.places.RankBy.DISTANCE: Bei dieser Option werden die Ergebnisse in aufsteigender Reihenfolge nach ihrer Entfernung vom angegebenen location-Wert sortiert (erforderlich). Sie können keine benutzerdefinierte bounds und/oder radius angeben, wenn Sie RankBy.DISTANCE angeben. Wenn Sie RankBy.DISTANCE angeben, ist eine oder mehrere der Spalten keyword, name oder type erforderlich.
  • type: Beschränkt die Ergebnisse auf Orte, die dem angegebenen Typ entsprechen. Es kann nur ein Typ angegeben werden. Wenn mehr als ein Typ angegeben ist, werden alle Typen nach dem ersten Eintrag ignoriert. Hier finden Sie eine Liste der unterstützten Typen.

Außerdem musst du eine Callback-Methode an nearbySearch() übergeben, mit der das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus-Antwort verarbeitet werden.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    type: ['restaurant']
  };

  service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      createMarker(results[i]);
    }
  }
}

Beispiel ansehen

Text Search-Anforderungen

Der Google Places-Dienst für die Textsuche ist ein Webdienst, der Informationen zu einer Reihe von Orten auf der Grundlage eines Strings zurückgibt, z. B. „pizza in berlin“ oder „schuhgeschäfte in der nähe von hamburg“. Der Dienst antwortet mit einer Liste von Orten, die mit dem Textstring übereinstimmen, und mit einer festgelegten Standortverzerrung. Das Suchergebnis enthält eine Liste mit Orten. Sie können eine „Place Details“-Anfrage senden, um weitere Informationen zu einem der Orte in der Antwort zu erhalten.

Textsuchen werden mit einem Aufruf der Methode textSearch() von PlacesService gestartet.

service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

Diese Methode verwendet eine Anforderung mit folgenden Feldern:

  • query (erforderlich): Der zu suchende Textstring, z. B. "restaurant" oder "123 Main Street". Dies muss ein Ortsname, eine Adresse oder eine Kategorie von Einrichtungen sein. Alle anderen Arten von Eingaben können Fehler verursachen und sind keine Garantie dafür, dass keine gültigen Ergebnisse zurückgegeben werden. Der Places-Dienst gibt mögliche Übereinstimmungen anhand dieses Strings zurück und sortiert die Ergebnisse nach der wahrgenommenen Relevanz. Dieser Parameter wird optional, wenn der Parameter type auch in der Suchanfrage verwendet wird.
  • Optional:
    • openNow: Ein boolescher Wert, der angibt, dass der Places-Dienst nur die Orte zurückgeben soll, die beim Senden der Abfrage geöffnet haben. Orte, für die in der Google Places-Datenbank keine Öffnungszeiten angegeben sind, werden nicht zurückgegeben, wenn Sie diesen Parameter in die Abfrage aufnehmen. Das Festlegen von openNow auf false hat keine Auswirkungen.
    • minPriceLevel und maxPriceLevel: schränkt die Ergebnisse auf Orte innerhalb der angegebenen Preisstufe ein. Gültige Werte liegen im Bereich von 0 (am günstigsten) bis einschließlich 4 (am teuersten).
    • Entweder:
      • bounds: Ein google.maps.LatLngBounds-Objekt, das das Rechteck definiert, in dem die Suche ausgeführt wird, oder
      • location und radius: Sie können Ergebnisse durch Übergeben der Parameter location und radius einem bestimmten Kreis zuordnen. Dadurch wird der Places-Dienst angewiesen, Ergebnisse in diesem Kreis anzuzeigen. Ergebnisse außerhalb dieses Bereichs können aber weiterhin angezeigt werden. Für den Standort wird ein google.maps.LatLng-Objekt und für den Radius eine einfache Ganzzahl verwendet, die den Radius des Kreises in Metern darstellt. Der maximal zulässige Radius beträgt 50.000 Meter.
    • type: Beschränkt die Ergebnisse auf Orte, die dem angegebenen Typ entsprechen. Es kann nur ein Typ angegeben werden. Wenn mehr als ein Typ angegeben ist, werden alle Typen nach dem ersten Eintrag ignoriert. Hier finden Sie eine Liste der unterstützten Typen.

Du musst auch eine Callback-Methode an textSearch() übergeben, um das Ergebnisobjekt und die Antwort google.maps.places.PlacesServiceStatus zu verarbeiten.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    query: 'restaurant'
  };

  service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      var place = results[i];
      createMarker(results[i]);
    }
  }
}

Suchergebnisse

Statuscodes

Das Antwortobjekt PlacesServiceStatus enthält den Status der Anfrage sowie möglicherweise Informationen zur Fehlerbehebung, anhand derer Sie herausfinden können, warum die Ortsanfrage fehlgeschlagen ist. Mögliche Statuswerte sind:

  • INVALID_REQUEST: Die Anforderung war ungültig.
  • OK: Die Antwort enthält ein gültiges Ergebnis.
  • OVER_QUERY_LIMIT: Das Anfragekontingent der Webseite wurde überschritten.
  • REQUEST_DENIED: Die Webseite darf den PlacesService nicht verwenden.
  • UNKNOWN_ERROR: Die PlacesService-Anfrage konnte aufgrund eines Serverfehlers nicht verarbeitet werden. Möglicherweise ist die Anforderung beim nächsten Versuch erfolgreich.
  • ZERO_RESULTS: Für diese Anfrage wurde kein Ergebnis gefunden.

Place Search-Ergebnisse

Die Funktionen findPlace(), nearbySearch() und textSearch() geben ein Array von PlaceResult-Objekten zurück.

Jedes PlaceResult-Objekt kann die folgenden Properties enthalten:

  • business_status gibt den Betriebsstatus des Orts an, wenn es sich um ein Unternehmen handelt. Er kann einen der folgenden Werte enthalten:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Wenn keine Daten vorhanden sind, wird business_status nicht zurückgegeben.
  • formatted_address ist ein String, der die von Menschen lesbare Adresse dieses Ortes enthält. Die Property formatted_address wird nur für eine Textsuche zurückgegeben.

    Oft entspricht diese Adresse der Postanschrift. In einigen Ländern wie dem Vereinigten Königreich ist die Weitergabe echter Postanschriften aufgrund von Lizenzbeschränkungen nicht zulässig.

    Die formatierte Adresse besteht logisch aus einer oder mehreren Adresskomponenten. Die Adresse & #118; Beispiel: 8th Avenue, New York, NY&#;

    Parsen Sie die formatierte Adresse nicht programmatisch. Verwende stattdessen die einzelnen Adresskomponenten, die in der API-Antwort zusätzlich zum formatierten Adressfeld enthalten sind.

  • geometry: Die geometriebezogenen Informationen des Orts. Dazu gehören:
    • location gibt den Breiten- und Längengrad des Ortes an.
    • viewport definiert den bevorzugten Darstellungsbereich auf der Karte beim Anzeigen dieses Orts.
  • permanently_closed (verworfen) ist ein boolesches Flag, das angibt, ob der Ort entweder dauerhaft oder vorübergehend geschlossen wurde (Wert true). Verwenden Sie nicht permanently_closed. Verwenden Sie stattdessen business_status, um den Betriebsstatus von Unternehmen abzurufen.
  • plus_code (siehe Offener Standortcode und Plus Codes) ist ein codierter Standortverweis, der aus Breiten- und Längengraden abgeleitet wird und einen Bereich von 1/8000th of a degree by 1/8000th of a degree (ca. 14 m 14m am Äquator) oder kleiner darstellt. Plus Codes können als Ersatz für Adressen an Orten verwendet werden, an denen sie nicht vorhanden sind (wo Gebäude nicht nummeriert sind oder Straßen nicht benannt sind).

    Der Plus Code ist als globaler Code und als zusammengesetzter Code formatiert:

    • global_code ist eine vierstellige Vorwahl und ein lokaler oder längerer Code mit mindestens 6 Zeichen (849VCWC8+R9).
    • compound_code ist ein mindestens 6 stelliger lokaler Code mit einem expliziten Standort (CWC8+R9, Mountain View, CA, USA). Parsen Sie diesen Inhalt nicht programmatisch.
    Normalerweise werden sowohl der globale als auch der kombinierte Code zurückgegeben. Wenn sich das Ergebnis jedoch an einem abgelegenen Ort befindet, z. B. in einem Meer oder einer Wüste, kann nur der globale Code zurückgegeben werden.
  • html_attributions: Ein Array mit Zuordnungen, die beim Anzeigen der Suchergebnisse angezeigt werden sollten. Jeder Eintrag im Array enthält den HTML-Text für eine einzelne Attribution. Hinweis: Dies ist eine Zusammenfassung aller Zuordnungen für die gesamte Suchantwort. Alle PlaceResult-Objekte in der Antwort enthalten daher identische Attributionslisten.
  • icon gibt die URL für ein farbiges PNG-Symbol mit 71 × 71 px zurück.
  • icon_mask_base_uri gibt die Basis-URL für ein nicht farbiges Symbol ohne die Erweiterung „.svg“ oder „.png“ zurück.
  • icon_background_color gibt den Standard-HEX-Farbcode für die Kategorie des Orts zurück.
  • name: Der Name des Orts.
  • opening_hours kann die folgenden Informationen enthalten:
    • open_now ist ein boolescher Wert, der angibt, ob der Ort derzeit geöffnet ist (verworfen, in der Places Library, Maps JavaScript API, stattdessen utc_offset_minutes verwenden).
  • place_id ist eine ID in Textform, die einen Ort eindeutig bezeichnet. Übergeben Sie diese Kennung in der Place Details-Anfrage, um Informationen zum Ort abzurufen. Weitere Informationen zum Verweisen auf einen Ort mit einer Orts-ID
  • rating enthält die Bewertung des Orts zwischen 0,0 und 5,0, basierend auf den aggregierten Nutzerrezensionen.
  • types Ein Array von Typen für diesen Ort (z.B. ["political", "locality"] oder ["restaurant", "lodging"]). Dieses Array kann mehrere Werte enthalten oder leer sein. Neue Werte können ohne vorherige Ankündigung eingeführt werden. Hier finden Sie eine Liste der unterstützten Typen.
  • vicinity: Eine vereinfachte Adresse für den Ort, einschließlich Straßenname, Hausnummer und Ortsteil, aber nicht Bundesland, Postleitzahl oder Land. Die Niederlassung von Google in Sydney, Australien, hat beispielsweise einen vicinity-Wert von 5/48 Pirrama Road, Pyrmont.

Weitere Ergebnisse aufrufen

Standardmäßig werden für jeden Ort pro Abfrage bis zu 20 Ergebnisse zurückgegeben. Für jede Suche können jedoch bis zu 60 Ergebnisse zurückgegeben werden, die auf drei Seiten aufgeteilt sind. Zusätzliche Seiten sind über das Objekt PlaceSearchPagination verfügbar. Für den Zugriff auf zusätzliche Seiten muss das Objekt PlaceSearchPagination über eine Callback-Funktion erfasst werden. Das Objekt PlaceSearchPagination ist so definiert:

  • hasNextPage: Eine boolesche Property, die angibt, ob weitere Ergebnisse verfügbar sind. true, wenn es eine zusätzliche Ergebnisseite gibt.
  • nextPage() ist eine Funktion, die die nächsten Ergebnisse zurückgibt. Nachdem Sie eine Suche ausgeführt haben, müssen Sie zwei Sekunden warten, bis die nächste Ergebnisseite verfügbar ist.

Rufen Sie nextPage auf, um die nächsten Ergebnisse zu sehen. Jede Ergebnisseite muss angezeigt werden, bevor die nächste Seite mit Ergebnissen angezeigt werden kann. Hinweis: Jede Suchanfrage wird als eine Anfrage an deine Nutzungslimits angerechnet.

Im folgenden Beispiel wird gezeigt, wie Sie die Callback-Funktion so ändern, dass das PlaceSearchPagination-Objekt erfasst wird, sodass Sie mehrere Suchanfragen senden können.

TypeScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

function initMap(): void {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      center: pyrmont,
      zoom: 17,
      mapId: "8d193001f940fde3",
    } as google.maps.MapOptions
  );

  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage: () => void | false;
  const moreButton = document.getElementById("more") as HTMLButtonElement;

  moreButton.onclick = function () {
    moreButton.disabled = true;

    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (
      results: google.maps.places.PlaceResult[] | null,
      status: google.maps.places.PlacesServiceStatus,
      pagination: google.maps.places.PlaceSearchPagination | null
    ) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;

      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    }
  );
}

function addPlaces(
  places: google.maps.places.PlaceResult[],
  map: google.maps.Map
) {
  const placesList = document.getElementById("places") as HTMLElement;

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon!,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name!,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name!;
      placesList.appendChild(li);

      li.addEventListener("click", () => {
        map.setCenter(place.geometry!.location!);
      });
    }
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">
function initMap() {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(document.getElementById("map"), {
    center: pyrmont,
    zoom: 17,
    mapId: "8d193001f940fde3",
  });
  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage;
  const moreButton = document.getElementById("more");

  moreButton.onclick = function () {
    moreButton.disabled = true;
    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (results, status, pagination) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;
      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    }
  );
}

function addPlaces(places, map) {
  const placesList = document.getElementById("places");

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name;
      placesList.appendChild(li);
      li.addEventListener("click", () => {
        map.setCenter(place.geometry.location);
      });
    }
  }
}

window.initMap = initMap;
Beispiel ansehen

Beispiel ausprobieren

Place Details

Zusätzlich zur Bereitstellung einer Liste mit Orten innerhalb eines Gebiets kann der Places-Dienst auch detaillierte Informationen zu einem bestimmten Ort zurückgeben. Nachdem ein Ort in einer Ortssuchantwort zurückgegeben wurde, können mithilfe seiner Orts-ID zusätzliche Details zu diesem Ort angefordert werden, etwa die vollständige Adresse, Telefonnummer, Nutzerbewertung und Rezensionen.

Ortsdatenanforderungen

Ortsdetails werden mit einem Aufruf der Methode getDetails() des Dienstes angefordert.

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

Diese Methode verwendet eine Anfrage mit den gewünschten placeId-Orten und -Feldern, die angeben, welche Arten von Places-Daten zurückgegeben werden sollen. Weitere Informationen zum Verweisen auf einen Ort mit einer Orts-ID

Außerdem wird eine Callback-Methode verwendet, die den in der google.maps.places.PlacesServiceStatus-Antwort und im google.maps.places.PlaceResult-Objekt übergebenen Statuscode verarbeitet.

var request = {
  placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4',
  fields: ['name', 'rating', 'formatted_phone_number', 'geometry']
};

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

function callback(place, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    createMarker(place);
  }
}

Beispiel ansehen

Felder (Ortsdetails)

Für den Parameter fields ist ein Array mit Strings (Feldnamen) erforderlich.

Verwenden Sie den Parameter fields, um ein Array von Ortsdatentypen anzugeben, die zurückgegeben werden sollen. Beispiel: fields: ['address_component', 'opening_hours', 'geometry'] Verwenden Sie einen Punkt, wenn Sie zusammengesetzte Werte angeben. zum Beispiel opening_hours.weekday_text.

Die Felder entsprechen Place Details-Ergebnissen und sind in drei Abrechnungskategorien unterteilt: „Basic“, „Contact“ und „Atmosphere“. Einfache Felder werden zum Basispreis abgerechnet, ohne dass zusätzliche Kosten anfallen. Die Felder „Kontakt“ und „Atmosphäre“ werden zu einem höheren Preis abgerechnet. Weitere Informationen finden Sie in der Preisübersicht. Attributionen (html_attributions) werden immer bei jedem Aufruf zurückgegeben, unabhängig davon, ob sie angefordert wurden.

Basic

Die Kategorie „Basic“ enthält die folgenden Felder:
address_component, adr_address, business_status, formatted_address, geometry, icon, icon_mask_base_uri, icon_background_color,name, permanently_closed (veraltet), photo, place_id, plus_code, type, url, utc_offset (Places/) in der Maps API

Kontakt

Die Kategorie „Kontakt“ enthält die folgenden Felder:
formatted_phone_number, international_phone_number, opening_hours, website

Atmosphäre

Die Kategorie „Atmosphere“ umfasst die folgenden Felder: price_level, rating, review, user_ratings_total

Weitere Informationen zu Ortsfeldern Weitere Informationen zur Abrechnung von Ortsdatenanfragen finden Sie unter Nutzung und Abrechnung.

Ortsdatenantworten

Statuscodes

Das Antwortobjekt PlacesServiceStatus enthält den Status der Anfrage sowie möglicherweise Informationen zur Fehlerbehebung, anhand derer Sie herausfinden können, warum die Place Details-Anfrage fehlgeschlagen ist. Mögliche Statuswerte sind:

  • INVALID_REQUEST: Die Anforderung war ungültig.
  • OK: Die Antwort enthält ein gültiges Ergebnis.
  • OVER_QUERY_LIMIT: Das Anfragekontingent der Webseite wurde überschritten.
  • NOT_FOUND Der referenzierte Standort wurde in der Places-Datenbank nicht gefunden.
  • REQUEST_DENIED: Die Webseite darf den PlacesService nicht verwenden.
  • UNKNOWN_ERROR: Die PlacesService-Anfrage konnte aufgrund eines Serverfehlers nicht verarbeitet werden. Möglicherweise ist die Anforderung beim nächsten Versuch erfolgreich.
  • ZERO_RESULTS: Für diese Anfrage wurde kein Ergebnis gefunden.

Ortsdatenergebnisse

Ein erfolgreicher getDetails()-Aufruf gibt ein PlaceResult-Objekt mit den folgenden Properties zurück:

  • address_components: Ein Array, das die separaten Komponenten für diese Adresse enthält.

    Jede Adresskomponente enthält normalerweise die folgenden Felder:

    • types[] ist ein Array, das den Typ der Adresskomponente angibt. Hier finden Sie eine Liste der unterstützten Typen.
    • long_name ist die vom Geocodierer zurückgegebene vollständige Textbeschreibung oder der Name der Adresskomponente.
    • short_name ist ein abgekürzter Textname für die Adresskomponente, falls verfügbar. Beispielsweise kann eine Adresskomponente für den US-Bundesstaat Alaska den long_name „Alaska" und den short_name der Spalte „AK“ mit der aus zwei Buchstaben bestehenden postalischen Abkürzung haben.

    Beachten Sie die folgenden Fakten zum Array address_components[]:

    • Das Array der Adresskomponenten kann mehr Komponenten als formatted_address enthalten.
    • Das Array enthält nicht unbedingt alle politischen Entitäten, die eine Adresse enthalten. Ausgenommen hiervon sind die im formatted_address enthaltenen. Wenn Sie alle politischen Entitäten abrufen möchten, die eine bestimmte Adresse enthalten, müssen Sie das umgekehrte Geocoding verwenden. Dabei wird der Breitengrad/Längengrad der Adresse als Parameter an die Anfrage übergeben.
    • Es kann nicht garantiert werden, dass das Format der Antwort bei Anfragen gleich bleibt. Insbesondere die Anzahl der address_components variiert je nach angeforderter Adresse und kann sich im Laufe der Zeit für dieselbe Adresse ändern. Eine Komponente kann die Position im Array ändern. Der Typ der Komponente kann sich ändern. Eine bestimmte Komponente fehlt möglicherweise in einer späteren Antwort.
  • business_status gibt den Betriebsstatus des Orts an, wenn es sich um ein Unternehmen handelt. Er kann einen der folgenden Werte enthalten:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Wenn keine Daten vorhanden sind, wird business_status nicht zurückgegeben.
  • formatted_address: Die visuell lesbare Adresse dieses Ortes.

    Oft entspricht diese Adresse der Postanschrift. In einigen Ländern wie dem Vereinigten Königreich ist die Weitergabe echter Postanschriften aufgrund von Lizenzbeschränkungen nicht zulässig.

    Die formatierte Adresse besteht logisch aus einer oder mehreren Adresskomponenten. Die Adresse & #118; Beispiel: 8th Avenue, New York, NY&#;

    Parsen Sie die formatierte Adresse nicht programmatisch. Verwende stattdessen die einzelnen Adresskomponenten, die in der API-Antwort zusätzlich zum formatierten Adressfeld enthalten sind.

  • formatted_phone_number: Die Telefonnummer des Orts, die gemäß den regionalen Konventionen der Nummern formatiert ist.
  • geometry: Die geometriebezogenen Informationen des Orts. Dazu gehören:
    • location gibt den Breiten- und Längengrad des Ortes an.
    • viewport definiert den bevorzugten Darstellungsbereich auf der Karte beim Anzeigen dieses Orts.
  • permanently_closed (verworfen) ist ein boolesches Flag, das angibt, ob der Ort entweder dauerhaft oder vorübergehend geschlossen wurde (Wert true). Verwenden Sie nicht permanently_closed. Verwenden Sie stattdessen business_status, um den Betriebsstatus von Unternehmen abzurufen.
  • plus_code (siehe Offener Standortcode und Plus Codes) ist ein codierter Standortverweis, der aus Breiten- und Längengraden abgeleitet wird und einen Bereich von 1/8000th of a degree by 1/8000th of a degree (ca. 14 m 14m am Äquator) oder kleiner darstellt. Plus Codes können als Ersatz für Adressen an Orten verwendet werden, an denen sie nicht vorhanden sind (wo Gebäude nicht nummeriert sind oder Straßen nicht benannt sind).

    Der Plus Code ist als globaler Code und als zusammengesetzter Code formatiert:

    • global_code ist eine vierstellige Vorwahl und ein lokaler oder längerer Code mit mindestens 6 Zeichen (849VCWC8+R9).
    • compound_code ist ein mindestens 6 stelliger lokaler Code mit einem expliziten Standort (CWC8+R9, Mountain View, CA, USA). Parsen Sie diesen Inhalt nicht programmatisch.
    Normalerweise werden sowohl der globale als auch der kombinierte Code zurückgegeben. Wenn sich das Ergebnis jedoch an einem abgelegenen Ort befindet, z. B. in einem Meer oder einer Wüste, kann nur der globale Code zurückgegeben werden.
  • html_attributions: Hinweistext, der für dieses Ortsergebnis angezeigt werden soll.
  • icon: URL zu einer Bildressource, die zur Darstellung dieses Orts verwendet werden kann.
  • international_phone_number enthält die Telefonnummer des Orts im internationalen Format. Das internationale Format umfasst den Ländercode mit vorangestelltem Pluszeichen (+). Für die Google-Niederlassung in Sydney, Australien, lautet die international_phone_number beispielsweise +61 2 9374 4000.
  • name: Der Name des Orts.
  • utc_offset Verworfen in der Places Library, Maps JavaScript API. Verwende stattdessen utc_offset_minutes.
  • utc_offset_minutes enthält die Anzahl der Minuten, die die aktuelle Zeitzone dieses Orts von der UTC-Zeit abweicht. Für Orte in Sydney, Australien, wäre dies beispielsweise während der Sommerzeit 660 (+11 Stunden nach UTC) und für Orte in Kalifornien außerhalb der Sommerzeit -480 (-8 Stunden von UTC).
  • opening_hours enthält die folgenden Informationen:
    • open_now (eingestellt in der Places Library, Maps JavaScript API; verwenden Sie stattdessen opening_hours.isOpen().) In diesem Video erfahren Sie, wie Sie isOpen mit Place Details verwenden.) ist ein boolescher Wert, der angibt, ob der Ort derzeit geöffnet ist.
    • periods[] ist ein Array mit Öffnungszeiten, die sieben Tage lang beginnend ab Sonntag in chronologischer Reihenfolge aufgeführt sind. Jeder Zeitraum enthält Folgendes:
      • open enthält ein Paar Tages- und Uhrzeitobjekte, die beschreiben, wann der Ort öffnet:
        • day ist eine Zahl von 0 bis 6, die den Wochentagen ab Sonntag entspricht. „2“ steht beispielsweise für Dienstag.
        • time kann eine Uhrzeit im 24-Stunden-hhmm-Format enthalten (Werte liegen im Bereich von 0.000 bis 2.359). Die time wird in der Zeitzone des Orts gemeldet.
      • close kann ein Paar Tages- und Zeitobjekte enthalten, die beschreiben, wann der Ort schließt. Hinweis: Wenn ein Ort immer geöffnet ist, fehlt der Abschnitt close in der Antwort. Anwendungen können sich darauf verlassen, dass sie immer als ein open-Zeitraum dargestellt werden, der day mit dem Wert 0 und time mit dem Wert 0000 und ohne close enthält.
    • weekday_text ist ein Array von sieben Strings, die die formatierten Öffnungszeiten für jeden Wochentag darstellen. Wenn in der „Places Details“-Anfrage der Parameter language angegeben wurde, formatiert und lokalisiert der Places-Dienst die Öffnungszeiten für diese Sprache entsprechend. Die Reihenfolge der Elemente in diesem Array hängt vom Parameter language ab. Einige Sprachen beginnen mit der Montagwoche, andere mit Sonntagen.
  • permanently_closed (verworfen) ist ein boolesches Flag, das angibt, ob der Ort entweder dauerhaft oder vorübergehend geschlossen wurde (Wert true). Verwenden Sie nicht permanently_closed. Verwenden Sie stattdessen business_status, um den Betriebsstatus von Unternehmen abzurufen.
  • photos[]: ein Array von PlacePhoto-Objekten. Mit PlacePhoto können Sie ein Foto mit der Methode getUrl() abrufen. Sie können auch das Objekt auf die folgenden Werte prüfen:
    • height: die maximale Höhe des Bildes in Pixeln
    • width: die maximale Breite des Bildes in Pixeln
    • html_attributions: Hinweistext, der mit diesem Ortsfoto angezeigt werden soll.
  • place_id: Eine ID, die einen Ort eindeutig bezeichnet und mit der über eine Place Details-Anfrage Informationen zum Ort abgerufen werden können. Weitere Informationen zum Verweisen auf einen Ort mit einer Orts-ID
  • rating: Die Bewertung des Orts, von 0,0 bis 5,0, basierend auf den aggregierten Nutzerrezensionen.
  • reviews ist ein Array mit bis zu fünf Rezensionen. Jede Rezension besteht aus mehreren Komponenten:
    • aspects[] enthält ein Array mit PlaceAspectRating-Objekten, von denen jedes eine Bewertung eines einzelnen Attributs der Einrichtung liefert. Das erste Objekt im Array wird als primärer Aspekt betrachtet. Jede PlaceAspectRating wird so definiert:
      • type ist der Name des bewerteten Aspekts. Die folgenden Typen werden unterstützt: appeal, atmosphere, decor, facilities, food, overall, quality und service.
      • rating: Die Bewertung des Nutzers für diesen speziellen Aspekt, von 0 bis 3.
    • author_name ist der Name des Nutzers, der die Rezension eingereicht hat. Anonyme Bewertungen werden mit "Ein Google-Nutzer" gekennzeichnet. Wenn ein Sprachparameter festgelegt wurde, gibt die Wortgruppe „Ein Google-Nutzer“ einen lokalisierten String zurück.
    • author_url die URL zum Google+ Profil des Nutzers, sofern verfügbar.
    • language: ein IETF-Sprachcode, der die Sprache angibt, die in der Rezension des Nutzers verwendet wird. Dieses Feld enthält nur das Tag der Hauptsprache und nicht das sekundäre Tag, das Land oder Region angibt. So sind beispielsweise alle englischen Rezensionen mit „'en'“ und nicht „'en-UK'“ gekennzeichnet.
    • rating die Gesamtbewertung des Nutzers für diesen Ort. Dies ist eine Ganzzahl zwischen 1 und 5.
    • text ist die Rezension des Nutzers. Bei der Rezension eines Standorts mit Google Places sind Textrezensionen optional. Daher kann dieses Feld leer sein.
  • types Ein Array von Typen für diesen Ort (z.B. ["political", "locality"] oder ["restaurant", "lodging"]). Dieses Array kann mehrere Werte enthalten oder leer sein. Neue Werte können ohne vorherige Ankündigung eingeführt werden. Hier finden Sie eine Liste der unterstützten Typen.
  • url: URL der offiziellen Google-Seite für diesen Ort. Das ist die Google-Seite, die die besten verfügbaren Informationen über den Ort enthält. Die Anwendung muss auf jedem Bildschirm, der dem Nutzer detaillierte Ergebnisse zu dem Ort anzeigt, mit einem Link zu dieser Seite verknüpft sein oder ihn dort einbetten.
  • vicinity: Eine vereinfachte Adresse für den Ort, einschließlich Straßenname, Hausnummer und Ortsteil, aber nicht Bundesland, Postleitzahl oder Land. Die Niederlassung von Google in Sydney, Australien, hat beispielsweise einen vicinity-Wert von 5/48 Pirrama Road, Pyrmont. Die Property vicinity wird nur für eine Nearby Search zurückgegeben.
  • website listet die offizielle Website für diesen Ort auf, beispielsweise die Startseite eines Unternehmens.

Hinweis:Mehrdimensionale Bewertungen sind möglicherweise nicht für alle Standorte verfügbar. Wenn es zu wenige Rezensionen gibt, enthält die Detailantwort entweder eine Legacy-Bewertung auf einer Skala von 0,0 bis 5,0 (falls verfügbar) oder gar keine Bewertung.

Verweise auf Orte mit einer Orts-ID erstellen

Eine Orts-ID ist ein eindeutiger Verweis auf einen Ort auf einer Google Maps-Karte. Orts-IDs sind für die meisten Standorte verfügbar, einschließlich Unternehmen, Sehenswürdigkeiten, Parks und Kreuzungen.

Wenn Sie eine Orts-ID in Ihrer App verwenden möchten, müssen Sie zuerst die ID abrufen, die unter PlaceResult einer „Place Search“- oder „Details“-Anfrage verfügbar ist. Mit dieser Orts-ID können Sie dann nach Place Details suchen.

Orts-IDs sind von den in Abschnitt 3.2.3(a) der Nutzungsbedingungen der Google Maps Platform genannten Caching-Einschränkungen ausgenommen. Daher können Sie Orts-ID-Werte zur späteren Verwendung speichern. Die Best Practices zum Speichern von Orts-IDs finden Sie in der Übersicht zu Orts-IDs.

var map;

function initialize() {
  // Create a map centered in Pyrmont, Sydney (Australia).
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8666, lng: 151.1958},
    zoom: 15
  });

  // Search for Google's office in Australia.
  var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Google Sydney'
  };

  var service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

// Checks that the PlacesServiceStatus is OK, and adds a marker
// using the place ID and location from the PlacesService.
function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var marker = new google.maps.Marker({
      map: map,
      place: {
        placeId: results[0].place_id,
        location: results[0].geometry.location
      }
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

Fotos zum Ort

Mit der Funktion „Place Photo“ können Sie Ihrer Website hochwertige Fotos hinzufügen. Mit dem Fotodienst haben Sie Zugriff auf Millionen von Fotos, die in der Places-Datenbank und in der lokalen Google+ Datenbank gespeichert sind. Wenn Sie mit einer „Place Details“-Anfrage Ortsinformationen erhalten, werden Fotoreferenzen für relevante fotografische Inhalte zurückgegeben. Bei „Nearby Search“- und „Text Search“-Anfragen wird gegebenenfalls auch ein einzelner Fotoverweis pro Ort zurückgegeben. Mit dem Fotodienst können Sie dann auf die referenzierten Fotos zugreifen und das Bild an die optimale Größe für Ihre Anwendung anpassen.

Für jede getDetails()-, textSearch()- oder nearbySearch()-Anfrage an eine PlacesService wird ein Array mit PlacePhoto-Objekten als Teil des PlaceResult-Objekts zurückgegeben.

Hinweis:Die Anzahl der zurückgegebenen Fotos variiert je nach Anfrage.

  • Eine Nearby Search- oder eine Text Search-Funktion gibt maximal ein PlacePhoto-Objekt zurück.
  • Eine Detailanfrage gibt bis zu zehn PlacePhoto-Objekte zurück.

Sie können die URL für das verknüpfte Bild anfordern, indem Sie die Methode PlacePhoto.getUrl() aufrufen und ein gültiges PhotoOptions-Objekt übergeben. Mit dem Objekt PhotoOptions können Sie die maximale Höhe und Breite des Bildes angeben. Wenn Sie sowohl für maxHeight als auch für maxWidth einen Wert angeben, passt der Fotodienst das Bild auf die kleinere der beiden Größen an und behält dabei das ursprüngliche Seitenverhältnis bei.

Im folgenden Code-Snippet wird ein Ortsobjekt akzeptiert und es wird eine Markierung auf der Karte hinzugefügt, falls ein Foto vorhanden ist. Das Standardmarkierungsbild wird durch eine kleine Version des Fotos ersetzt.

function createPhotoMarker(place) {
  var photos = place.photos;
  if (!photos) {
    return;
  }

  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location,
    title: place.name,
    icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35})
  });
}

Die vom Fotodienst zurückgegebenen Fotos stammen aus unterschiedlichen Quellen, darunter von Unternehmensinhabern und von Nutzern bereitgestellte Fotos. In den meisten Fällen können diese Fotos ohne Attribution verwendet werden oder haben die erforderliche Attribution als Teil des Bildes. Wenn das zurückgegebene photo-Element jedoch einen Wert im Feld html_attributions enthält, musst du die zusätzliche Attribution in die Anwendung aufnehmen, wo auch immer das Bild angezeigt wird.