Drop-in-Kompatibilität

Sie müssen diese API nicht lernen, um sie zu nutzen. Für siebzehn andere Geokodierungs- und IP-Abfrage-APIs betreiben wir einen Host, der das Anfrageformat des jeweiligen Anbieters akzeptiert und in dessen Antwortformat antwortet, mit unseren Daten dahinter. Dasselbe gilt für die JavaScript-Kartenbibliotheken, die diese Anbieter ausliefern. Die Migration ist eine Änderung des Hostnamens.

So funktioniert es

Jeder Drop-in-Host ist eine vollständige Implementierung der öffentlichen HTTP-Schnittstelle eines Anbieters: dieselben Pfade, dieselben Query-Parameter, dieselben JSON-Feldnamen, Verschachtelungen und Typen, dasselbe Status-Vokabular und dieselben Fehlerstrukturen. Die Werte stammen von uns. Ihr Client-Code, Ihr Parsing-Code und Ihre Fehlerbehandlung ändern sich nicht.

  1. Ändern Sie den Host. Aus maps.googleapis.com wird gapi.mygeocode.com, aus dev.virtualearth.net wird bing.mygeocode.com und so weiter. Die Tabelle unten enthält jedes Paar.
  2. Tauschen Sie den Schlüssel aus oder lassen Sie ihn weg. Setzen Sie Ihren My Geocode Schlüssel in den Parameter, den der alte Schlüssel verwendet hat (key, apiKey, access_token, token...). Jede Adresse erhält 2.500 kostenlose Anfragen pro Tag ohne Schlüssel, und jeder Schlüssel bringt eigene 2.500 mit, sodass Migration und Tests nichts kosten.
  3. Vergleichen Sie. Führen Sie eine Stichprobe echter Anfragen gegen beide Hosts aus. Koordinaten weichen leicht ab, weil die Daten andere sind; Feldnamen nicht.
Vorher
$ curl "https://maps.googleapis.com/maps/api/geocode/json?address=10+Downing+St+London&key=GOOGLE_KEY"
Nachher
$ curl "https://gapi.mygeocode.com/maps/api/geocode/json?address=10+Downing+St+London&key=MYGEOCODE_KEY"

Alle Drop-in-Hosts

Jeder Host läuft auf derselben Infrastruktur, mit denselben Daten, demselben kostenlosen Kontingent und denselben Preisen wie api.mygeocode.com. Klicken Sie auf einen Anbieter für seine Endpunktliste, eine Beispielantwort und die bekannten Unterschiede.

Anbieter und AbfragenUrsprünglicher HostDrop-in-HostSchlüsselparameter
Google Maps Platform
Geokodierung, Reverse, Autovervollständigung, Zeitzone, Höhe
maps.googleapis.comgapi.mygeocode.comkey
Bing Maps REST Services
Geokodierung, Reverse, Autovervollständigung, Zeitzone, Höhe
dev.virtualearth.netbing.mygeocode.comkey
HERE Geocoding and Search
Geokodierung, Reverse, Autovervollständigung
geocode.search.hereapi.com
revgeocode.search.hereapi.com
autosuggest.search.hereapi.com
autocomplete.search.hereapi.com
here.mygeocode.comapiKey
Mapbox Geocoding
Geokodierung, Reverse, Autovervollständigung
api.mapbox.commapbox.mygeocode.comaccess_token
Geocode.Farm
Geokodierung, Reverse
api.geocode.farm
www.geocode.farm
farm.mygeocode.comkey
OpenStreetMap Nominatim
Geokodierung, Reverse
nominatim.openstreetmap.orgosm.mygeocode.comkeiner; fügen Sie key oder den Header hinzu
OpenCage
Geokodierung, Reverse
api.opencagedata.comopencage.mygeocode.comkey
LocationIQ
Geokodierung, Reverse, Autovervollständigung, Zeitzone
us1.locationiq.com
eu1.locationiq.com
locationiq.mygeocode.comkey
Geoapify
Geokodierung, Reverse, Autovervollständigung, IP-Abfrage
api.geoapify.comgeoapify.mygeocode.comapiKey
TomTom Search
Geokodierung, Reverse, Autovervollständigung
api.tomtom.comtomtom.mygeocode.comkey
MapQuest Geocoding
Geokodierung, Reverse
www.mapquestapi.com
open.mapquestapi.com
mapquest.mygeocode.comkey
Geocodio
Geokodierung, Reverse
api.geocod.iogeocodio.mygeocode.comapi_key
PositionStack
Geokodierung, Reverse
api.positionstack.compositionstack.mygeocode.comaccess_key
ip-api.com
IP-Abfrage
ip-api.com
pro.ip-api.com
ipapi.mygeocode.comkey
ipinfo.io
IP-Abfrage
ipinfo.ioipinfo.mygeocode.comtoken
ipstack
IP-Abfrage
api.ipstack.comipstack.mygeocode.comaccess_key
Open-Elevation
Elevation
api.open-elevation.comopenelevation.mygeocode.comkeiner; fügen Sie key oder den Header hinzu

JavaScript-Kartenbibliotheken

Ein Anbieterwechsel tut im Browser am meisten weh, wo Karte, Geocoder-Widget und Abrechnung miteinander verflochten sind. Bei den folgenden Bibliotheken wird die Bibliothek selbst von unserem Host geladen (oder, bei MapLibre, Mapbox GL und Leaflet, per Konfiguration auf unseren Host verwiesen) und behält ihre öffentliche API: google.maps.Map, Microsoft.Maps.Map, H.Map und der Rest. Kacheln, Geokodierung, Autovervollständigung und Höhendaten kommen von uns. Kartenaufrufe und Kacheln sind kostenlos; Geokodierungsaufrufe zählen wie gewohnt.

BibliothekGeladen vonStattdessen laden vonWas weiter funktioniert
Google Maps JavaScript APImaps.googleapis.comgapi.mygeocode.comgoogle.maps.Map mit unseren Kacheln (Kartentypen roadmap, satellite und terrain)
Bing Maps V8 Web Controlwww.bing.combing.mygeocode.comMicrosoft.Maps.Map, Location, LocationRect, Pushpin, Infobox, Polyline, Polygon und Layer
Mapbox GL JS und mapbox-gl-geocodermapbox.mygeocode.comVektorkachel-Stile: streets, light, dark und outdoors, in der Mapbox Style Specification
Leaflet-Geocoder-Pluginstile.openstreetmap.orgtiles.mygeocode.comLeaflet Control Geocoder: die Geocoder nominatim, google, bing, mapbox, here, opencage, latLng und mapquest, jeweils auf den passenden www.mygeocode.com Host ausgerichtet
HERE Maps API für JavaScriptjs.api.here.comhere.mygeocode.comH.Map, H.map.Marker, H.map.Polyline, H.map.Polygon, H.map.Group
MapQuest.jsapi.mqcdn.commapquest.mygeocode.comL.mapquest.map und tileLayer (map, hybrid, satellite, light, dark)

Die Seite zu den JavaScript-Drop-ins enthält die Vorher-nachher-Snippets, die Liste dessen, was für jede Bibliothek enthalten ist und was nicht, sowie die Kachel- und Style-URLs.

Wohin der Schlüssel gehört

Jeder Host akzeptiert den Schlüssel an der Stelle, an der der ursprüngliche Anbieter ihn erwartet, und außerdem im Header X-API-Key. Ein Schlüssel ist optional: 2.500 Anfragen pro Tag und Adresse brauchen keinen. Ein kostenloser ist in einer Minute erstellt und bringt Guthaben, Pakete und einen Nutzungsverlauf. Ein nutzungsbasierter Schlüssel darf von zwei IP-Adressen innerhalb von rollierenden 24 Stunden verwendet werden und ein Unlimited-Schlüssel von drei; für mehr Adressen nutzen Sie mehr Schlüssel oder Pakete (siehe Authentifizierung).

ParameterVerwendet von
keyGoogle Maps, Bing Maps, Geocode.Farm, OpenCage, LocationIQ, TomTom, MapQuest, ip-api (Pro-Version)
apiKeyHERE, Geoapify
access_tokenMapbox
api_keyGeocodio
access_keyPositionStack, ipstack
token oder Authorization: Beareripinfo, HERE
keinerNominatim, Open-Elevation. Fügen Sie key=... zur Query hinzu oder senden Sie den Header X-API-Key.

Kontingent und Fehler auf den Drop-in-Hosts

Das Tageskontingent ist dasselbe wie überall sonst und wird pro Schlüssel gezählt, oder pro Adresse, wenn kein Schlüssel gesendet wird, über api.mygeocode.com und alle Drop-in-Hosts hinweg: 2.500 kostenlos pro Tag, danach Guthaben oder ein Unlimited-Schlüssel. Die Header X-Quota-* und X-Key-IPs-* werden auf jedem Host gesendet, sodass Sie den tatsächlichen Stand unabhängig vom Body-Format aus den Headern lesen können. Im Body werden Limits so gemeldet, wie der Anbieter sie meldet:

HostKein Guthaben mehr (402)Ungültiger, fehlender oder IP-beschränkter SchlüsselUngültige Anfrage
gapi.mygeocode.comHTTP 200, "status": "OVER_QUERY_LIMIT""status": "REQUEST_DENIED""status": "INVALID_REQUEST"
bing.mygeocode.com"statusCode": 429 in der Hülle"statusCode": 401, authenticationResultCode: InvalidCredentials"statusCode": 400 mit errorDetails
here.mygeocode.comHTTP 429, {"title": "Too Many Requests", "status": 429}HTTP 401 mit error_descriptionHTTP 400 mit title und cause
mapbox.mygeocode.comHTTP 429, {"message": "Rate limit exceeded"}HTTP 401, {"message": "Not Authorized - Invalid Token"}HTTP 422 mit message
osm.mygeocode.comHTTP 429, {"error": {"code": 429, "message": "..."}}Nicht zutreffendHTTP 400, {"error": {"code": 400, "message": "..."}}
ipapi.mygeocode.comHTTP 200, {"status": "fail", "message": "quota"}{"status": "fail", "message": "invalid key"}{"status": "fail", "message": "invalid query"}
AndereWie vom Anbieter dokumentiert; siehe die Seite des jeweiligen Hosts

Was übereinstimmt und was nicht

Identisch

  • Pfade, Methoden und Query-Parameter, die der Anbieter dokumentiert.
  • Antwortstruktur: Feldnamen, Verschachtelung, Arrays, Typen, Reihenfolge der Koordinaten (einschließlich [lon, lat] bei Mapbox).
  • Status- und Konfidenz-Vokabular (ROOFTOP, High, houseNumber, EXACT_MATCH...), abgeleitet aus unseren Werten precision und confidence.
  • Fehlerstrukturen, damit die bestehende Fehlerbehandlung weiter funktioniert.
  • Preise und Kontingent: keine Zusatzkosten für die Nutzung eines Drop-in-Hosts.

Anders

  • Die Daten. Koordinaten, formatierte Zeichenketten und Konfidenzwerte stammen von uns und stimmen nicht Ziffer für Ziffer mit dem Original überein. Die Abdeckung auf Hausnummernebene unterscheidet sich je nach Land; siehe Abdeckung.
  • Kennungen. Place-IDs stammen von uns und sind stabil, können aber nicht an den ursprünglichen Anbieter gesendet werden.
  • Alles außerhalb von Geokodierung, Autovervollständigung, IP, Zeitzone und Höhe: Routing, Ortsdetails, Fotos, Verkehr, Street View. Die Seite jedes Hosts listet auf, was fehlt.
  • Schlüssel: zwei IP-Adressen innerhalb von rollierenden 24 Stunden bei einem nutzungsbasierten Schlüssel, drei bei einem Unlimited-Schlüssel, genau wie bei unseren eigenen Endpunkten.

Checkliste für die Migration

  1. Durchsuchen Sie Ihren Code und Ihre Konfiguration nach dem Hostnamen des Anbieters. Er steht oft an mehr als einer Stelle: Servercode, mobile Apps, eine CDN-Regel, eine zwischengespeicherte Konfiguration.
  2. Ändern Sie ihn in den Drop-in-Host aus der obigen Tabelle. Behalten Sie den Pfad bei.
  3. Ersetzen Sie den Schlüssel durch einen My Geocode Schlüssel. Verwenden Sie einen Schlüssel pro Server oder höchstens pro zwei Servern; ein nutzungsbasierter Schlüssel akzeptiert zwei IP-Adressen innerhalb von rollierenden 24 Stunden, ein Unlimited-Schlüssel drei.
  4. Führen Sie Ihre bestehende Testsuite aus. Sie sollte unverändert durchlaufen. Wenn ein Feld fehlt, auf das Sie angewiesen sind, prüfen Sie die Seite des Hosts auf bekannte Lücken und sagen Sie uns Bescheid.
  5. Spielen Sie einige hundert echte Anfragen gegen beide Hosts ab und vergleichen Sie die Koordinaten und die Felder, die Sie anzeigen. Achten Sie auf precision, wo der Drop-in-Host es ausgibt (als location_type, accuracy, resultType und so weiter).
  6. Beobachten Sie X-Quota-Used einen Tag lang, um Ihren Tarif zu bemessen: Guthaben unter etwa 19.000 Anfragen pro Tag, darüber ein Unlimited-Schlüssel.
  7. Kündigen Sie die alte Abrechnung.

SDKs der Anbieter

Die meisten offiziellen Client-Bibliotheken akzeptieren eine eigene Basis-URL und funktionieren daher auch mit den Drop-in-Hosts: die Google Maps Services Clients (googlemaps für Python, @googlemaps/google-maps-services-js), die Mapbox SDKs (Option origin), die REST-Clients von HERE, die Bibliotheken von ipinfo und Nominatim-Wrapper wie geopy (domain=). Richten Sie sie auf den Host aus der Tabelle aus und übergeben Sie Ihren My Geocode Schlüssel dort, wo der Schlüssel des Anbieters stand.

Ein Anbieter, der nicht aufgeführt ist

Einen Host hinzuzufügen ist einige Tage Arbeit, wenn das Format des Anbieters dokumentiert ist. Wenn Sie einen Dienst nutzen, der hier fehlt, sagen Sie uns, welchen und wie viele Anfragen pro Tag Sie ungefähr senden. Die letzten Neuzugänge gingen alle auf Wünsche von Nutzern zurück.