<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Bonjour tous,<div class=""><br class=""></div><div class="">Je cherche à faire apparaître sur une carte en ligne les préfectures et leur nom en breton.</div><div class=""><br class=""></div><div class="">La façon d’y arriver est « connue » : il faut faire une jointure entre la table planet_osm_point (qui contient le point et le nom) et la table planet_osm_rels (qui elle contient l’info admin_level).</div><div class=""><br class=""></div><div class="">Cela donne une requête qui s’exécute très bien en temps normal (pgAdmin ou dans une vue ou une requête d’insertion de données / create table) :</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Courier New" class="">SELECT DISTINCT way, COALESCE(tags -> 'name:br'::text) as name</font></div><div class=""><font face="Courier New" class="">FROM planet_osm_point</font></div><div class=""><font face="Courier New" class="">JOIN (</font></div><div class=""><font face="Courier New" class=""> WITH numbered AS(</font></div><div class=""><font face="Courier New" class=""> SELECT row_number() OVER() AS row, entry</font></div><div class=""><font face="Courier New" class=""> FROM(</font></div><div class=""><font face="Courier New" class=""> SELECT unnest(members) AS entry</font></div><div class=""><font face="Courier New" class=""> FROM planet_osm_rels</font></div><div class=""><font face="Courier New" class=""> WHERE ARRAY['boundary','administrative']<@tags AND ARRAY['admin_level','6']<@tags) AS mylist)</font></div><div class=""><font face="Courier New" class=""> SELECT ltrim(a.entry,'n')::bigint AS osm_id</font></div><div class=""><font face="Courier New" class=""> FROM numbered AS a JOIN numbered AS b</font></div><div class=""><font face="Courier New" class=""> ON a.row = b.row-1 AND b.entry = 'admin_centre'</font></div><div class=""><font face="Courier New" class="">) x</font></div><div class=""><font face="Courier New" class="">USING(osm_id);</font></div></blockquote><div class=""><br class=""></div><div class="">source : <a href="https://dba.stackexchange.com/questions/104943/osm2pgsql-select-relation-member-by-role" class="">https://dba.stackexchange.com/questions/104943/osm2pgsql-select-relation-member-by-role</a></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Mais si je mets cette requête dans une déclaration de couche pour un projet mml servi par kosmtik j’obtiens une erreur dans kosmtik :</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Courier New" class="">Postgis Plugin: ERROR: relation "numbered" does not exist
LINE 1: SELECT ST_SRID("way") AS srid FROM numbered WHERE "way" IS N...
^
in executeQuery Full sql was: 'SELECT ST_SRID("way") AS srid FROM numbered WHERE "way" IS NOT NULL LIMIT 1;'
encountered during parsing of layer 'places_admin_6' in Layer</font></div></blockquote><div class=""><br class=""></div><div class="">En loggant l’erreur dans PostgreSQL :</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Courier New" class="">2018-09-26 23:24:56.797 CEST [32589] STATEMENT: SELECT ST_SRID("way") AS srid FROM numbered WHERE "way" IS NOT NULL LIMIT 1;</font></div></div><div class=""><div class=""><font face="Courier New" class="">2018-09-26 23:24:56.798 CEST [32590] LOG: statement: SELECT ST_SRID("way") AS srid FROM numbered WHERE "way" IS NOT NULL LIMIT 1;</font></div></div><div class=""><div class=""><font face="Courier New" class="">2018-09-26 23:24:56.798 CEST [32590] ERROR: relation "numbered" does not exist at character 36</font></div></div></blockquote><div class=""><br class=""></div><div class="">Je n’arrive pas à cerner le problème. Bien sûr si on change le nom « numbered » par autre chose, le message d’erreur fera référence à ce nouveau nom.</div><div class="">J’ai pas testé directement sur un serveur de tuiles mais je vois pas pourquoi ça passerait.</div><div class="">Si quelqu’un a une piste… </div><div class=""><br class=""></div><div class="">Cdt, Maël evit osm-bzh</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>