Parfois, lorsque j'essaie d'utiliser la clé d'API Google MAPS) pour obtenir une URL permettant de tracer une "polyligne", un message d'erreur s'affiche dans mes journaux:
"error_message": "L'accès sans clé à la plateforme Google Maps est obsolète. Veuillez utiliser une clé d'API avec tous vos appels d'API pour éviter toute interruption du service. Pour plus d'informations, consultez le site http://g.co/dev/maps-no-account. "," routes ": []," status ":" OVER_QUERY_LIMIT "
J'ai ceci dans mon manifeste:
<meta-data
Android:name="com.google.Android.geo.API_KEY"
Android:value="MY_GOOGLE_MAPS_API_KEY" />
En outre, cette clé API 'activée' dans ma console API et elle est limitée à Google Maps Android SDK et API de routage. La facturation est également activée pour ma console Google API mais cette erreur persiste. quelquefois.
Depuis le 11 juin 2018, Google a commencé à imposer l'utilisation de clés API. L'utilisation sans clé entraînera une expérience dégradée ou une erreur comme OVER_DAILY_LIMIT et OVER_QUERY_LIMIT.
Source: Mises à jour importantes de la plateforme Google Maps
Mettre la clé API dans l'URL comme ceci est une bonne solution:
String url = "https://maps.googleapis.com/maps/api/directions/"+output+"?"+parameters + "&key=" + MY_API_KEY
Mais assurez-vous que vos restrictions de clé sont bien configurées. Si vous avez restreint la clé à votre application, il est possible que cela ne fonctionne pas car les demandes effectuées via HTTP sont liées à votre adresse IP. Cela signifie que même si vous avez correctement configuré votre Android application et votre manifeste, il peut en résulter un ACCESS_DENIED. Cela peut être vérifié en modifiant votre restriction.
Exemple de non-restriction à des fins de test:
Pour plus de détails sur les clés d’API et les restrictions: Guide rapide pour obtenir une clé
Pour ceux qui utilisent bibliothèque de direction de jd-alexander , n'oubliez pas d'ajouter la clé api au constructeur de routage:
Routing routing = new Routing.Builder()
.travelMode(/* Travel Mode */)
.withListener(/* Listener that delivers routing results.*/)
.waypoints(/*waypoints*/)
.key(/*api key for quota management*/)
.build();
routing.execute();
Si quelqu'un utilise bibliothèque Google Directions de jd-alexander , utilisez la clé Google API comme ci-dessous.
Routing routing = new Routing.Builder()
.key(YOUR_KEY)
.travelMode(AbstractRouting.TravelMode.DRIVING)
.withListener(this)
.alternativeRoutes(false)
.waypoints(SourceLatLng, DestinationLatLng)
.build();
routing.execute();
Si vous avez des doutes n'hésitez pas à laisser un commentaire.