Avec Google dévalorisant leur API v2 géocodage la Cette année, il y aura une tonne de gens qui migreront leur logique de géocodage vers v3 et cette question va se poser: Comment mapper la chaîne 'location_type' à une 'exactitude' équivalente?
Voici une carte décente:
"ROOFTOP" -> 9
[Everything else] -> 4 to 8 (aka the text string might as well read "GARBAGE")
Si autre chose que TOITURE est spécifié, utilisez la zone du « nord-est » et « ouest » pour décider s'il est assez précis pour vous.
Maintenant, que devrait-il se passer si vous n'obtenez pas quelque chose de «précis»? Exécutez une requête de recherche de texte Google Adresses pour la même adresse.Google Adresses effectue également le géocodage et, avec la facturation activée, vous pouvez obtenir 10 000 requêtes de recherche de texte par jour (sans limite de tarif) et Google affirme qu'elles ne factureront pas la carte (elles l'utilisent uniquement pour vérifier le compte). Avec la facturation, vous obtenez 100 000 requêtes, mais les requêtes de recherche de texte Places ont un «coût» de 10 fois le montant d'une requête Places régulière, d'où la limite de 10 000 susmentionnée. Les lieux peuvent être fastidieux et vous ne devriez considérer les réponses qu'avec un seul résultat. Parfois, les requêtes Google Adresses ne renvoient pas de code postal, en particulier si aucune n'est envoyée. Si vous avez besoin du code postal, prenez les résultats lat/lng de la requête Places et renvoyez-le dans le géocodeur, qui crachera généralement une adresse avec un code postal (et très souvent une correspondance ROOFTOP).
Il convient de noter que la limite de courtoisie officielle de l'API de géocodage est de 2 500 demandes par jour avec une limite de débit d'une par seconde par adresse IP. Par conséquent, en suivant la formule ci-dessus va probablement décimer et peut même réduire de moitié le nombre de géocodages à votre disposition.
Si vous avez besoin de plus que la limite de Google Géocodage (qui n'en a pas?), Inventez votre propre mini service de géocodage avec quelque chose comme la base de données OpenStreetMap. Clonez les parties d'OpenStreetMap dont vous avez besoin et écrivez votre propre géocodeur (ou utilisez une bibliothèque). Ensuite, vous pouvez géocoder le contenu de votre cœur sans limite de quantité ou de taux. Si vous utilisez toujours Google Maps, vous pouvez utiliser le géocodeur de Google comme solution de repli si le géocodeur OSM n'est pas suffisamment précis pour tous les cas. Alternativement, si vous faites confiance à vos utilisateurs pour qu'ils ne soumettent pas (vraiment?) De fausses données et qu'ils utilisent le service de géocodage Google, vous pouvez également abuser du navigateur Web d'un utilisateur en lui fournissant des informations de géocodage. à votre serveur. Vous risquez d'épuiser la limite quotidienne de l'utilisateur et vous risquez que quelqu'un pousse des données fausses, mais si vous vous occupez de tous ces problèmes, vous en souciez-vous? Quoi qu'il en soit, les conseils ci-dessus devraient suffire pour une utilisation provisoire pour la plupart des utilisateurs afin de faire fonctionner une API v3 fonctionnelle. Ran dans ce problème moi-même, donc pensé que je partagerais avec la communauté une solution à mi-chemin décent. Je pense toujours que v2 était la meilleure API - les cotes d'exactitude des entiers au lieu des chaînes de texte laides gagnent toujours.
Pour les numéros, ils ne correspondent pas directement. Je viens de rencontrer une adresse qui donne une précision de 6 avec V2 et GEOMETRIC_CENTER avec V3. Cartes agaçantes lui-même peut donner un match sur le toit. – Ryaner