74 votes

Comment convertir une adresse en latitude/longitude ?

Comment dois-je procéder pour convertir une adresse ou une ville en latitude/longitude ? Existe-t-il des entreprises commerciales auprès desquelles je peux "louer" ce service ? Ce service serait utilisé dans une application commerciale de bureau sur un PC Windows avec un accès permanent à Internet.

1 votes

Semble être un double de stackoverflow.com/questions/158474/

5 votes

Chrétien : Le site Latitude tag est correctement orthographié. Voir : fr.wikipedia.org/wiki/Latitude

5voto

Abyss Knight Points 2095

Ayant déjà mis au point ma propre solution pour ce problème, je peux recommander de tout cœur l'approche suivante Geo::Coder::US Module Perl pour cela. Il suffit de télécharger toutes les données de recensement et d'utiliser l'importateur inclus pour créer la base de données Berkeley pour votre pays et de faire pointer le script Perl dessus. Utilisez l'analyse d'adresse intégrée au module, et voilà : Un système de géocodage hors ligne !

4voto

MilanA11 Points 16

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

Il s'agit d'un lien dans lequel, avec la méthode GET, vous enverrez une requête et obtiendrez les données de lat et de 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 String GET(String url) throws Exception {//GET Method
        String result = null;
        InputStream inputStream = null;
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);

        Log.v("ExecuteGET: ", httpGet.getRequestLine().toString());

        HttpResponse httpResponse = httpclient.execute(httpGet);
        inputStream = httpResponse.getEntity().getContent();
        if (inputStream != null) {
            result = convertInputStreamToString(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 String getLatLng(String accessToken) throws Exception{
        String query=StaticString.gLobalGoogleUrl+"json?address="+URLEncoder.encode(accessToken)+"&sensor=false";
        Log.v("GETGoogleGeocoder", query+"");
        return GET(query);
    }

gLobalGoogleUrl \= "http://maps.google.com/maps/api/geocode/"

3. Appelez la méthode getLatLng

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

4. Analyse de JSONObject

Maintenant résultat es JSONObject avec des informations sur l'adresse et la langue. Analyse de JSONObject (résultat) avec gson() . Après cela, utilisez lat,lng.

Si vous avez des questions sur le code, posez-les.

2voto

Vous voulez une application de géocodage. Celles-ci sont disponibles soit en ligne, soit en tant que backend d'application.

2voto

ian93 Points 723

Maptsraction ( http://www.mapstraction.com ) vous permet de choisir entre un nombre illimité de services de géocodage. Cela pourrait être utile si vous devez en faire de grandes quantités, car je sais que Google a une limite au nombre de géocodages que vous pouvez faire par jour.

2voto

Charles Graham Points 8132

Terre virtuelle le fait. Il existe également un service web à l'adresse geocoder.us

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X