Orts-IDs

Plattform auswählen: Android iOS JavaScript Webdienst
Entwickler im Europäischen Wirtschaftsraum (EWR)

Einführung

Mit einer Orts-ID wird ein Ort in der Google Places-Datenbank und in Google Maps eindeutig identifiziert. Orts-IDs werden in Anfragen an die folgenden Maps APIs akzeptiert:

  • Adresse für eine Orts-ID in der Geocoding API und im Geocoding-Dienst der Maps JavaScript API abrufen
  • Start, Ziel und Wegpunkte im Routes API- und Directions API-Webdienst (Legacy) und Directions-Dienst der Maps JavaScript API (Legacy) angeben
  • Start und Ziel im Routes API- und Distance Matrix API-Webdienst (Legacy) und Distance Matrix-Dienst der Maps JavaScript API (Legacy) angeben
  • Place Details-Daten in der Places API (New), im Places SDK for Android (New), im Places SDK for iOS (New) und in der Places Library abrufen
  • Orts-ID-Parameter in der Maps Embed API verwenden
  • Suchanfragen in Maps-URLs abrufen
  • Geschwindigkeitsbegrenzungen in der Roads API anzeigen
  • Begrenzungspolygone finden und mit datengestützten Stilen für Grenzen gestalten

Nach der ID eines bestimmten Orts suchen

Sie suchen nach der ID eines bestimmten Orts? Dann verwenden Sie die Orts-ID-Suche:

Alternativ können Sie sich auch die Seite zur Orts-ID-Suche mit dem entsprechenden Code in der Maps JavaScript API-Dokumentation ansehen.

Übersicht

Die Orts-ID ist eine Kennung in Textform, die einen Ort eindeutig definiert. Die Länge von Orts-IDs kann variieren und ist nicht begrenzt. Beispiele:

  • ChIJgUbEo8cfqokR5lP9_Wh_DaM
  • GhIJQWDl0CIeQUARxks3icF8U8A
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
  • IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ

Orts-IDs lassen sich für die meisten Orte abrufen, einschließlich Unternehmen, Sehenswürdigkeiten, Parks und Kreuzungen. Ein Ort kann mehrere unterschiedliche Orts-IDs haben. Orts-IDs können sich im Laufe der Zeit ändern.

Sie können dieselbe Orts-ID für die Places API und verschiedene Google Maps Platform APIs verwenden. So kann z. B. dieselbe Orts-ID verwendet werden, um in der Places API, Maps JavaScript API, Geocoding API, Maps Embed API und Roads API auf einen Ort zu verweisen.

Ortsdetails mithilfe der Orts-ID abrufen

Häufig wird nach einem Ort gesucht, indem die Places API oder die Places Library in der Maps JavaScript API verwendet wird. Anschließend können Sie die zurückgegebene Orts-ID verwenden, um Place Details abzurufen. Sie können die Orts-ID speichern und später verwenden, um dieselben Ortsdetails noch einmal abzurufen. Informationen zum Speichern von Orts-IDs finden Sie weiter unten in diesem Dokument.

Beispiel für die Verwendung des Places SDK for Android (New)

Im Places SDK for Android (New) können Sie die ID eines Orts abrufen, indem Sie Place.getId() aufrufen. Der Dienst Place Autocomplete (Legacy) gibt auch eine Orts-ID für jeden Ort zurück, der der angegebenen Suchanfrage und dem Filter entspricht. Verwenden Sie die Orts-ID, um das Place-Objekt später noch einmal abzurufen.

Wenn Sie einen Ort anhand der ID abrufen möchten, rufen Sie PlacesClient.fetchPlace() auf und übergeben Sie ein FetchPlaceRequest.

Die API gibt ein FetchPlaceResponse in einem Task zurück. Das FetchPlaceResponse enthält ein Place-Objekt, das der angegebenen Orts-ID entspricht.

Im folgenden Codebeispiel wird gezeigt, wie fetchPlace() aufgerufen wird, um Details zum angegebenen Ort abzurufen.

Kotlin

// Define a Place ID.
val placeId = PlaceIdProvider.getRandomPlaceId()

// Specify the fields to return.
val placeFields = listOf(
    Place.Field.ID,
    Place.Field.DISPLAY_NAME,
    Place.Field.FORMATTED_ADDRESS,
    Place.Field.LOCATION
)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place

        val name = place.displayName
        val address = place.formattedAddress
        val location = place.location

        binding.placeName.text = name
        binding.placeAddress.text = address
        if (location != null) {
            binding.placeLocation.text = getString(
                R.string.place_location, location.latitude, location.longitude
            )
        } else {
            binding.placeLocation.text = null
        }
        Log.i(TAG, "Place found: ${place.displayName}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            val message = getString(R.string.place_not_found, exception.message)
            binding.placeName.text = message
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

Java

// Define a Place ID.
final String placeId = PlaceIdProvider.getRandomPlaceId();

// Specify the fields to return.
final List<Place.Field> placeFields =
        Arrays.asList(
                Place.Field.ID,
                Place.Field.DISPLAY_NAME,
                Place.Field.FORMATTED_ADDRESS,
                Place.Field.LOCATION
        );

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();

    final CharSequence name = place.getDisplayName();
    final CharSequence address = place.getFormattedAddress();
    final LatLng location = place.getLocation();

    binding.placeName.setText(name);
    binding.placeAddress.setText(address);
    if (location != null) {
        binding.placeLocation.setText(
                getString(R.string.place_location, location.latitude, location.longitude)
        );
    } else {
        binding.placeLocation.setText(null);
    }

    Log.i(TAG, "Place found: " + place.getDisplayName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException apiException) {
        final String message = getString(R.string.place_not_found, apiException.getMessage());
        binding.placeName.setText(message);
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

Orts-IDs zur späteren Verwendung speichern

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 daher zur späteren Verwendung speichern.

Gespeicherte Orts-IDs aktualisieren

Da sich Orts-IDs aufgrund von Aktualisierungen der Google Maps-Datenbank ändern können, empfiehlt Google, Orts-IDs zu aktualisieren, die älter als 12 Monate sind. Sie können Orts-IDs kostenlos aktualisieren, indem Sie eine Place Details-Anfrage stellen und dabei nur das Feld Place.Field.ID im fields-Parameter angeben.

Dadurch wird die SKU Places Details – ID Refresh ausgelöst.

Fehlercodes bei der Verwendung von Orts-IDs

INVALID_REQUEST

Der Statuscode INVALID_REQUEST gibt an, dass die angegebene Orts-ID ungültig ist. INVALID_REQUEST wird zurückgegeben, wenn die Orts-ID abgeschnitten oder anderweitig geändert wurde und nicht mehr korrekt ist.

NOT_FOUND

Der Statuscode NOT_FOUND gibt an, dass die angegebene Orts-ID veraltet ist. Eine Orts-ID kann auch als veraltet eingestuft werden, wenn ein Unternehmen schließt oder an einen neuen Standort umzieht. Orts-IDs können sich auch aufgrund von Aktualisierungen der Google Maps-Datenbank ändern. In solchen Fällen wird einem Ort eventuell eine neue Orts-ID zugewiesen und für die alte die Antwort NOT_FOUND zurückgegeben.

Wenn Sie die Ergebnisse im Fall einer veralteten Orts-ID aktualisieren möchten, speichern Sie die ursprüngliche Anfrage, für die die einzelnen Orts-IDs zurückgegeben wurden, und senden Sie die Anfrage bei Bedarf noch einmal. Die neu ausgestellte Anfrage wird mit der entsprechenden SKU abgerechnet.

Bei einigen Arten von Orts-IDs wird manchmal die Antwort NOT_FOUND oder eine andere Orts-ID in der Antwort zurückgegeben. Diese Orts-ID-Typen umfassen:

  • Adressen, die in Google Maps nicht als genaue Adressen vorhanden sind, sondern aus einem Adressbereich abgeleitet werden
  • Segmente einer langen Route, für die in der Anfrage auch eine Stadt oder ein Ort angegeben wird
  • Kreuzungen
  • Orte mit einer Adresskomponente vom Typ subpremise

Die IDs sind häufig lange Strings (es gibt keine Längenbeschränkung für Orts-IDs). Beispiel:

EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4