Solution Python pour le téléchargement rapide de cartes de tuiles Tianditu

La bibliothèque tianditu-python est un outil open source conçu pour interagir avec les services géographiques de la plateforme nationale chinoise Tianditu. Elle permet de simplifier le téléchargement de tuiles de carte, l'extraction de points d'intérêt (POI) et la récupération de limites administratives grâce à une API intuitive.

Caractéristiques prnicipales

Cet outil encapsule les complexités liées aux requêtes directes, aux conversions de coordonnées et à la gestion des autorisations. Ses fonctionnalités incluent :

  • Téléchargement par lot de tuiles cartographiques pour une zone géographique définie par des coordonnées.
  • Récupération de POI (hôpitaux, écoles, etc.) via des catégorisations prédéfinies.
  • Accès aux frontières administratives des provinces, villes et districts au format géospatial.

Installation et configuration

La bibliothèque nécessite Python 3.6 ou supérieur. L'installation s'effectue via pip :

pip install tianditu-python

Un clé d'API valide, obtenue auprès du service Tianditu, est requise pour l'initialisation du client.

Exemples d'utilisation

Téléchargement de tuiles de carte

Le client initialise avec une clé d'API et permet de télécharger les tuiles pour une étendue géographique donnée et un niveau de zoom spécifié.

from tianditu import Tianditu

# Création du client avec la clé d'API
client_api = Tianditu(api_key='VOTRE_CLE_API')

# Paramètres de la zone à télécharger
coords_zone = {
    'lng_min': 120.09, 'lng_max': 120.15,
    'lat_min': 30.25, 'lat_max': 30.29,
    'zoom': 18,
    'destination': 'dossier_carte'
}

# Lancement du téléchargement
client_api.download_tiles(**coords_zone)

Acquisition de données administratives

Le module ez_region permet de récupérer les limites géographiquse des subdivisions administratives. L'exemple suivant télécharge le contour d'une province sous forme de données GeoJSON.

from tianditu.ez_region import download_region

# Code administratif de la province (exemple pour le Zhejiang)
code_admin = 330000
donnees_limite = download_region(adcode=code_admin, level='province')

Traitement et classification des éléments cartographiques

L'outil inclut des fonctions pour analyser les couleurs d'une image de carte fusionnée et séparer les éléments par couche (routes, cours d'eau, etc.).

from classify.groupIMG import img_color_cov

# Classification d'une image de carte en couches distinctes
img_color_cov(
    input_path='carte_fusionnee.png',
    output_dir='couches_classifiees'
)

Bonnes pratiques

Pour une utilisation robuste en production :

  • Stockez la clé d'API dans des variables d'environnement pour éviter de l'exposer dans le code source.
  • Lors du téléchargement massif de tuiles, limitez le nombre de requêtes concurrentes pour ne pas surcharger le serveur.
  • Implementez un mécanisme de cache local et une logique de nouvelle tentative pour gérer les erreurs réseau.

Le projet est sous licence Apache et les contributions sont les bienvenues. L'utilisation des services Tianditu doit respecter les réglementations nationales en matière d'information géographique.

Étiquettes: Tianditu Python GIS POI API

Publié le 13 juin à 17h56