Suite

OpenStreetMaps : que sont les !pixel_width! et !pixel_height! dans les requêtes


Le référentiel Github contenant le style CartoCSS pour le jeu de données OpenStreetMaps définit également des requêtes pour les différentes couches (voir ce fichier).

Un exemple d'une telle requête est

SELECT way, "natural", waterway, landuse, name, way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels FROM planet_osm_polygon WHERE (waterway IN ('dock', 'riverbank', 'canal') OU landuse IN ('reservoir', 'basin') OU "natural" IN ('water', 'glacier')) ET building EST NULL AND way_area > 0.01*!pixel_width!::real*!pixel_height! ::real ORDER BY z_order, way_area DESC

L'exécution de cette requête sur ma base de données locale échoue avec

ERREUR : la colonne "pixel_width" n'existe pas LIGNE 7 : way_area/NULLIF(!pixel_width!::real*!pixel_heigh…

comme message d'erreur. C'est sur Ubuntu oùpsql --versionles sorties

psql (PostgreSQL) 9.3.10

Quelqu'un a une idée de ce que cespixel_largeuretpixel_hauteurles valeurs sont, et que dois-je faire avec ma base de données PostGIS locale pour exécuter ces requêtes ? Les étapes sur le wiki OpenStreetMap ne répertorient rien de spécial.

La correspondance la plus proche que j'ai trouvée est la ST_PixelWidthmais c'est pour les rasters, et la syntaxe utilisée dans les exemples ne correspond pas à la syntaxe utilisée dans OSM. Donc ce n'est évidemment pas ça


Vous devrez peut-être passer à Mapnik 2.1.0 si vous souhaitez utiliser ce style. Voir https://github.com/mapnik/mapnik/wiki/PostGIS#other-tokens.

À ce stade, la taille d'un chemin par rapport au pixel est calculée, et le chemin sera supprimé s'il est trop petit. Voir aussi https://github.com/mapbox/osm-bright/issues/72 pour une suggestion sur le style OSM Bright, et comment il peut être remplacé.