Übersicht
Mit den Funktionen der Places Library in der Maps JavaScript API kann in Ihrer Anwendung nach Orten (in der API als Einrichtungen, geografische Standorte oder POIs definiert) gesucht werden, die sich in einem festgelegten Gebiet befinden sind, 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 in Ihren Anwendungen dasselbe Suchverhalten wie im Google Maps-Suchfeld zur Verfügung stellen können. Sobald 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 Sie nicht mit der Maps JavaScript API oder JavaScript vertraut sind, sollten Sie sich zuerst über JavaScript informieren und den Artikel API-Schlüssel anfordern lesen.
APIs aktivieren
Bevor Sie die Places Library in der Maps JavaScript API verwenden können, müssen Sie die Places API in der Google Cloud Console aktivieren, und zwar in dem Projekt, das Sie für die Maps JavaScript API eingerichtet haben.
So öffnen Sie die Liste der aktivierten APIs:
- Rufen Sie die Google Cloud Console auf.
- 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.
- Suchen Sie im Dashboard in der Liste der APIs nach Places API.
- Wenn sich die Places API in der Liste befindet, ist sie bereits aktiviert. Ist die API nicht aufgeführt, aktivieren Sie sie:
- Wählen Sie oben auf der Seite APIS UND DIENSTE AKTIVIEREN aus, damit der Tab Bibliothek zu sehen ist. Sie haben auch die Möglichkeit, im Menü auf der linken Seite Bibliothek auszuwählen.
- Suchen Sie nach der Places API und wählen Sie sie dann in der Ergebnisliste aus.
- Klicken Sie auf AKTIVIEREN. Die Places API wird dann in der Liste der APIs auf dem Dashboard angezeigt.
Bibliothek laden
Der Places-Dienst ist eine eigenständige Bibliothek, die unabhängig vom Code der Maps JavaScript API ist. Damit Sie die Funktionen der Bibliothek nutzen können, müssen Sie sie zuerst mithilfe des libraries
-Parameters in der Bootstrap-URL der Maps API laden:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>
Weitere Informationen finden Sie in der Übersicht der Bibliotheken.
Places API in die Liste der API-Einschränkungen für API-Schlüssel aufnehmen
Wenn für Ihre Schlüssel API-Einschränkungen gelten, wird die Nutzung des API-Schlüssels auf eine oder mehrere APIs oder SDKs beschränkt. Anfragen an APIs oder SDKs, die mit dem API-Schlüssel verknüpft sind, werden verarbeitet. Anfragen an APIs und SDKs, die nicht mit dem API-Schlüssel verknüpft sind, schlagen hingegen fehl. So schränken Sie einen API-Schlüssel für die Nutzung mit der Places Library, Maps JavaScript API ein:- Rufen Sie die Google Cloud Console auf.
- Klicken Sie auf das Drop-down-Menü für Projekte und wählen Sie das Projekt aus, das den API-Schlüssel enthält, der geschützt werden soll.
- Klicken Sie auf die Menüschaltfläche
und wählen Sie Google Maps Platform > Anmeldedaten aus.
- Klicken Sie auf der Seite Anmeldedaten auf den Namen des zu sichernden API-Schlüssels.
- Legen Sie auf der Seite API-Schlüssel einschränken und umbenennen die Einschränkungen fest:
- API-Einschränkungen
- Wählen Sie 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, müssen Sie sie zuerst aktivieren.
- Klicken Sie auf SPEICHERN.
Nutzungslimits und Richtlinien
Kontingente
Für Places Library und Places API gilt ein gemeinsames Nutzungskontingent, wie in der Dokumentation zu Nutzungslimits für die Places API beschrieben.
Richtlinien
Die Nutzung der Places Library in der Maps JavaScript API muss den Richtlinien für die Places API entsprechen.
Place Search-Anfragen
Mit dem Places-Dienst können Sie folgende Arten von Suchanfragen ausführen:
- Bei Anfragen vom Typ Find Place from Query wird basierend auf einer Textanfrage ein Ort zurückgegeben, z. B. der Name oder die Adresse eines Ortes.
- Bei Anfragen vom Typ Find Place from Phone wird ein Ort basierend auf einer Telefonnummer zurückgegeben.
- Bei Anfragen vom Typ Nearby Search wird basierend auf dem Standort des Nutzers eine Liste mit Orten in der Nähe zurückgegeben.
- Bei Anfragen vom Typ Text Search wird basierend auf einem Suchstring wie „Pizza“ eine Liste mit Orten in der Nähe zurückgegeben.
- Bei Anfragen vom Typ Place Details werden ausführliche Informationen zu einem bestimmten Ort zurückgegeben, einschließlich Rezensionen von Nutzern.
Die zurückgegebenen Daten können Einrichtungen, wie Restaurants, Geschäfte und Büros, oder auch Geocoding-Ergebnisse, wie Adressen, politische Verwaltungseinheiten, z. B. Städte und Gemeinden, oder andere POIs umfassen.
„Find Place“-Anfragen
Mit einer „Find Place“-Anfrage können Sie mit Text oder einer Telefonnummer nach einem Ort suchen. Es gibt zwei Arten von Anfragen vom Typ „Find Place“:
Find Place from Query
Bei Anfragen vom Typ „Find Place from Query“ geben Sie Text ein und es wird ein Ort zurückgegeben. Sie können beliebige Daten zu einem Ort eingeben, z. B. den Namen oder die Adresse eines Unternehmens. Wenn Sie eine Anfrage vom Typ „Find Place from Query“ stellen möchten, rufen Sie die Methode findPlaceFromQuery()
von PlacesService
auf. Verwenden Sie dazu folgende Parameter:
query
(erforderlich): der Textstring, nach dem gesucht werden soll, z. B. „Restaurant“ oder „Hauptstraße 60“. Der Textstring muss dabei der Name oder die Adresse eines Ortes oder eine Kategorie der Einrichtung sein. Alle anderen Arten von Eingaben führen vermutlich zu einem Fehler und die zurückgegebenen Ergebnisse sind möglicherweise ungültig. Über die Places API werden mögliche Übereinstimmungen basierend auf dem String zurückgegeben, die nach erkannter Relevanz sortiert werden.fields
(erforderlich): mindestens ein Feld, mit dem die Arten der zurückgegebenen Ortsdaten festgelegt werden.locationBias
(optional): Koordinaten, mit denen der Suchbereich definiert wird. Dabei sind folgende Angaben zulässig:- Eine Kombination aus Breiten-/Längenkoordinaten, angegeben als LatLngLiteral oder LatLng-Objekt
- Rechteckige Begrenzungen (zwei Paare aus Breiten-/Längenkoordinaten oder ein LatLngBounds-Objekt)
- Ein Radius (in Metern), dessen Mittelpunkt über Längen- und Breitengrade definiert wird
Außerdem muss eine Callback-Methode an findPlaceFromQuery()
übergeben werden, damit das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus
-Antwort verarbeitet werden können.
Im folgenden Beispiel sehen Sie einen Aufruf vom Typ findPlaceFromQuery()
, bei dem nach dem „Museum of Contemporary Art Australia“ gesucht wird und der 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
Find Place from Phone Number
Bei Anfragen vom Typ „Find Place from Phone Number“ wird eine Telefonnummer eingegeben und ein Ort zurückgegeben. Wenn Sie eine Anfrage vom Typ „Find Place from Phone Number“ stellen möchten, müssen Sie die Methode findPlaceFromPhoneNumber()
von PlacesService
aufrufen. Verwenden Sie dazu folgende Parameter:
phoneNumber
(erforderlich): eine Telefonnummer im Format E.164.fields
(erforderlich): mindestens ein Feld, mit dem die Arten der zurückgegebenen Ortsdaten festgelegt werden.locationBias
(optional): Koordinaten, mit denen der Suchbereich definiert wird. Dabei sind folgende Angaben zulässig:- Eine Kombination aus Breiten-/Längenkoordinaten, angegeben als LatLngLiteral oder LatLng-Objekt
- Rechteckige Begrenzungen (vier Punkte, definiert über Breiten-/Längenkoordinaten, oder ein LatLngBounds-Objekt)
- Ein Radius (in Metern), dessen Mittelpunkt über Längen- und Breitengrade definiert wird
Außerdem muss eine Callback-Methode an findPlaceFromPhoneNumber()
übergeben werden, damit das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus
-Antwort verarbeitet werden können.
Felder (Methoden vom Typ „Find Place“)
Verwenden Sie den Parameter fields
, um ein Array von Ortsdatentypen festzulegen, die zurückgegeben werden sollen,
z. B. fields: ['formatted_address', 'opening_hours', 'geometry']
.
Verwenden Sie bei zusammengesetzten Werten einen Punkt, z. B. opening_hours.weekday_text
.
Die Felder entsprechen „Place Search“-Ergebnissen und sind in drei Abrechnungskategorien unterteilt: „Basic“, „Contact“ und „Atmosphere“. Für Felder der Kategorie „Basic“ gilt der Basispreis und es fallen keine zusätzlichen Kosten an. Für Felder der Kategorie „Contact“ und „Atmosphere“ werden höhere Kosten abgerechnet. Weitere Informationen finden Sie in der Preisübersicht. Zuordnungen (html_attributions
) werden bei jedem Aufruf zurückgegeben, unabhängig davon, ob das Feld angefordert wurde.
Basic
Die Kategorie „Basic“ umfasst folgende Felder:
business_status
, formatted_address
, geometry
,
icon
,icon_mask_base_uri
, icon_background_color
,
name
, permanently_closed
(eingestellt),
photos
, place_id
, plus_code
, types
Contact
Die Kategorie „Contact“ umfasst folgendes Feld:opening_hours
(in der Places Library in Maps JavaScript API eingestellt. Nutzen Sie eine „Place Details“-Anfrage, um Ergebnisse vom Typ
opening_hours
zu erhalten.)
Atmosphere
Die Kategorie „Atmosphere“ umfasst folgende Felder:price_level
, rating
, user_ratings_total
Bei den Methoden findPlaceFromQuery()
und findPlaceFromPhoneNumber()
werden dieselben Felder in den jeweiligen Antworten zurückgeben.
Standortgewichtung festlegen (Methoden vom Typ „Find Place“)
Verwenden Sie den Parameter locationBias
, damit Ergebnisse von Anfragen vom Typ „Find Place“ an einem bestimmten Ort bevorzugt werden. Sie können locationBias
folgendermaßen festlegen:
Ergebnisse für einen bestimmten Ort höher gewichten:
locationBias: {lat: 37.402105, lng: -122.081974}
Einen rechteckigen Bereich für die Suche definieren:
locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}
Sie können auch LatLngBounds verwenden.
Einen Radius für die Suche (in Metern) definieren, dessen Mittelpunkt auf einen bestimmten Bereich festgelegt ist:
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
„Nearby Search“-Anfragen
Mit einer Anfrage vom Typ „Nearby Search“ können Sie anhand eines Suchbegriffs oder Typs nach Orten innerhalb eines bestimmten Bereichs suchen. Eine solche Anfrage muss immer einen Standort enthalten, der sich in einer der beiden folgenden Formen angeben lässt:
- als
LatLngBounds
- als Kreisfläche, die über eine Kombination aus der Eigenschaft
location
(wobei der Mittelpunkt des Kreises alsLatLng
-Objekt angegeben wird) und einem in Metern angegebenen Radius definiert wird
Eine Suche vom Typ „Places Nearby“ wird über einen Aufruf an die nearbySearch()
-Methode von
PlacesService
initiiert. Zurückgegeben wird ein Array von
PlaceResult
-Objekten. Die Methode nearbySearch()
ersetzt ab Version 3.9 die Methode search()
.
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
Dabei wird eine Anfrage mit folgenden Feldern verwendet:
- Entweder:
bounds
, die ein Wert sein mussgoogle.maps.LatLngBounds
-Objekt, das das Rechteck definiert Suchbereich. Der maximal unterstützte diagonale Abstand für die Grenzen beträgt ca. 100.000 Meter.- ein
location
und einradius
, wobei Ersteres eingoogle.maps.LatLng
-Objekt und Letzteres eine einfache Ganzzahl ist, die dem Radius des Kreises in Metern entspricht. Das Maximum zulässiger Radius beträgt 50.000 Meter. WennrankBy
auf „DISTANCE“ festgelegt ist, müssen Sie einenlocation
angeben.radius
undbounds
können in diesem Fall nicht festgelegt werden.
keyword
(optional): ein Begriff, der mit allen verfügbaren Feldern abgeglichen wird, einschließlich, aber nicht beschränkt auf Name, Typ und Adresse sowie Rezension von Kunden und sonstigen DrittanbieterinhaltminPriceLevel
undmaxPriceLevel
(optional): Damit werden die Ergebnisse auf Orte innerhalb des angegebenen Bereichs eingeschränkt. Werte von 0 (am preisgünstigsten) bis einschließlich 4 (am teuersten) sind zulässig.name
(eingestellt), entsprichtkeyword
. Die Werte in diesem Feld werden mit den Werten im Feldkeyword
kombiniert und als Teil desselben Suchstrings übergeben.openNow
(optional): ein boolescher Wert, mit dem angegeben wird, dass der Places-Dienst nur die Orte zurückgeben soll, die beim Senden der Anfrage geöffnet haben. Wenn Sie diesen Parameter in Ihre Anfrage einbinden, werden keine Orte zurückgegeben, für die in der Google Places-Datenbank keine Öffnungszeiten hinterlegt sind. Wenn SieopenNow
auffalse
festlegen, hat das keine Auswirkungen.rankBy
(optional): definiert die Reihenfolge, in der die Ergebnisse aufgelistet werden. Folgende Werte sind möglich:google.maps.places.RankBy.PROMINENCE
(Standard): Mit dieser Option werden die Ergebnisse nach ihrer Wichtigkeit sortiert. In der Liste werden relevante Orte innerhalb des eingestellten Radius gegenüber Orten in der Nähe bevorzugt, die übereinstimmen, aber weniger relevant sind. Die Relevanz kann durch die Bewertung eines Ortes im Index von Google, die weltweite Bekanntheit und weitere Faktoren beeinflusst werden. Wenngoogle.maps.places.RankBy.PROMINENCE
festgelegt wird, ist der Parameterradius
erforderlich.google.maps.places.RankBy.DISTANCE
: Bei dieser Option werden die Ergebnisse in aufsteigender Reihenfolge nach ihrer Entfernung vom angegebenen Wert fürlocation
(erforderlich) sortiert. Sie können keine benutzerdefinierten Werte fürbounds
und/oderradius
festlegen, wenn SieRankBy.DISTANCE
verwenden. Wenn SieRankBy.DISTANCE
nutzen, müssen Sie mindestens einen der folgenden Werte festlegen:keyword
,name
odertype
.
type
: Damit werden die Ergebnisse auf Orte beschränkt, die dem angegebenen Typ entsprechen. Es kann nur ein Typ festgelegt werden. Werden mehrere Typen angegeben, wird nur der erste berücksichtigt. Sehen Sie sich die Liste der unterstützten Typen an.
Außerdem muss eine Callback-Methode an nearbySearch()
übergeben werden, damit das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus
-Antwort verarbeitet werden können.
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]); } } }
„Text Search“-Anfragen
Der Dienst „Text Search“ von Google Places ist ein Webdienst, mit dem auf Grundlage eines Strings, z. B. „Pizza in München“ oder „Schuhgeschäfte in der Nähe von Hamburg“ Informationen zu verschiedenen Orten zurückgegeben werden. Über den Dienst erhalten Sie eine Liste von Orten, die dem Textstring entsprechen und ggf. mit der festgelegten Standortgewichtung übereinstimmen. Die Antwort der Suche enthält eine Liste mit Orten. Sie können eine „Place Details“-Anfrage senden, um weitere Informationen zu den zurückgegebenen Orten zu erhalten.
Anfragen vom Typ „Text Search“ werden mit einem Aufruf der Methode textSearch()
von PlacesService
initiiert.
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
Dabei wird eine Anfrage mit folgenden Feldern verwendet:
query
(erforderlich): der Textstring, nach dem gesucht werden soll, z. B. „Restaurant“ oder „Hauptstraße 60“. Der Textstring muss dabei der Name oder die Adresse eines Ortes oder die Art eines Betriebes oder Unternehmens sein. Alle anderen Arten von Eingaben führen vermutlich zu einem Fehler und die zurückgegebenen Ergebnisse sind möglicherweise ungültig. Über den Places-Dienst werden mögliche Übereinstimmungen basierend auf dem String zurückgegeben, die nach erkannter Relevanz sortiert werden. Dieser Parameter ist optional, wenn auch der Parametertype
in der Suchanfrage verwendet wird.- Optional:
openNow
: ein boolescher Wert, mit dem angegeben wird, dass der Places-Dienst nur die Orte zurückgeben soll, die beim Senden der Anfrage geöffnet haben. Wenn Sie diesen Parameter in Ihre Anfrage einbinden, werden keine Orte zurückgegeben, für die in der Google Places-Datenbank keine Öffnungszeiten hinterlegt sind. Wenn SieopenNow
auffalse
festlegen, hat das keine Auswirkungen.minPriceLevel
undmaxPriceLevel
: Damit werden die Ergebnisse auf Orte innerhalb des angegebenen Bereichs eingeschränkt. Werte von 0 (am preisgünstigsten) bis einschließlich 4 (am teuersten) sind zulässig.- Entweder:
bounds
, die ein Wert sein mussgoogle.maps.LatLngBounds
-Objekt, das das Rechteck definiert Suchbereich. Der maximal unterstützte diagonale Abstand für die Grenzen beträgt ca. 100.000 Meter.location
undradius
: Wenn Sie die Parameterlocation
undradius
weitergeben, können Sie die Ergebnisse zugunsten eines festgelegten Kreises gewichten. Dadurch werden vom Places-Dienst vorzugsweise Ergebnisse für Orte angezeigt, die sich innerhalb dieses Kreises befinden. Ergebnisse außerhalb dieses Bereichs können aber trotzdem angezeigt werden. Für den Standort wird eingoogle.maps.LatLng
-Objekt und für den Radius eine einfache Ganzzahl verwendet, die dem Radius des Kreises in Metern entspricht. Der maximal zulässige Radius beträgt 50.000 Meter.
type
: Damit werden die Ergebnisse auf Orte eingeschränkt, die dem angegebenen Typ entsprechen. Es kann nur ein Typ festgelegt werden. Werden mehrere Typen angegeben, wird nur der erste berücksichtigt. Sehen Sie sich die Liste der unterstützten Typen an.
Außerdem muss eine Callback-Methode an textSearch()
übergeben werden, damit das Ergebnisobjekt und die google.maps.places.PlacesServiceStatus
-Antwort verarbeitet werden können
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 PlacesServiceStatus
-Antwortobjekt enthält den Status der Anfrage und evtl. Debugging-Informationen, mit deren Hilfe Sie herausfinden können, warum die Ortsanfrage zu Fehlern geführt hat. Mögliche Statuswerte sind:
INVALID_REQUEST
: Die Anfrage war ungültig.OK
: Die Antwort enthält ein gültiges Ergebnis.OVER_QUERY_LIMIT
: Das Anfragenkontingent für die Webseite wurde überschritten.REQUEST_DENIED
: Für die Webseite kann der PlacesService nicht genutzt werden.UNKNOWN_ERROR
: Die PlacesService-Anfrage konnte aufgrund eines Serverfehlers nicht verarbeitet werden. Die Anfrage ist möglicherweise erfolgreich, wenn Sie sie noch einmal ausführen.ZERO_RESULTS
: Für diese Anfrage wurde kein Ergebnis gefunden.
„Place Search“-Ergebnisse
Mit den Funktionen findPlace()
, nearbySearch()
und textSearch()
wird ein Array von PlaceResult
-Objekten zurückgegeben.
Jedes PlaceResult
-Objekt kann die folgenden Attribute enthalten:
business_status
: Damit wird der Öffnungsstatus des Ortes angegeben, sofern es sich um ein Unternehmen handelt. Das Attribut kann einen der folgenden Werte annehmen:OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
kein Wert zurückgegeben.formatted_address
ist ein String, der die Adresse dieses Ortes in visuell lesbarer Form enthält. Das Attributformatted_address
wird nur bei einer Text Search-Anfrage zurückgegeben.Diese Adresse stimmt häufig mit der Postanschrift überein. In einigen Ländern, z. B. dem Vereinigten Königreich, ist die Weitergabe echter Postanschriften aufgrund von Lizenzeinschränkungen nicht zulässig.
Die formatierte Adresse besteht aus einer oder mehreren Adresskomponenten. Die Adresse „111 8th Avenue, New York, NY“ besteht z. B. aus den folgenden Komponenten: „111“ (Hausnummer), „8th Avenue“ (Straße), „New York“ (Stadt) und „NY“ (US-Bundesstaat).
Wir raten davon ab, die formatierte Adresse programmatisch zu parsen. Verwenden Sie stattdessen die einzelnen Adresskomponenten, die zusätzlich zur formatierten Adresse in der API-Antwort enthalten sind.
geometry
: die geometrischen Daten eines Ortes. Dazu zählen:location
: Damit werden der Breiten- und der Längengrad des Ortes angegeben.viewport
: Damit wird der bevorzugte Darstellungsbereich auf der Karte beim Anzeigen des Ortes festgelegt.
permanently_closed
(eingestellt): Das ist ein boolescher Wert, mit dem angegeben wird, ob der Ort dauerhaft oder zeitweise (Wert:true
) geschlossen ist. Wir raten davon ab,permanently_closed
zu verwenden. Nutzen Sie stattdessenbusiness_status
, um den Öffnungsstatus von Unternehmen abzurufen.plus_code
(siehe Open Location Code und Plus Codes) ist ein codierter Verweis auf den Standort, der sich aus den Koordinaten (Breiten- und Längengrad) ableiten lässt und einen Bereich definiert: 1/8.000stel eines Grades mal 1/8.000stel eines Grades (ca. 14 m × 14 m am Äquator) oder kleiner. Plus Codes können als Ersatz für Adressen verwendet werden, wenn keine Adressen vorhanden sind, z. B. wenn Gebäude keine Hausnummern oder Straßen keine Namen haben.Der Plus Code wird als globaler oder als zusammengesetzter Code formatiert:
global_code
besteht aus einem vierstelligen Code für das Gebiet und einem mindestens sechsstelligen lokalen Code (849VCWC8+R9).compound_code
ist ein mindestens sechsstelliger lokaler Code mit einem expliziten Ort (CWC8+R9 Mountain View, CA, USA). Wir raten davon ab, diesen Code programmatisch zu parsen.
html_attributions
: ein Array mit Zuordnungen, die mit den Suchergebnissen angezeigt werden sollten. Jeder Eintrag im Array enthält den HTML-Text für eine einzelne Zuordnung. Hinweis: Das ist eine Zusammenfassung aller Zuordnungen für die gesamte Suchantwort. AllePlaceResult
-Objekte in der Antwort enthalten daher identische Zuordnungslisten.icon
gibt die URL für ein farbiges PNG-Symbol mit einer Größe von 71 × 71 px zurück.icon_mask_base_uri
gibt die Basis-URL eines nicht farbigen Symbols ohne die Erweiterung „SVG“ oder „PNG“ zurück.icon_background_color
gibt den standardmäßigen Hex-Farbcode für die Kategorie des Ortes zurück.name
gibt den Namen des Ortes zurück.opening_hours
kann die folgenden Informationen enthalten:open_now
ist ein boolescher Wert, der angibt, ob der Ort derzeit geöffnet ist. In der Places Library in der Maps JavaScript API ist dieser Wert eingestellt. Verwenden Sie stattdessenutc_offset_minutes
.
place_id
ist eine ID in Textform, die einen Ort eindeutig definiert. Wenn Sie Informationen zum Ort abrufen möchten, geben Sie diese ID in der „Place Details“-Anfrage weiter. Weitere Informationen dazu, wie Sie Verweise auf Orte mit einer Orts-ID erstellenrating
enthält die Bewertung des Ortes. Sie beruht auf aggregierten Nutzerrezensionen und liegt zwischen 0,0 und 5,0.types
ist 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. Sehen Sie sich die Liste der unterstützten Typen an.vicinity
ist eine vereinfachte Adresse des Ortes, einschließlich Straße, Hausnummer und Verwaltungseinheit, aber ohne Provinz/Bundesland, Postleitzahl oder Land. Die Google-Niederlassung in Sydney, Australien, hat z. B. denvicinity
-Wert5/48 Pirrama Road, Pyrmont
.
Weitere Ergebnisse aufrufen
Standardmäßig werden bei jeder „Place Search“-Anfrage bis zu 20 Ergebnisse zurückgegeben. Für jede Suche können jedoch bis zu 60 Ergebnisse zurückgegeben werden, die auf drei Seiten angezeigt werden.
Zusätzliche Seiten sind über das PlaceSearchPagination
-Objekt verfügbar. Wenn Sie weitere Seiten aufrufen möchten, muss das Objekt PlaceSearchPagination
über eine Callback-Funktion erfasst werden. Das Objekt PlaceSearchPagination
ist so definiert:
hasNextPage
: ein boolesches Attribut, mit dem angegeben wird, ob weitere Ergebnisse verfügbar sind.true
gibt an, dass es eine weitere Seite mit Ergebnissen gibt.nextPage()
: eine Funktion, mit der die nächste Ergebnisgruppe zurückgegeben wird. Nach dem Ausführen einer Suche müssen Sie 2 Sekunden warten, bevor die nächste Ergebnisseite verfügbar ist.
Rufen Sie nextPage
auf, um den nächsten Satz Ergebnisse zu erhalten.
Jede einzelne Ergebnisseite muss der Reihe nach angezeigt werden. In Bezug auf die geltenden Nutzungslimits wird jede Suche wie eine einzelne Anfrage gezählt.
Das folgende Beispiel zeigt, wie Sie die Callback-Funktion ändern können, um das Objekt PlaceSearchPagination
zu erfassen, sodass sich mehrere Suchanfragen stellen lassen.
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;
Testbeispiel
„Place Details“
Über den Places-Dienst lässt sich nicht nur eine Liste von Orten innerhalb eines Bereichs anzeigen, es können auch detaillierte Informationen zu einem bestimmten Ort zurückgegeben werden. Sobald ein Ort in einer Place Search-Antwort ausgegeben wurde, kann die zugehörige Orts-ID verwendet werden, um zusätzliche Details zu diesem Ort, etwa die vollständige Adresse, Telefonnummer, Nutzerbewertungen oder Rezensionen abzurufen.
„Place Details“-Anfragen
Ortsdetails werden mit einem Aufruf an die getDetails()
-Methode des Dienstes angefordert.
service = new google.maps.places.PlacesService(map); service.getDetails(request, callback);
Bei dieser Methode wird eine Anfrage mit der placeId
des gewünschten Ortes und den Feldern gestellt, über die festgelegt wird, welche Arten von Places-Daten Sie abrufen möchten. Weitere Informationen dazu, wie Sie Verweise auf Orte mit einer Orts-ID erstellen
Außerdem wird eine Callback-Methode benötigt, mit der der in der google.maps.places.PlacesServiceStatus
-Antwort und im google.maps.places.PlaceResult
-Objekt übergebene Statuscode verarbeitet wird.
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); } }
Felder (Place Details)
Für den Parameterfields
kann ein Array von Strings (Feldnamen) angegeben werden.
Verwenden Sie den Parameter fields
, um ein Array von Ortsdatentypen festzulegen, die zurückgegeben werden sollen,
z. B. fields: ['address_components', 'opening_hours', 'geometry']
.
Verwenden Sie bei zusammengesetzten Werten einen Punkt, z. B. opening_hours.weekday_text
.
Die Felder entsprechen „Place Details“-Ergebnissen und sind in drei Abrechnungskategorien unterteilt: „Basic“, „Contact“ und „Atmosphere“. Für Felder der Kategorie „Basic“ gilt der Basispreis und es fallen keine zusätzlichen Kosten an. Für Felder der Kategorie „Contact“ und „Atmosphere“ werden höhere Kosten abgerechnet. Weitere Informationen finden Sie in der Preisübersicht. Zuordnungen (html_attributions
) werden bei jedem Aufruf zurückgegeben, unabhängig davon, ob sie angefordert wurden.
Basic
Die Kategorie „Basic“ umfasst folgende Felder:
address_components
, adr_address
, business_status
,
formatted_address
, geometry
, icon
,
icon_mask_base_uri
, icon_background_color
,name
,
permanently_closed
(eingestellt),
photo
, place_id
, plus_code
, type
,
url
, utc_offset
(in der Places Library in der Maps JavaScript API eingestellt), utc_offset_minutes
,
vicinity
Contact
Die Kategorie „Contact“ umfasst folgende Felder:
formatted_phone_number
, international_phone_number
,
opening_hours
, website
Atmosphere
Die Kategorie „Atmosphere“ umfasst folgende Felder:
price_level
, rating
, reviews
,
user_ratings_total
Sehen Sie sich weitere Informationen zu Feldern mit Ortsdaten an. Weitere Informationen zur Abrechnung von Anfragen für Ortsdaten finden Sie unter Nutzung und Abrechnung.
„Place Details“-Antworten
Statuscodes
Das PlacesServiceStatus
-Antwortobjekt enthält den Status der Anfrage und evtl. Debugging-Informationen, mit deren Hilfe Sie herausfinden können, warum die Place Details-Anfrage zu Fehlern geführt hat. Mögliche Statuswerte sind:
INVALID_REQUEST
: Die Anfrage war ungültig.OK
: Die Antwort enthält ein gültiges Ergebnis.OVER_QUERY_LIMIT
: Das Anfragenkontingent für die Webseite wurde überschritten.NOT_FOUND
: Der entsprechende Ort wurde in der Places-Datenbank nicht gefunden.REQUEST_DENIED
: Für die Webseite kann der PlacesService nicht genutzt werden.UNKNOWN_ERROR
: Die PlacesService-Anfrage konnte aufgrund eines Serverfehlers nicht verarbeitet werden. Die Anfrage ist möglicherweise erfolgreich, wenn Sie sie noch einmal ausführen.ZERO_RESULTS
: Für diese Anfrage wurde kein Ergebnis gefunden.
„Place Details“-Ergebnisse
Bei einem erfolgreichen getDetails()
-Aufruf wird ein PlaceResult
-Objekt mit den folgenden Attributen zurückgegeben:
address_components
: ein Array, das die einzelnen Komponenten für diese Adresse enthältJede Adresskomponente enthält normalerweise die folgenden Felder:
types[]
ist ein Array, das den Typ der Adresskomponente angibt. Sehen Sie sich die Liste der unterstützten Typen an.long_name
ist die Volltextbeschreibung oder der Name der Adresskomponente, wie vom Geocoder zurückgegeben.short_name
ist ein abgekürzter Textname für die Adresskomponente, falls vorhanden. Beispielsweise könnte eine Adresskomponente für den US-Bundesstaat Alaska denlong_name
„Alaska“ und denshort_name
„AK“ haben, entsprechend der postalischen Abkürzung.
Hinweise zum
address_components[]
-Array:- Das Array der Adresskomponenten kann mehr Komponenten als nur
formatted_address
enthalten. - Das Array enthält nicht unbedingt alle politischen Einheiten einer Adresse. Ausgenommen hiervon sind die im
formatted_address
enthaltenen. Wenn Sie alle politischen Einheiten abrufen möchten, die zu einer bestimmten Adresse gehören, müssen Sie die umgekehrte Geocodierung verwenden. Dabei wird der Breiten-/Längengrad der Adresse als Parameter an die Anfrage übergeben. - Es kann nicht garantiert werden, dass das Antwortformat zwischen mehreren 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. Die Position einer Komponente im Array ändert sich unter Umständen. Auch der Typ der Komponente kann sich ändern. In einer späteren Anfrage fehlt evtl. auch eine bestimmte Komponente.
business_status
: Damit wird der Öffnungsstatus des Ortes angegeben, sofern es sich um ein Unternehmen handelt. Das Attribut kann einen der folgenden Werte annehmen:OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
kein Wert zurückgegeben.formatted_address
: Damit wird die Adresse des Ortes in lesbarer Form angegeben.Diese Adresse stimmt häufig mit der Postanschrift überein. In einigen Ländern, z. B. dem Vereinigten Königreich, ist die Weitergabe echter Postanschriften aufgrund von Lizenzeinschränkungen nicht zulässig.
Die formatierte Adresse besteht aus einer oder mehreren Adresskomponenten. Die Adresse „111 8th Avenue, New York, NY“ besteht z. B. aus den folgenden Komponenten: „111“ (Hausnummer), „8th Avenue“ (Straße), „New York“ (Stadt) und „NY“ (US-Bundesstaat).
Wir raten davon ab, die formatierte Adresse programmatisch zu parsen. Verwenden Sie stattdessen die einzelnen Adresskomponenten, die zusätzlich zur formatierten Adresse in der API-Antwort enthalten sind.
formatted_phone_number
: die Telefonnummer des Ortes, die gemäß den örtlichen Nummernkonventionen formatiert istgeometry
: die geometrischen Daten eines Ortes. Dazu zählen:location
: Damit werden der Breiten- und der Längengrad des Ortes angegeben.viewport
: Damit wird der bevorzugte Darstellungsbereich auf der Karte beim Anzeigen des Ortes festgelegt.
permanently_closed
(eingestellt): Das ist ein boolescher Wert, mit dem angegeben wird, ob der Ort dauerhaft oder zeitweise (Wert:true
) geschlossen ist. Wir raten davon ab,permanently_closed
zu verwenden. Nutzen Sie stattdessenbusiness_status
, um den Öffnungsstatus von Unternehmen abzurufen.plus_code
(siehe Open Location Code und Plus Codes) ist ein codierter Verweis auf den Standort, der sich aus den Koordinaten (Breiten- und Längengrad) ableiten lässt und einen Bereich definiert: 1/8.000stel eines Grades mal 1/8.000stel eines Grades (ca. 14 m × 14 m am Äquator) oder kleiner. Plus Codes können als Ersatz für Adressen verwendet werden, wenn keine Adressen vorhanden sind, z. B. wenn Gebäude keine Hausnummern oder Straßen keine Namen haben.Der Plus Code wird als globaler oder als zusammengesetzter Code formatiert:
global_code
besteht aus einem vierstelligen Code für das Gebiet und einem mindestens sechsstelligen lokalen Code (849VCWC8+R9).compound_code
ist ein mindestens sechsstelliger lokaler Code mit einem expliziten Ort (CWC8+R9 Mountain View, CA, USA). Wir raten davon ab, diesen Code programmatisch zu parsen.
html_attributions
: Text der Zuordnung, der für dieses Ortsergebnis angezeigt werden sollicon
: URL einer Bildressource, die zur Darstellung des Ortstyps verwendet werden kanninternational_phone_number
enthält die Telefonnummer des Ortes im internationalen Format. Das internationale Format umfasst die Ländervorwahl mit einem vorangestellten Pluszeichen (+). Für die Google-Niederlassung in Sydney, Australien, wirdinternational_phone_number
z. B. als+61 2 9374 4000
angegeben.name
gibt den Namen des Ortes zurück.utc_offset
: in der Places Library in der Maps JavaScript API eingestellt. Verwenden Sie stattdessenutc_offset_minutes
.utc_offset_minutes
enthält die Anzahl der Minuten, um die die Zeitzone des aktuellen Ortes von der UTC abweicht. Für Orte in Sydney, Australien, wäre das während der Sommerzeit z. B. 660 (+11 Stunden Abweichung von der UTC) und für Orte in Kalifornien während der Standardzeit −480 (−8 Stunden Abweichung von der UTC).opening_hours
enthält die folgenden Informationen:open_now
in der Places Library in der Maps JavaScript API eingestellt. Verwenden Sie stattdessen opening_hours.isOpen(). In diesem Video erfahren Sie, wie SieisOpen
mit Place Details nutzen. Es handelt sich hierbei um einen booleschen Wert, der angibt, ob der Ort derzeit geöffnet ist.periods[]
ist ein Array mit Öffnungszeiten in einem Zeitraum von 7 Tagen in chronologischer Reihenfolge, beginnend am Sonntag. Jeder Zeitraum enthält die folgenden Werte:open
enthält ein Paar aus Tages- und Zeitobjekten, die beschreiben, wann der Ort geöffnet hat:day
ist eine Zahl von 0 bis 6, die dem Wochentag entspricht, beginnend mit Sonntag. 2 bedeutet z. B. Dienstag.time
enthält die Uhrzeit im 24-Stunden-Format (hhmm). Zulässige Werte sind 0000 bis 2359.time
wird in der Zeitzone des Ortes angegeben.
close
enthält ein Paar aus Tages- und Zeitobjekten, die beschreiben, wann der Ort geschlossen hat. Hinweis: Wenn ein Ort durchgängig geöffnet ist, fehltclose
in der Antwort. Ist der Ort immer geöffnet, wird in der Anwendung der Zeitraumopen
mitday
mit dem Wert 0 undtime
mit dem Wert 0000 dargestellt.close
ist dann nicht vorhanden.
weekday_text
ist ein Array mit 7 Strings, die für die formatierten Öffnungszeiten an den einzelnen Wochentagen stehen. Wenn in der „Place Details“-Anfrage einlanguage
-Parameter angegeben wurde, formatiert und lokalisiert der „Places“-Dienst die Öffnungszeiten entsprechend für die jeweilige Sprache. Die Reihenfolge der Elemente in diesem Array hängt vom Parameterlanguage
ab. In einigen Sprachen beginnt die Woche am Montag, in anderen am Sonntag.
permanently_closed
(eingestellt): Das ist ein boolescher Wert, mit dem angegeben wird, ob der Ort dauerhaft oder zeitweise (Wert:true
) geschlossen ist. Wir raten davon ab,permanently_closed
zu verwenden. Nutzen Sie stattdessenbusiness_status
, um den Öffnungsstatus von Unternehmen abzurufen.photos[]
: ein Array vonPlacePhoto
-Objekten. MitPlacePhoto
lässt sich ein Foto mit der MethodegetUrl()
abrufen. Sie können das Objekt auch auf folgende Werte prüfen:height
: die maximale Höhe des Bildes in Pixelnwidth
: die maximale Breite des Bildes in Pixelnhtml_attributions
: Zuordnungstext, der mit dem Foto des Ortes angezeigt wird
place_id
: eine ID in Textform, über die ein Ort eindeutig identifiziert wird. In einer „Place Details“-Anfrage kann die ID dann verwendet werden, um weitere Informationen zum Ort abzurufen. Weitere Informationen dazu, wie Sie Verweise auf Orte mit einer Orts-ID erstellenrating
: die Bewertung des Ortes. Sie beruht auf aggregierten Nutzerrezensionen und liegt zwischen 0,0 und 5,0.reviews
: ein Array mit bis zu 5 Rezensionen. Jede Rezension besteht aus mehreren Komponenten:aspects[]
enthält ein Array vonPlaceAspectRating
-Objekten, von denen jedes eine Bewertung eines einzelnen Attributs der Einrichtung umfasst. Das erste Objekt im Array gilt als der primäre Aspekt. JedesPlaceAspectRating
-Element wird so definiert:type
ist der Name des bewerteten Aspekts. Die folgenden Typen werden unterstützt:appeal
,atmosphere
,decor
,facilities
,food
,overall
,quality
undservice
.rating
ist die Bewertung des Nutzers für den betreffenden Aspekt. Sie liegt zwischen 0 und 3.
author_name
ist der Name des Nutzers, der die Rezension geschrieben hat. Anonyme Rezensionen werden mit „Ein Google-Nutzer“ gekennzeichnet. Wenn ein Sprachparameter definiert wurde, wird für „Ein Google-Nutzer“ ein lokalisierter String ausgegeben.author_url
ist die URL des Google+ Profils des Nutzers, sofern vorhanden.language
ist ein IETF-Sprachcode, der die Sprache angibt, in der die Rezension des Nutzers verfasst wurde. Dieses Feld enthält nur das primäre Tag für die Sprache, nicht das sekundäre Tag für Land oder Region. Alle englischsprachigen Kritiken erhalten z. B. das Tag „en“ und nicht „en-AU“ oder „en-UK“ usw.rating
ist die Gesamtbewertung des Nutzers für diesen Ort. Der Wert wird als Ganzzahl zwischen 1 und 5 angegeben.text
ist die Rezension des Nutzers. Wenn Sie eine Rezension für einen Ort in Google Places erstellen, sind Rezensionen in Textform optional. Daher ist dieses Feld eventuell leer.
types
ist 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. Sehen Sie sich die Liste der unterstützten Typen an.url
ist die URL der offiziellen Google-Seite für diesen Ort. Es handelt sich dabei um die Google-eigene Seite, die die bestmöglichen Informationen zum Ort enthält. In Anwendungen muss diese Seite verlinkt oder eingebettet sein und zwar auf jedem Bildschirm, auf dem detaillierte Ergebnisse zu diesem Ort für den Nutzer angezeigt werden.vicinity
ist eine vereinfachte Adresse des Ortes, einschließlich Straße, Hausnummer und Verwaltungseinheit, aber ohne Provinz/Bundesland, Postleitzahl oder Land. Die Google-Niederlassung in Sydney, Australien, hat z. B. denvicinity
-Wert5/48 Pirrama Road, Pyrmont
. Das Attributvicinity
wird nur bei einer Nearby Search-Anfrage zurückgegeben.website
ist die offizielle Website des Ortes, z. B. die Homepage eines Unternehmens.
Hinweis: Mehrdimensionale Bewertungen sind möglicherweise nicht für alle Orte verfügbar. Falls zu wenige Rezensionen vorhanden sind, enthält die Antwort auf eine „Places Details“-Anfrage entweder eine Legacy-Bewertung auf einer Skala von 1,0 bis 5,0 (falls verfügbar) oder gar keine Bewertung.
Komponente „Place Übersicht“ verwenden
Hinweis: In diesem Beispiel wird eine Open-Source-Bibliothek verwendet. Informationen zu Support und Feedback für diese Bibliothek finden Sie in der README-Datei.
Probieren Sie Webkomponenten aus. Verwenden Sie die Methode Webkomponente „Place Overview“, um Ortsdetails visuell darzustellen.
![Abbildung mit den Größen x-klein, klein, mittel, groß und x-groß
Die Ortsübersichtskomponente, die auf Grundlage des vom Nutzer eingegebenen Größenfelds angezeigt wird.](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/javascript/images/place-overview-sizes.png?authuser=0000&hl=de)
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 lassen sich für die meisten Orte abrufen, einschließlich Unternehmen, Sehenswürdigkeiten, Parks und Kreuzungen.
Wenn Sie eine Orts-ID in Ihrer App verwenden möchten, müssen Sie die ID zuerst abrufen. Sie finden sie bei „Place Search“- oder „Place Details“-Anfragen in PlaceResult
.
Mit dieser Orts-ID können Sie dann nach Place Details suchen.
Orts-IDs sind von den Caching-Einschränkungen in Paragraf 3.2.3(b) der Nutzungsbedingungen für die Google Maps Platform ausgenommen. Sie können Orts-IDs also zur späteren Verwendung speichern. Best Practices zum Speichern von Orts-IDs finden Sie in der Übersicht zur Orts-ID.
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);
Place Photos
Mit der Funktion „Place Photo“ können Sie qualitativ hochwertige Fotos auf Ihrer Website einbinden. Mit dem Fotodienst können Sie auf Millionen von Fotos in der Places-Datenbank und in der lokalen Google+ Datenbank zugreifen. Wenn Sie über eine „Place Details“-Anfrage Informationen zum Ort abrufen, erhalten Sie Fotoreferenzen zu relevanten Fotos. Bei „Nearby Search“- und „Text Search“-Anfragen wird, falls relevant, auch eine einzelne Fotoreferenz pro Ort zurückgegeben. Mit dem Fotodienst können Sie auf das referenzierte Foto zugreifen und das Bild auf die für Ihre Anwendung optimale Größe skalieren.
Ein Array von PlacePhoto
-Objekten wird als Teil des PlaceResult
-Objekts für eine getDetails()
-, textSearch()
- oder nearbySearch()
-Anfrage ausgegeben, wenn sie für den PlacesService
ausgeführt wird.
Hinweis: Die Anzahl der zurückgegebenen Fotos hängt von der Anfrage ab.
- Bei „Nearby Search“- oder „Text Search“-Anfragen ist maximal ein
PlacePhoto
-Objekt enthalten. - Bei einer Detailanfrage werden bis zu 10
PlacePhoto
-Objekte zurückgegeben.
Sie können die URL des verknüpften Bildes anfordern, indem Sie die Methode PlacePhoto.getUrl()
aufrufen und ein gültiges PhotoOptions
-Objekt weitergeben. Mit dem PhotoOptions
-Objekt können Sie die maximal erwünschte Höhe und Breite des Bildes angeben. Wenn Sie sowohl für maxHeight
als auch für maxWidth
einen Wert angeben, wird das Bild vom Fotodienst auf die kleinere der beiden Größen skaliert, wobei das ursprüngliche Seitenverhältnis beibehalten wird.
Im folgenden Code-Snippet ist ein Ortsobjekt zulässig und es wird eine Markierung auf der Karte hinzugefügt, wenn ein Foto vorhanden ist. Das standardmäßige Bild der Markierung 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 bereitgestellten Fotos stammen aus unterschiedlichen Quellen, z. B. von Geschäftsinhabern oder Nutzern. In den meisten Fällen dürfen diese Fotos ohne Quellenangabe verwendet werden bzw. sind die erforderlichen Zuordnungen bereits im Bild eingebunden. Wenn das zurückgegebene photo
-Element jedoch einen Wert im Feld html_attributions
enthält, müssen Sie die zusätzliche Zuordnung immer dann in Ihre Anwendung einbinden, wenn das Bild zu sehen ist.