Dans cet article, je vais vous présenter une bibliothèque Python appelée Geopy. C’est un package de géocodage

Qu’est-ce Que Le Géocodage ?

Geopy est un client Python pour de nombreux services Web courants pour le géocodage, ce qui facilite la localisation des coordonnées d’une adresse, d’une ville ou d’un pays pour les développeurs Python, et vice versa.

Il utilise des géocodeurs tiers et d’autres sources de données pour trouver les coordonnées d’adresses, de villes, de continents et de points de repère dans le monde entier.

Le géocodage est la méthode de traduction d’une définition de position (telle qu’une adresse physique ou un nom d’emplacement) en une paire de latitude et de longitude pour cet emplacement à la surface de la Terre.

Services De Géocodage Pour Les Applications D’entreprise

Il existe de nombreux services de géocodage disponibles sur le marché. J’ai essayé GeocodeAPI et ils fonctionnent très bien pour les applications d’entreprise. Ils ont plusieurs points de terminaison pour obtenir la lat-long à partir de l’adresse, du géocodage inversé et de l’adresse de saisie semi-automatique.

Ils fournissent 10 000 demandes gratuites par jour, ce qui est très bien si vous commencez tout juste à créer votre application. Vous pouvez obtenir plus de détails sur leurs fonctionnalités et leurs tarifs sur cette page.

Installation

Nous pouvons installer et utiliser Geopy dès la sortie de la boîte :

pip installer geopy

Et nous allons importer le package, ainsi que quelques autres packages importants :

de geopy.geocodeurs importer Nominatim
importer des pandas au format pd

Créer Un Nouvel Agent Utilisateur

Nominatim est un outil pour rechercher des données OpenStreetMap par nom et adresse (géocodage).

OpenStreetMap est une carte du monde, qui a été créée en tant que logiciel open source par des internautes. Nous allons donc créer un nouvel objet api pour accéder au client nominatim :

app = Nominatim(user_agent="JournalDev")

Affichage De L’emplacement D’une Région

Alors maintenant, nous sommes prêts à obtenir les détails de l’emplacement de n’importe quel endroit dans le monde. Nous pouvons utiliser le client d’application que nous avons créé pour y accéder :

location = app.geocode("Kolkata, Inde")
emplacement

ce qui nous donne la sortie comme:

Emplacement (Kolkata, Howrah, Bengale occidental, 711101, Inde, (22.5414185, 88.35769124388872, 0.0))

Nous pouvons à la place obtenir un dictionnaire, que nous pouvons ensuite utiliser comme dataframe !

Cependant, pour une raison quelconque lors de la conversion du dictionnaire en dataframe, cela donne lieu à de faux tuples, nous devons donc gérer cela :

location = app.geocode("Kolkata, Inde").raw
pd.DataFrame(location).head 

ce qui nous donne :

Coordonnées de l’emplacement de sortie géographique

Récupération Automatique D’une Liste D’adresses

Nous pourrions donc procéder une par une pour chaque adresse, mais dans les grandes institutions, vous auriez généralement besoin de milliers d’adresses récupérées à la fois.

Faisons une liste d’adresses :

liste_adresses = 
 plus comme tu veux

Maintenant, nous allons exécuter une boucle. Souvent, l’API openstreetmap ne permet pas à un bot d’accéder à leurs données en continu car leurs serveurs se bloquent. Nous devons donc mettre des temporisateurs d’attente pour éviter les erreurs :

pour l'adresse dans address_list :
 essayer:
 le sommeil de temps 
 loc = app.geocode(adresse).raw
 df = df.append ignore_index=True)
 sauf exception comme e :
 imprimer(e)

Maintenant, cela va ajouter les données à notre dataframe d’origine :

Listes de coordonnées d’emplacement de sortie géographique

Recherche Inversée D’une Coordonnée

Il permet également à l’utilisateur d’inverser la recherche d’une paire de coordonnées (en degrés décimaux) :

app.reverse((37.234332396,-115.80666344), language='salut').raw

nous donnera (dans la langue de notre choix) :

Géopy en hindi

Trouver La Distance

Nous pouvons trouver la distance entre deux endroits en km ou en miles, en utilisant :

de geopy.distance importer la géodésique
Kolkata = (df ,df )
goregon = (df ,df )
print("En kms : ",geodesic(kolkata,goregaon).km)
print("En miles : ",geodesic(kolkata,goregaon).miles)

ce qui nous donne :

En km : 1655.7023089773734

En milles : 1028.805717719377

Note De Fin

Linux Mint 17.2 “Rafaela”
  • Update Manager, It shows more information, it looks better, it feels faster, and...
  • Driver Manager, The Driver Manager is now able to install drivers without a...
  • Login Screen, Multi-monitor support was improved:
  • Language Settings, A new "Language Settings" tool was introduced. It replaces...
  • Menu Improvements, The menu applet received two mintMenu features: Right-click...
Site Athletics A Real Professional in Linux 1 Guaranteed 2 Hoodie Dark Silver
  • Good hoodie with good standards of quality.
  • Wash Cold, Dry Low.
  • The final product is made of 100% cotton.
  • This is a very comfortable hoodie to wear and also perfect as a gift to your...
  • High printing quality as well.
Linux Academy
  • Complete Linux Academy Courses!
  • Save videos for offline viewing!
  • Use notecards to increase learning!
  • English (Langue de Publication)
Promo
Linux All-in-One For Dummies
  • English (Langue de Publication)
  • Éditeur: For Dummies
Promo
The Linux Programming Interface: A Linux and UNIX System Programming Handbook
  • No Starch Press
  • Hardcover Book
  • English (Langue de Publication)
  • Éditeur: No Starch Press
UNIX and Linux System Administration Handbook (5th Edition)
  • English (Langue de Publication)
  • Éditeur: Addison-Wesley Professional
Linux
  • English (Langue de Publication)
  • Éditeur: QuickStudy
Promo
The Linux Command Line, 2nd Edition: A Complete Introduction
  • English (Langue de Publication)
  • Éditeur: No Starch Press