Suite

Affichage de tuiles raster à partir de données OSM stockées sur un serveur postgis


J'ai récemment été chargé de configurer un serveur de tuiles raster qui sert des tuiles à partir de données extraites d'un magasin postgis.

J'ai réussi à faire fonctionner un serveur de tuiles vectorielles, mais je suis bloqué sur le bit de serveur de tuiles raster. Voici à quoi ressemblent les données brutes (un exemple de ligne, il s'agit essentiellement d'une liste de toutes les rues de Suisse) :

{ id : 1537021, osm_id : '317400638', osm_name : null, osm_meta : null, osm_source_id : '3236568222', osm_target_id : '3236568210', clazz : 72, drapeaux : 6, source : 1216745, cible : 1216746, km : 0,048946153 , kmh : 10, coût : 0,004894615, reverse_cost : 0,004894615, x1 : 8.1708598, y1 : 47.4290024, x2 : 8.1707774, y2 : 47.4285814, geom_way : '0102000020E610000003000000F7668AEF7A572040E8F3A68CAE2DB1374055C20545740A}

Quelle serait la meilleure approche pour générer des tuiles raster compte tenu de ces données ?

J'ai réussi à créer des données géoJSON vectorielles via les éléments suivants :

SELECT osm_name en tant que propriétés, ST_ASGEOJSON(geom_way) en tant que géométrie FROM ch_2po_4pgr WHERE ST_Intersects(ch_2po_4pgr.geom_way, ST_SetSRID(ST_MakeBox2D(ST_Point($1, $2), ST_Point($3, $4)), 4326))

La plupart des tutoriels semblent traiter de l'utilisation de Mapnik et d'une source de données de fichier de formes, mais ce que j'ai est cette table postgis :(


Dans votre cas, je recommanderais de configurer un service WMS à l'aide de mapserver ou quelque chose d'équivalent, puis de demander des tuiles au point de terminaison WMS.

http://mapserver.org/ogc/wms_server.html

C'est une approche très flexible, car sur le backend, vous n'avez pas à vous soucier des définitions exactes des tuiles TMS (indices et bbox, etc.). Au lieu de cela, laissez le client frontal s'inquiéter de la partie de vos données qui appartient à chaque tuile. Par exemple, le dépliant peut afficher directement une couche WMS :

http://leafletjs.com/reference.html#tilelayer-wms

La limitation de cette approche concerne les géométries au bord, mais cela concerne principalement les points (la symbologie du point d'un point près du bord d'une tuile peut être coupée, car elle n'est dessinée que sur la tuile qui contient le point). Une couche WMS à tuile unique pourrait aider dans ce cas, voir :

https://github.com/Leaflet/Leaflet/issues/558#issuecomment-61626718


Voir la vidéo: PostGIS and OpenStreetMap: Tools and Queries 3. 6 in webinar series (Octobre 2021).