Vom Guthabenmodell zur veröffentlichten Staffel.
Die größere Änderung sind nicht die Parameter, sondern die Zählung. Google berechnet Kartenaufrufe je Sitzung und verrechnet die Nutzung mit einem Monatsguthaben; wir berechnen Kacheln und Anfragen, veröffentlicht, ohne Guthaben, um das herum modelliert werden müsste.
- Preise je Anfrage, die sich vor der Rechnung berechnen lassen
- Kacheln werden je Kachel berechnet — für lange Sitzungen meist günstiger
- Keine SKU-Matrix: zehn Dienste, zehn Tarife
- EU-Datenhaltung ohne Enterprise-Vertrag
Der Tausch
Host und Auth-Header. Alles darunter ist die Parameterzuordnung.
- https://maps.googleapis.com?key=YOUR_KEY
+ https://api.apinavi.com
+ Authorization: Bearer $APINAVI_KEYParameterzuordnung
Geocoding
| Google Maps | ApiNavi | Note |
|---|---|---|
| GET /maps/api/geocode/json?address= | GET /v1/geocode?q= | — |
| GET /maps/api/geocode/json?latlng= | GET /v1/revgeocode?at= | — |
| components=country:DE | in=countryCode:DEU | ISO alpha-3 rather than alpha-2. |
| results[].formatted_address | items[].address.label | — |
| results[].geometry.location | items[].position | lat/lng keys are the same. |
| results[].place_id | items[].id | Identifiers are not interchangeable; re-resolve saved places once. |
Routes & places
| Google Maps | ApiNavi | Note |
|---|---|---|
| POST /directions/v2:computeRoutes | GET /v1/routes | — |
| routes[].legs[].distanceMeters | routes[].sections[].summary.length | — |
| routes[].duration | routes[].sections[].summary.duration | Seconds in both, without the trailing s. |
| POST /places:autocomplete | GET /v1/autosuggest | — |
| GET /maps/api/distancematrix/json | POST /v1/matrix | — |
| Map load (per session) | Tile requests | Metering differs: we bill tiles, not map loads — usually cheaper for long sessions, dearer for one-glance views. |
Wo es kein Eins-zu-eins-Tausch ist
Kartenaufrufe gegen Kacheln
Eine Sitzung mit viel Verschieben und Zoomen kostet hier mehr; eine Seite mit einem einzigen Blick auf die Karte weniger. Der Rechner hat beide Formen als Voreinstellungen.
Koordinatenreihenfolge
Google liefert geometry.location als Objekt, wir ebenso. Unsere GeoJSON-Ausgabe ist jedoch spezifikationsgemäß längengradzuerst — prüfen Sie den Pfad, den Sie nehmen.
Orts-IDs
place_id-Werte lassen sich nicht übertragen. Was Sie gespeichert haben, muss einmalig über Koordinaten oder Adresse neu aufgelöst werden.
Straßenansichten
Ein Gegenstück zu Street View haben wir nicht. Wenn Ihr Produkt darauf aufbaut, lassen Sie dieses Stück, wo es ist.
Wie Teams das üblicherweise machen
- 01
Schatten
Eine Woche lang eine Kopie des Produktivtraffics an beide senden. Für Nutzer ändert sich nichts.
- 02
Vergleich
Feld für Feld auf den Endpunkten vergleichen, die Sie wirklich nutzen. Meist finden Teams zwei oder drei echte Unterschiede, nicht zwanzig.
- 03
Aufteilen
5 % umlegen, dann 50 %, dabei Fehlerrate und Latenz je Region beobachten.
- 04
Umstellen
Den Rest umlegen, den alten Schlüssel zwei Wochen aktiv lassen, dann rotieren.
Parallelbetrieb
Schicken Sie einen Prozentsatz des Traffics an beide Anbieter und vergleichen Sie die Antworten. Die Konsole zeigt die Abweichungsraten je Feld und Endpunkt, sodass Sie auf Basis von Belegen umstellen statt auf Stichproben.
Später wieder gehen
Dieselben Tabellen liest man rückwärts, und ein Export-Endpunkt gibt Ihre Geofences, Stile und Batch-Ergebnisse in offenen Formaten zurück. Ein Migrationsleitfaden, der nur nach innen zeigt, ist ein Warnzeichen, kein Feature.
Checkliste für die Umstellung
- Rate-Limits auf dem neuen Schlüssel vor der Aufteilung angehoben, nicht danach
- Ausgabenlimit für den ersten vollen Monat gesetzt
- Gespeicherte Orts-IDs neu aufgelöst, falls Sie sie speichern
- Polyline-Decoder an einer bekannten Route geprüft
- Abdeckung für die Länder im langen Schwanz Ihres Traffics geprüft
- Alter Schlüssel rotiert und aus den Secrets entfernt