Comment convertir une adresse en latitude / longitude?

Comment ferais-je pour convertir une adresse ou une ville en latitude / longitude? Y a-t-il des tenues commerciales sur lesquelles je peux “louer” ce service? Cela serait utilisé dans une application de bureau commerciale sur un PC Windows avec un access Internet à temps plein.

Google dispose d’une API de géocodage qui semble fonctionner assez bien pour la plupart des emplacements pour lesquels ils disposent de données Google Maps.

http://googlemapsapi.blogspot.com/2006/06/geocoding-at-last.html

Ils fournissent un géocodage en ligne (via JavaScript):

http://code.google.com/apis/maps/documentation/services.html#Geocoding

Ou géocodage backend (via une requête HTTP):

http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct

Les données sont généralement les mêmes que celles utilisées par Google Maps. (notez qu’il y a quelques exceptions à cette règle, comme le Royaume-Uni ou Israël, où les données proviennent d’une source différente et d’une qualité légèrement réduite)

Rien de nouveau à append, mais j’ai déjà beaucoup d’expérience du SIG et du géocodage dans un travail précédent. Voici ce dont je me souviens:

Si votre application a besoin de temps en temps, je recommanderais sans aucun doute les API Google ou Yahoo Geocoding, mais veillez à lire les termes de la licence.

Je sais que l’API Google Maps en général est facile à licencier, même pour les pages Web commerciales, mais ne peut être utilisée dans une situation d’access payant. En d’autres termes, vous pouvez l’utiliser pour faire de la publicité ou fournir un service qui génère des revenus publicitaires, mais vous ne pouvez pas facturer des personnes pour accéder à votre site ou même le placer derrière un système de mots de passe.

En dépit de ces ressortingctions, ils sont tous deux d’excellents choix car ils mettent fréquemment à jour leurs bases de données de rues. La plupart des bibliothèques et des outils backend gratuits utilisent les données routières de Recensement et TIGER qui sont rarement mises à jour. Vous êtes donc moins susceptible de géocoder avec succès des adresses dans des zones en croissance rapide ou de nouvelles subdivisions.

La plupart des services limitent également le nombre de requêtes de géocodage que vous pouvez effectuer chaque jour. Vous pouvez donc rechercher des adresses de nouveaux clients, par exemple, ajoutés à votre firebase database, mais si vous exécutez une tâche par lots contenant des milliers d’adresses. votre firebase database dans le géocodeur, vous allez vous faire arrêter.

Je ne pense pas que celui-ci a déjà été mentionné, mais ESRI a des services Web ArcWeb qui incluent le géocodage, bien qu’ils ne soient pas très bon marché. La dernière fois que je les ai utilisées, cela coûtait environ 1,5 centimes par consultation, mais vous deviez payer un certain montant pour commencer. Encore une fois, le principal avantage est que les données routières qu’ils utilisent sont actualisées en temps utile et que vous pouvez utiliser les données dans des situations commerciales que Google n’autorise pas. Le service ArcWeb fournira également des photos satellite et aériennes haute résolution sur Google Maps, à nouveau tarifées par demande.

Si vous souhaitez déployer vos propres données ou accéder à des données beaucoup plus précises, vous pouvez acheter des abonnements à des données SIG d’entresockets comme TeleAtlas , mais ce n’est pas bon marché. Vous pouvez acheter uniquement un état ou un comté de données si vos besoins sont extrêmement locaux. Il existe plusieurs niveaux de données: les fonctionnalités SIG uniquement, les SIG plus les rues détaillées, tout cela, plus les données de géocodage, tout cela, ainsi que les limites de circulation / direction / vitesse pour le routage. Bien sûr, le prix augmente à mesure que vous montez les niveaux.

Enfin, l’article de Wikipedia sur le géocodage contient de bonnes informations sur les algorithmes et les techniques. Même si vous ne le faites pas dans votre propre code, il est utile de connaître le type d’erreurs et de précision que vous pouvez attendre de différents types de sources de données.

Yahoo! Maps Web Services – Contrairement à l’API de Google, l’API de géocodage géocode avec précision les codes postaux du Royaume-Uni.

Malheureusement, Yahoo a déprécié ce service, vous pouvez visiter http://developer.yahoo.com/geo/placefinder/ pour le service de Yahoo

Lorsque vous convertissez une adresse ou un object en lat / long, cela s’appelle le géocodage.

Il existe de nombreuses solutions de géocodage. La solution adaptée à votre projet dépendra de l’acceptabilité des conditions de licence de chaque solution de géocodage. Microsoft Virtual Earth et Google Maps offrent tous deux des solutions gratuites à utiliser sous une licence très ressortingctive …

http://code.google.com/apis/maps/documentation/services.html

http://www.microsoft.com/virtualearth/product/faq.aspx

Après avoir déployé ma propre solution pour cela, je peux recommander sans réserve le module Geo :: Coder :: US Perl pour cela. Téléchargez simplement toutes les données du recensement et utilisez l’importateur inclus pour créer la firebase database Berkeley pour votre pays et y pointer le script Perl. Utilisez l’parsing syntaxique intégrée du module, et voilà: un système de géocodage hors ligne!

Essayez avec ce code, je travaille comme ça avec des adresses:

C’est un lien dans lequel, avec la méthode GET, vous allez envoyer une requête et obtenir lat et lng. http://maps.google.com/maps/api/geocode/json?address=YOUR ADDRES & sensor = false

Par exemple: http://maps.google.com/maps/api/geocode/json?address=W Main St, Bergenfield, NJ 07621 & sensor = false

1. Créez votre méthode GET.

public static Ssortingng GET(Ssortingng url) throws Exception {//GET Method Ssortingng result = null; InputStream inputStream = null; try { HttpClient httpclient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); Log.v("ExecuteGET: ", httpGet.getRequestLine().toSsortingng()); HttpResponse httpResponse = httpclient.execute(httpGet); inputStream = httpResponse.getEntity().getContent(); if (inputStream != null) { result = convertInputStreamToSsortingng(inputStream); Log.v("Result: ", "result\n" + result); } } catch (Exception e) { e.printStackTrace(); } return result; } 

2. Créer une méthode pour envoyer la demande

 @SuppressWarnings("deprecation") public static Ssortingng getLatLng(Ssortingng accessToken) throws Exception{ Ssortingng query=StaticSsortingng.gLobalGoogleUrl+"json?address="+URLEncoder.encode(accessToken)+"&sensor=false"; Log.v("GETGoogleGeocoder", query+""); return GET(query); } 

gLobalGoogleUrl = “http://maps.google.com/maps/api/geocode/”

3. méthode d’appel getLatLng

 Ssortingng result=getLatLng("W Main St, Bergenfield, NJ 07621"); 

4. Analyser JSONObject

Le résultat est maintenant JSONObject avec des informations sur address et lan, lng. Analyser JSONObject (result) avec gson () . Après cela, utilisez lat, lng.

Si vous avez des questions sur le code, demandez.

Vous voulez une application de géocodage. Ceux-ci sont disponibles en ligne ou en tant que backend d’application.

  • Applications en ligne:

    • Google dispose d’une API de géocodage
  • Applications backend:

    • GeoStan

Maptsraction ( http://www.mapstraction.com ) vous permet de choisir parmi un nombre quelconque de services de géocodage. Cela pourrait être utile si vous devez faire de grandes quantités, car je sais que Google a une limite au nombre de tâches que vous pouvez effectuer chaque jour.

La Terre virtuelle le fait. Il existe également un service Web sur geocoder.us

Vous pouvez également essayer le nom de domaine OpenStreetMap NameFinder (ou le Nominatim actuel), qui contient des données de rue open source, de type wiki, pour (potentiellement) le monde entier.

vous pouvez utiliser les services de bing maps soap, où vous pouvez référencer le service de géocodage inversé pour trouver lat / long à partir de l’adresse, voici le lien http://msdn.microsoft.com/en-us/library/cc980922.aspx

Yahoo! Maps Web Services – API de géocodage

USC WebGIS Geocoder est gratuit et propose plusieurs API. Vous pouvez également télécharger une firebase database pour un traitement par lots en ligne.

Vous pouvez utiliser les services Web MapPoint de Microsoft.

J’ai créé une entrée de blog sur la conversion d’une adresse en GeoCode (lat / long).

Je pensais append un de plus à la liste. Texas A & M propose un service très abordable: http://geoservices.tamu.edu/Services/Geocode/

Une bonne option si vous avez un assez grand nombre d’adresses à géocoder et que vous ne voulez pas envoyer de messages 10k à Google ou à Microsoft. Nous avons fini par utiliser les données renvoyées dans une carte Google.

vous demandez à propos de Geocoder. Google fournit une API pour cela. Il en va de même pour un autre fournisseur.

vous pouvez voir la démonstration de l’implémentation dans My Current Location .net

Si vous avez besoin d’une solution unique, vous pouvez essayer: https://addresstolatlong.com/

Je l’ai utilisé depuis longtemps et cela a très bien fonctionné pour moi.