Warum kann ich eine Isochrone für Fußgänger oder Radfahrer für bis zu 2 Stunden anfordern, für Autofahrer aber nur für 1 Stunde?
Diese Einschränkung basiert auf der Rechenkomplexität der Berechnungen. Ein Fahrzeug legt in derselben Zeit eine deutlich größere Strecke zurück als ein Fußgänger oder Radfahrer. Das bedeutet, dass sich das zugrunde liegende Straßennetz, das analysiert werden muss, exponentiell vergrößert. Für Autofahrer ist die Dauer auf maximal 1 Stunde (3.600 Sekunden) begrenzt, damit die API eine Antwort innerhalb eines schnellen, synchronen Echtzeitfensters zurückgeben kann. Für Fußgänger und Radfahrer sind bis zu 2 Stunden (7.200 Sekunden) möglich.
Wie berechne ich eine Isochrone für die Fahrt zu einem Zielort im Vergleich zu einer Isochrone für die Fahrt von einem Ausgangspunkt?
Sowohl die Berechnung für die Fahrt zum Zielort als auch die Berechnung für die Fahrt vom Ausgangspunkt werden in der v1 API mit dem Parameter travel_direction unterstützt:
FROM(Fahrt vom Ausgangspunkt): Berechnet den Bereich, derfromAusgangspunkt aus innerhalb der angegebenen Zeit erreicht werden kann. Dies ist für Anwendungsfälle wie Lieferzonen oder Serviceabdeckung geeignet.TO(Fahrt zum Zielort): Berechnet den Bereich, von dem aus der Ausgangspunkt innerhalb der angegebenen Zeit erreicht werden kann.toDies ist für Anwendungen wie Funktionen für den Arbeitsweg oder die Bestimmung von Einzugsgebieten um ein Büro oder einen Verkehrsknotenpunkt geeignet.
Manchmal sieht das zurückgegebene Polygon blockartig aus oder hat gezackte, stufenförmige Kanten, insbesondere bei längeren Zeiträumen. Warum ändert sich der Detaillierungsgrad?
Die Isochrones API passt die Auflösung des räumlichen Berechnungsrasters dynamisch an die angeforderte travel_duration und travel_mode an:
- Kürzere Zeiträume: Verwenden Sie ein hochauflösendes Raster mit hoher Auflösung, da der Gesamtbereich klein ist. So erhalten Sie eine detaillierte Grenze.
- Längere Zeiträume: Wechseln Sie zu einem gröberen Raster mit niedrigerer Auflösung, um den großen geografischen Bereich effizient abzudecken, ohne zu hohe Latenz zu verursachen.
Sie können den optionalen Parameter polygon_fidelity auf HIGH, MEDIUM oder LOW setzen, wenn Sie unabhängig von der Dauer einen bestimmten, einheitlichen Detaillierungsgrad benötigen.
Warum wird manchmal der Fehler „Nicht gefunden“ zurückgegeben, wenn ich eine Isochrone für eine Koordinate in einem Park, See oder großen Industriekomplex anfordere?
Die Isochrones API berechnet die Reisezeiten anhand von Straßen und Wegen. Die API muss den Punkt an das nächste kompatible Segment anpassen, bevor die Berechnung gestartet wird, wenn sich die angeforderten Koordinaten des Ausgangspunkts nicht auf einer erkannten Straße befinden.
Für jeden Reisemodus gibt es einen bestimmten maximalen Schwellenwert für die Anpassungsentfernung:
DRIVE: 200 Meter (Fußwege werden ignoriert).BICYCLE: 180 Meter.WALK: 150 Meter.
Wenn die Koordinate des Ausgangspunkts weiter von einem gültigen, mit dem Modus kompatiblen Straßensegment entfernt ist als diese Schwellenwerte, schlägt die Anpassung fehl und die API gibt den Fehler NOT_FOUND zurück. Achten Sie darauf, dass sich die Koordinaten in der Nähe einer öffentlichen Straße oder eines öffentlichen Wegs befinden.
Warum erhalte ich eine Fehlermeldung, wenn ich eine verkehrsabhängige Routenplanung für Fußgänger oder Radfahrer anfordere?
Verkehrslage in Echtzeit (TRAFFIC_AWARE) wird nur für den Reisemodus DRIVE unterstützt. Wenn Sie versuchen, eine Isochrone für WALK oder BICYCLE anzufordern, wobei routingPreference auf TRAFFIC_AWARE gesetzt ist, gibt die API den Fehler 400 INVALID_ARGUMENT zurück.
Wenn ich die GeoJSON-Antwort auf meiner Karte rendere, wird die Form an der falschen Stelle angezeigt, ist verzerrt oder kann nicht gerendert werden. Was ist die Ursache dafür?
Die Ursache ist fast immer eine falsche Reihenfolge der Koordinaten.
Gemäß dem GeoJSON-Standard (RFC 7946) gibt die Isochrones API Koordinaten in der Reihenfolge [longitude, latitude] zurück. Viele Mapping-SDKs und benutzerdefinierte Geometrieobjekte erwarten jedoch Koordinaten in der Reihenfolge [latitude, longitude].
Wenn die Kartendarstellung falsch ist, prüfen Sie, wie Ihr Karten-SDK GeoJSON verarbeitet:
- Google Maps JavaScript API:Wenn Sie den Data Layer (
map.data.addGeoJson()) verwenden, wird diese Reihenfolge nativ verarbeitet und es sind keine Maßnahmen erforderlich. - Benutzerdefinierte Objekte oder andere SDKs:Wenn Sie die Antwort manuell in
LatLng-Objekte parsen, müssen Sie die Koordinaten in der GeoJSON-Nutzlast durchlaufen und die[lng, lat]-Werte vor dem Rendern in[lat, lng]-Paare umwandeln.
Warum gibt es hohle „Löcher“ in meinem Isochronenpolygon und kann ich stattdessen eine durchgehende Form erhalten?
Löcher stellen Bereiche dar, in denen es innerhalb des Zeitlimits keine erreichbaren Straßen gibt. Das ist in Regionen mit großen Wäldern, Gewässern, Flughäfen oder Privatgrundstücken üblich, wo Fahrzeuge oder Fußgänger nicht unterwegs sein können.
Die externe v1 API bietet keinen Parameter, um Löcher automatisch zu entfernen. Wenn Ihre Anwendung eine durchgehende Grenze erfordert, z. B. um Containment-Prüfungen für Punkte in Polygonen durchzuführen, haben Sie folgende Möglichkeiten:
- Setzen Sie den Parameter
polygon_fidelityaufMEDIUModerLOW, damit der Algorithmus diese internen Lücken verallgemeinert und zusammenführt. - Verwenden Sie eine clientseitige GIS-Bibliothek (z. B. Turf.js), um das GeoJSON zu parsen und nur den ersten Koordinatenring (die äußere Hülle) zu extrahieren. Alle nachfolgenden inneren Ringe (die Löcher) werden verworfen.
Sollte ich die Option enable_smoothing für die räumliche Backend-Analyse aktivieren?
Nein. Der Parameter enable_smoothing ist ausschließlich für die visuelle Ästhetik gedacht.
Er rundet die scharfen Ecken des zugrunde liegenden Berechnungsrasters ab, damit die Form auf einer Karte organischer aussieht.
Die Glättung wird für präzise räumliche Analysen nicht empfohlen, da sie die Eckpunkte verändert und die Grenzen leicht verschiebt. Setzen Sie für Backend-Berechnungen, Datenbankabfragen oder Punkt-in-Polygon-Tests enable_smoothing auf false, damit Sie die mathematisch präzise berechnete Grenze verwenden.