2010-07-20 5 views
6

Geocoder getFromLocationName ne renvoie rien si je recherche des lieux commerciaux. Voici mes conclusions à ce jour:Geocoder getFromLocationName ne trouve pas l'adresse

  • lieux d'alimentation, bâtiments commerciaux -> aucun résultat
  • écoles -> trouver des résultats, mais seulement le retour Latitude et Longitude. Je dois faire le géocodage inverse afin d'obtenir l'adresse basée sur les coordonnées, mais l'adresse ne serait pas exacte.
  • adresse complète -> même que l'école, que le retour Latitude et Longitude
  • hôpital et pharmacie -> retour Latitude et Longitude

J'ai testé cela sur 1.6, 2.1 et 2.2 des appareils qui a Google Maps .

J'essaie de trouver s'il y a une limitation expliqué quelque part sur le SDK, mais il n'y a aucune exception:

La quantité de détails dans un revers Description de l'emplacement géocodées peut varier, par exemple un peut contenir l'adresse complète de l'immeuble le plus proche , tandis qu'une autre peut contenir seulement un nom de ville et le code postal. La classe Geocoder nécessite un service backend qui n'est pas inclus dans le framework android core . Les méthodes de requête de géocodage renverra une liste vide s'il n'y a pas de service de back-end dans la plate-forme (http://developer.android.com/reference/android/location/Geocoder.html)

[mise à jour] Donc, après des nuits de recherche, je ne peux pas semble faire travail - Google ne me donnera simplement pas le résultat. Une discussion sur android-developers pointe le fait que getFromBusinessName a été omis lors de la sortie de Google Navigation. Je commence donc à supposer que Google retire une partie de son service de géocodage.

Je peux toujours créer une page Web qui utilise l'API de Google Geocoder, mais sa limite est limitée à 2500 api - et je ne pense pas que ce soit légal (lol). Alors, quelles sont mes alternatives ici?

+0

Avez-vous trouvé une réponse? Ou quelque chose pour contourner ce problème? J'ai essayé de trouver un service web ou quelque chose comme ça, mais quelque chose de gratuit pour la recherche d'entreprise n'est pas si facile à trouver. En outre, SOAP est une vraie merde à utiliser sur Android, même avec Ksaop. Regardez ce que je trouve dans mon LogCat: Pour la recherche d'affaires, j'ai cette erreur: * LocationMasfClient forwardGeocode():. Pas de fonctionnalité dans GLocation * Mais pour la recherche exacte, quand je demande mon adresse, cette erreur n'est pas présente! –

+0

Oui, les écoles, les bâtiments publics non commerciaux/non commerciaux sont généralement là. Cependant, il ne renvoie que la latitude/longitude, pas l'adresse. Donc, si je cherche mon adresse, il retournera une coordonnée. Si j'inverse le géocodage de cette coordonnée, j'obtiendrai une adresse différente. C'est juste si faux ... Pas d'autre alternative, je commence à regarder http://simplegeo.com cependant. Faites-moi savoir votre conclusion! – LawrenceGS

+0

J'ai le même problème même si je ne suis pas à la recherche d'une adresse professionnelle, mais d'une adresse générale spécifique. – Yar

Répondre

1

J'ai rencontré le même problème. Je trouve que l'API de géocodage ne renvoie souvent aucun résultat si j'inclue le nom de l'entreprise/du lieu, mais en l'omettant, le lat/long peut être beaucoup moins précis.

J'ai mis en place une solution pragmatique: 1. Appelez l'API avec une chaîne dont le nom d'entreprise/lieu 2. Si elle échoue, appelez une deuxième fois sans le nom d'entreprise/lieu, juste l'adresse

Je n'ai pas encore vu un cas où aucun emplacement n'est retourné, donc cela semble un compromis décent car cela signifie que je reçois au moins des données de localisation, parfois moins précises, et le coût d'un second appel d'API est atténué appels filetés.

+0

L'appelez-vous en utilisant getFromLocationName? – LawrenceGS

0

Essayez cette approche:

1) Utilisez géocodage pour convertir la latitude-longitude pour répondre
2) Faire un appel API à Whitepages (ou un service similaire), plus précisément la méthode de reverse_address qui vous obtenir le nom de l'entreprise pour l'adresse mentionnée.