#TeamOpenData

Génération fichier image carto

Bonjour,

J’ai une demande un peu spéciale, j’espère que des spécialistes SIG/carto/data auront des pistes de réponse.
Pour un outil qui fonctionne coté serveur, je génère des images (sous forme de fichier) cartographiques avec des layers représentant des POI ou des shapes sur différentes thématiques.
Pour cela j’utilise l’API static image de Mapbox.

Problème : j’arrive à la limite de celle-ci, et pour certaines shapes, ou paths qui contiennent beaucoup de points, je suis bloqué par la limite de la longueur des URL imposée par Mapbox :

The maximum URL length that our APIs accept before returning a HTTP 414 URI too long response status code is an 8,192 byte limit imposed by AWS CloudFront, our CDN.

Connaissez-vous un autre outil capable de faire cela (générer des images sans UI) ?
Ou un moyen de contourner cette limite ?

(j’ai testé les algo de simplification des geojson, mais cela ne les simplifie pas assez par rapport à la limite de longueur d’URL, ou bien trop et les tracés sont trop imprécis)

Bonjour,

L’Open Static Map API v5 de MapQuest offre une alternative intéressante à celle proposée par Mapbox. Après génération d’une clé sur https://developer.mapquest.com la version gratuite permet 15 000 transactions par mois. Le fonctionnement de l’API est documenté ici : https://developer.mapquest.com/documentation/static-map-api/v5/ (les images statiques publiées en exemples sont cassées car les url n’ont pas de key renseignée). Il est possible d’intégrer des Locations ou des Shapes dans les images mais je ne sais pas si la longeur des urls est limitée comme chez Mapbox … Exemple de génération d’image avec plusieurs POI

Si cette solution ne convient pas à votre besoin, vous pouvez toujours vous rabattre sur la Maps Static API de Google :sweat_smile:

1 Like

Tout dépend en fait de votre usage … Les outils de type API pour la génération automatique d’images cartographiques sont particulièrement adaptés pour créer de nombreuses mini-cartes statiques comprenant peu de géométries spatiales. Voir, par exemple, les mini-cartes de localisation dans cette collection de photographies. En revanche, si vous souhaitez créer peu de cartes (combien de thématiques ?) avec de nombreux POI et/ou Shapes, vous pouvez utiliser des outils « manuels » comme PDF Map Maker. Ce petit utilitaire en ligne permet de produire rapidement une carte en PDF à partir de couches cartographiques (OSM/Mapbox) complétées par des géométries au format GeoJSON (onglet « Layer »).

@loichay merci pour votre retour.
Sur les dernières questions, il n’y a pas beaucoup de cartes, mais elles sont produites dans le cadre d’un outil qui les réutilise ensuite de manière automatisée. Il n’est donc pas possible de les faire à la main.

Pour être plus concret, voici un exemple :
pour afficher les lignes électriques mises en opendata par ENEDIS.
Voici ce qu’on peut obtenir en utilisant leur outil en ligne (basé sur Leaflet) avec ces données :

En utilisant ces données j’aimerais en afficher seulement une partie sur ma carte, avec ce genre d’appel à Mapbox.
Hélas, le lien précédent fait déjà plus de 7000 caractères et vous voyez bien qu’il manque un paquet de lignes :
mapbox

Certes, la source est un peu complexe et beaucoup de lignes se chevauchent… Elle pourrait être simplifiée pour mon utilisation, mais ce n’est qu’un exemple, j’ai d’autres données qui arrivent aussi à cette limite.

Je voulais tester Mapquest, qui semble prometteur, mais j’ai trouvé ceci sur leur forum :

There is an HTTP URL length limit which is 2048 characters,

Pour tester j’ai essayé d’ajouter des points à votre exemple, cela fonctionne jusqu’à un certain moment
Surtout, j’ai remarqué en bas de l’image généré qu’en fait Mapquest utilise Mapbox :
image

Et même problème chez Google :

Je trouve cela fou que les limites soient beaucoup plus élevées dans un outil coté client (en js) que du coté serveur de ces API/outils…

Pour info, OSM-France produit une couche raster des lignes HTA/HTB/BT et des postes de transformation. C’est le rendu « Volta », qui utilise les données de l’ORE (donc pas limité à Enedis).

https://tile.openstreetmap.fr/?zoom=17&lat=48.5254&lon=2.67202&layers=00000B000FFFFTF

C’est peut être plus simple à exploiter que d’abuser d’API qui ne sont prévues que pour des ajouts très limités (quelques marqueurs, un itinéraire) à un fond de carte.

1 Like

Merci Christian.
Cela pourrait en effet répondre à mon besoin sur ce jeu de données particulier.

Plusieurs questions :

  • est-ce que je peux générer une image à partir de la? Si oui, comment ?
  • ou est-ce que je peux trouver la légende associée ?
  • d’un point de vue plus large, comment trouver ce genre de jeux de données ?

Note : je suis d’accord pour limiter l’utilisation des API quand un moyen plus efficace existe, mais elles sont quand même conçues pour afficher des choses plus complexes que des marqueurs et des itinéraires…