Deprecated: Return type of YDataTable::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/bdavid/prod/georef/yamldoc/ydclasses/ydata.inc.php on line 428

Deprecated: Return type of YamlDataTable::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/bdavid/prod/georef/yamldoc/ydclasses/yamldata.inc.php on line 295
geodata (pub)
Menu : html yaml json edit check reindex dump unset
* 

title Présentation de l'accès aux données géographiques avec YamlDoc
journal
2018-09-23
  • renommage VectorDataset en FeatureDataset
2018-08-15
  • nouvelle vesrion fusionnant dans VectorDataset ShapeDataset, WfsLayers et MultiScaleDataset
2018-08-10
  • revisite du document après avoir implanté GeoData, WfsServer, MultiScaleGeoData et Map
2018-08-05
  • première réflexions inspirée de bdv.geoapi.fr avec version minimum de GeoData et Map fonctionne avec Route500
description

Accès aux données géographiques

YamlDoc définit des mécanismes d'accès aux données géographiques au travers de types de documents correspondant à des séries de données géographiques (SD), en distinguant des SD d'objets vecteur, des SD image et des SD de consultation. Ces mécanismes sont conçus afin que les SD puissent facilement être affichées avec la bibliothèque Leaflet :

  • les SD d'objets au moyen du plugin uGeoJson,
  • les SD de consultation au moyen de la classe TileLayer.

De plus les couches sont utilisables avec des logiciels comme umap qui respectent les mêmes standards d'interopérabilité.

En outre :

feature

SD d'objets vecteur

Une SD d'objets vecteur (FeatureDataset) est composée de couches d'objets vecteur, chacune correspondant à une FeatureCollection GeoJSON ; chaque couche est donc composée d'objets vecteur, les Feature GeoJSON, sur lesquels des critères de sélection peuvent être appliqués.

Affichage multi-échelles

Les SD d'objets vecteur sont conçues pour permettre un affichage multi-échelles des données.
Le tableau ci-dessous indique les produits utilisés en fonction du zoom.

Niveaux Echelles (dénom.) Produit utilisé
0 - 3 > 70 M Natural Earth 110M
4 - 8 35 M - 2 M Natural Earth 10M
9 - 11 1 M - 273 k Route500
12 - 13 136 k - 68 k BD Carto
14 - 18 34 k - 2 k BD Topo

Les couches suivantes sont définies dans plusieurs SD et peuvent être visualisées dans différents produits :

NE 110MNE 10M Route500BD Carto BD Topo Commentaire
coastline coastline coastline trait de côte
coastAdminBoundaryLines limite_administrative fusion du trait de côte et de limites administratives
populated_places_simple noeud_communezone_habitat chef_lieu étiquette des noms des principales villes
rivers_lake_centerlinesrivers_lake_centerlines_scale_rank troncon_hydrographique troncon_cours_eau axes des rivières et des lacs
roads troncon_route route routes
railroads troncon_voie_ferree troncon_voie_ferree voies ferrées
urban_areas zone_batiezone_batie_activites zones urbanisées

La SD multi-échelles définie ces couches appellant le produit adapté au zoom d'affichage.
De plus, chaque SD, comme par exemple la BD CARTO, peut intégrer des couches aux échelles plus petites.

Les autres SD vecteur définies sont :

API exposée

Un document décrivant une SD vecteur, d'une part, peut s'afficher et, d'autre part, expose une API constituée des 6 points d'entrée suivants :

  1. {docid} : description de la SD en JSON (ou en Yaml), y compris la liste de ses couches (exemple de Route500, en Yaml),
  2. {docid}/{lyrname} : description de la couche en JSON (ou en Yaml), cette URI identifie la couche (exemple de la couche commune de Route500),
  3. {docid}/{lyrname}?{query} : requête sur la couche renvoyant un FeatureCollection GeoJSON
    où {query} peut être:
  4. {docid}/{lyrname}/id/{id} : renvoie l'objet d'id {id} (A FAIRE)
  5. {docid}/map : renvoie le document JSON décrivant la carte standard affichant la SD (exemple de la carte Route500),
  6. {docid}/map/display : renvoie le code HTML d'affichage de la carte standard affichant la SD (exemple d'affichage de la carte Route500),

En utilisant cette API, une carte affichant une SD vecteur peut être construite avec le logiciel umap. Pour cela définir un calque en indiquant :

  • comme données distantes l'URL {docid}/{lyrname}?bbox={bbox}&zoom={zoom},
    par exemple: id.php/geodata/route500/limite_administrative?bbox={bbox}&zoom={zoom}
  • comme format des données: geojson,
  • qu'il s'agit d'un calque dynamique afin que les données soient requêtées à chaque fois que la vue de la carte change,
  • d'activer le proxy.

Définition des couches

Une couche vecteur peut être implantée de 4 manières différentes :

  1. elle peut correspondre à un fichier OGR chargé dans une table MySQL ; dans ce cas une première étape de chargement des fichiers en base est nécessaire ; des exemples sont :
  2. elle peut aussi correspondre à une couche exposée par un service WFS ; des exemples sont :

    Une couche OGR ou WFS peut en outre être filtrée en fonction du zoom ; la couche limite administrative de Route500 en est une illustration.

  3. une couche peut aussi être définie par une sélection dans une des couches précédentes définie dans la même SD ;
    Un exemple est la couche coastline de Route 500.

  4. une couche peut enfin être définie en fonction du zoom d'affichage et de la zone géographique par une des couches précédentes ;
    Un exemple d'une telle couche est la couche coastline de la SD multi-échelles en construction.

Voir ici les spécs détaillées des documents FeatureDataset.

Par ailleurs, pour utiliser les serveurs WFS, un type de document WfsServer est défini. Le serveur WFS du Géoportail IGN en est un exemple.

image

Les SD image sont constituées de couches d'images. (A FAIRE)

map

Un document carte décrit une carte Leaflet (exemple de la carte de test).

De plus, chaque SD d'objets vecteur a la capacité de générer une carte standard (exemple de la carte standard de Route500).