J’ai oublié de mettre la déclaration de la couche dans le projet :

    {
      "id": "places_admin_6",
      "name": "places_admin_6",
      "class": "",
      "Datasource": {
        "type": "postgis",
        "host": "db.openstreetmap.local",
        "user": "osm",
        "password": "osm",
        "dbname": "osm",
        "table": "( 
SELECT DISTINCT way, COALESCE(tags -> 'name:br'::text) as name
FROM planet_osm_point
JOIN (
        WITH c AS(
            SELECT row_number() OVER() AS row, entry
            FROM(
                SELECT unnest(members) AS entry
                FROM planet_osm_rels
                WHERE ARRAY['boundary','administrative']<@tags AND 
ARRAY['admin_level','6']<@tags) AS mylist)
        SELECT ltrim(a.entry,'n')::bigint AS osm_id
        FROM c AS a JOIN c AS b
        ON a.row = b.row-1 AND b.entry = 'admin_centre'
) x
USING(osm_id)
         ) AS data",
        "key_field": "",
        "geometry_field": "way",
        "asynchronous_request": "true",
        "max_async_connection": "4",
        "simplify_geometries": "true",
        "extent_cache": "auto",
        "extent": "-1363990,3994624,1824475,9411676"
      },
      "geometry": "point",
      "srs-name": "3857",
      "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
      "extent": [ -10, 34, 20, 70 ],
      "advanced": {}
    }


> Le 27 sept. 2018 à 00:10, Maël REBOUX <o...@breizhpositive.bzh> a écrit :
> 
> Bonjour tous,
> 
> Je cherche à faire apparaître sur une carte en ligne les préfectures et leur 
> nom en breton.
> 
> 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).
> 
> 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) :
> 
> SELECT DISTINCT way, COALESCE(tags -> 'name:br'::text) as name
> FROM planet_osm_point
> JOIN (
>         WITH numbered AS(
>             SELECT row_number() OVER() AS row, entry
>             FROM(
>                 SELECT unnest(members) AS entry
>                 FROM planet_osm_rels
>                 WHERE ARRAY['boundary','administrative']<@tags AND 
> ARRAY['admin_level','6']<@tags) AS mylist)
>         SELECT ltrim(a.entry,'n')::bigint AS osm_id
>         FROM numbered AS a JOIN numbered AS b
>         ON a.row = b.row-1 AND b.entry = 'admin_centre'
> ) x
> USING(osm_id);
> 
> source : 
> https://dba.stackexchange.com/questions/104943/osm2pgsql-select-relation-member-by-role
>  
> <https://dba.stackexchange.com/questions/104943/osm2pgsql-select-relation-member-by-role>
> 
> 
> 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 :
> 
> 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
> 
> En loggant l’erreur dans PostgreSQL :
> 
> 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;
> 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;
> 2018-09-26 23:24:56.798 CEST [32590] ERROR:  relation "numbered" does not 
> exist at character 36
> 
> 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.
> J’ai pas testé directement sur un serveur de tuiles mais je vois pas pourquoi 
> ça passerait.
> Si quelqu’un a une piste… 
> 
> Cdt,    Maël  evit osm-bzh
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à