All Projects → rok4 → rok4

rok4 / rok4

Licence: other
ROK4 est une suite d'outils open source développée par l'IGN France permettant la diffusion de données raster et vecteur en WMS, WMTS ou TMS. DEPRECATED ! Projet maintenu ici : https://github.com/rok4/documentation

Programming Languages

C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
perl
6916 projects
shell
77523 projects
c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to rok4

mapmint
Fast and easy webmapping.
Stars: ✭ 51 (+183.33%)
Mutual labels:  wms, ogc, wmts
tile-map-service-net5
Tile server for .NET 5 platform with MBTiles, Filesystem, GeoTIFF, HTTP sources and XYZ, TMS, WMTS, WMS endpoints (protocols support)
Stars: ✭ 45 (+150%)
Mutual labels:  wms, ogc, wmts
deegree3
Official deegree repository providing geospatial core libraries, data access and advanced OGC web service implementations
Stars: ✭ 118 (+555.56%)
Mutual labels:  wms, ogc, wmts
tailormap
B3partners Tailormap repository
Stars: ✭ 26 (+44.44%)
Mutual labels:  wms, ogc, wmts
geotrellis-server
Tools for building raster processing and display services
Stars: ✭ 65 (+261.11%)
Mutual labels:  wms, ogc, wmts
generator-oraclejet
DEPRECATED Yeoman generator for creating Web and Mobile-hybrid Oracle JET based applications
Stars: ✭ 13 (-27.78%)
Mutual labels:  deprecated, obsolete
krawler
A minimalist (geospatial) ETL
Stars: ✭ 51 (+183.33%)
Mutual labels:  wms, ogc
microsoft-teams-faqplusplus-app
DEPRECATED - This repository contains a deprecated version of the FAQ Plus app template. Please see the README file for more details and a link to the new repository
Stars: ✭ 47 (+161.11%)
Mutual labels:  deprecated, obsolete
mapserver-docker
Mapserver OGR GDAL PostGIS WMS WCS WFS with Lighttpd in Docker
Stars: ✭ 18 (+0%)
Mutual labels:  wms, ogc
Sphero-Win-SDK
🚫 DEPRECATED: Sphero SDK for Win 8.1+ using RFCOMM
Stars: ✭ 36 (+100%)
Mutual labels:  deprecated, obsolete
ionic-3D-card-carousel
DEPRECATED Sample project that shows an experimental 3D card carousel in Ionic.
Stars: ✭ 29 (+61.11%)
Mutual labels:  deprecated, obsolete
Tangram
WebGL map rendering engine for creative cartography
Stars: ✭ 1,964 (+10811.11%)
Mutual labels:  vector-tiles, raster-tiles
Itowns
A Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data
Stars: ✭ 517 (+2772.22%)
Mutual labels:  vector-tiles, wms
jest-badges-readme
Creates a group of coverage badges from Jest into your README
Stars: ✭ 30 (+66.67%)
Mutual labels:  deprecated, obsolete
GPXSee-maps
GPXSee maps
Stars: ✭ 27 (+50%)
Mutual labels:  wms, wmts
roweb
⛔ [DEPRECATED] Active at https://github.com/ropensci/roweb2
Stars: ✭ 18 (+0%)
Mutual labels:  deprecated, obsolete
Terraintoolsamples
Unity has archived the TerrainToolSamples repository. For future development, please use the Terrain Tools package.
Stars: ✭ 195 (+983.33%)
Mutual labels:  deprecated, obsolete
Sphero Ios Sdk
🚫 DEPRECATED: Sphero™ is the amazing robotic ball ( sphero.com ) created by Orbotix, this is the repository for the iOS SDK for Sphero™. Visit dev site for more information:
Stars: ✭ 232 (+1188.89%)
Mutual labels:  deprecated, obsolete
try-compose
Sample project to try Jetpack Compose early developer preview here and now!
Stars: ✭ 28 (+55.56%)
Mutual labels:  deprecated, obsolete
lazybones-aem-templates
🚨[DEPRECATED] Lazybones templates for Adobe Experience Manager🚨
Stars: ✭ 68 (+277.78%)
Mutual labels:  deprecated, obsolete

Logo Rok4

ROK4 est un projet open-source (sous licence CeCILL-C) développé par les équipes du projet Géoportail de l’Institut National de l’Information Géographique et Forestière. Il contient un serveur (ROK4SERVER), écrit en C++, permettant la diffusion de données raster ou vecteur, et une suite d'outils (ROK4GENERATION) permettant de préparer les données utilisées par le serveur.

Le serveur implémente les standards ouverts de l’Open Geospatial Consortium (OGC) WMS 1.3.0 et WMTS 1.0.0, ainsi que le TMS (Tile Map Service). Il est utilisé pour l’intégralité de la diffusion des flux images et vecteur tuilé de la dernière version du Géoportail. Répondant aux besoins de diffusion image de l’IGN, ROK4SERVER vise deux objectifs principaux :

  • L’utilisation d’un cache de données raster unique permettant de servir indifféremment des flux WMS, WMTS et TMS
  • Des performances de traitement d’image et de diffusion accrues
  • La diffusion de tuiles vecteur telles qu'elles sont stockées, sans transformation (TMS uniquement)
  • La présentation en WMTS d'une pyramide non calculée, à partir d'autres pyramides ou de services WMS.

Services ROK4SERVER

ROK4GENERATION est un ensemble de scripts de traitement permettant la préparation et la transformation de données géo-référencées vers le format de pyramide raster (potentiellement à la demande) et vecteur utilisé par ROK4.

ROK4 Version : 3.10.2

Fonctionnement général

Les données dans la pyramide sont tuilées selon un quadrillage défini dans le TileMatrixSet (plusieurs sont fournis dans le projet).

ROK4SERVER et ROK4GENERATION

La pyramide produite par les outils ROK4GENERATION est décrite à travers un fichier, le descripteur de pyramide, qui va préciser le TMS utilisé pour découper les données, les caractéristiques des données images ou vecteur, les sources pour une pyramide à la demande, les différents niveaux de résolutions.

Pour que cette pyramide soit diffusée par ROK4SERVER, on va créer un descripteur de couche, qui va contenir à la fois des informations propres au serveur (nom, titre et résumé de la couche, styles...) mais aussi référencer le descripteur de la pyramide à diffuser.

Chargement de ROK4SERVER

  • Pour avoir des précisions sur la partie ROK4GENERATION
  • Pour avoir des précisions sur la partie ROK4SERVER, son déploiement et son utilisation
  • Pour avoir les spécifications d'une PYRAMIDE

Variables d'environnement

Au fonctionnement du serveur et des outils de génération, plusieurs variables d'environnement sont exploitées.

Pour le stockage

Afin d'utiliser des stockages objets (CEPH, S3 ou SWIFT), le serveur et les outils vont accéder aux différents clusters grâce aux informations stockées dans les variables d'environnement.

  • CEPH
    • ROK4_CEPH_CONFFILE
    • ROK4_CEPH_USERNAME
    • ROK4_CEPH_CLUSTERNAME
  • S3
    • ROK4_S3_URL
    • ROK4_S3_KEY
    • ROK4_S3_SECRETKEY
  • SWIFT
    • ROK4_SWIFT_AUTHURL
    • ROK4_SWIFT_USER
    • ROK4_SWIFT_PASSWD
    • ROK4_SWIFT_PUBLICURL
    • Si authentification via Swift
      • ROK4_SWIFT_ACCOUNT
    • Si connection via keystone (présence de ROK4_KEYSTONE_DOMAINID)
      • ROK4_KEYSTONE_DOMAINID
      • ROK4_KEYSTONE_PROJECTID

Dans le cas du stockage SWIFT ou S3, la variable ROK4_SSL_NO_VERIFY est testée, et la vérification des certificats est désactivée si elle est présente.

Dans le cas d'un stockage Swift, la variable d'environnement ROK4_SWIFT_TOKEN_FILE est testée. Si elle contient le chemin vers un fichier qui existe, on ne fait pas la demande de jeton d'authentification à la connexion et on mettra en en-tête des requêtes le contenu de ce fichier. Lors de la déconnexion du contexte Swift, on exportera le jeton dans ce fichier si celui-ci a changé.

Pour l'utilisation de CURL

CURL est utilisé à la fois via l'utilitaire en ligne de commande (dans les scripts Shell de génération) et via la librairie dans les parties en C++ (génération ou serveur). Vont être prise en compte les variables d'environnement HTTP_PROXY, HTTPS_PROXY et NO_PROXY

Compiler et installer le projet ROK4

La compilation du projet n’a pour le moment été validée que sous GNU/Linux (Debian 9 et 10 et Centos 7). Le projet utilise des pthreads (threads POSIX).

L'environnement de compilation

Afin de connaître les paquets et librairies à installer, référez vous aux Dockerfiles :

Les commandes externes

Les outils suivant sont nécessaires aux outils de génération :

La documentation

Pour la documentation du code source C++ : sudo apt install doxygen graphviz

Pour la documentation du code source Perl : sudo apt install naturaldocs

La compilation et l'installation

Instructions

mkdir build
cd build
cmake .. [-DOPTION1 -DOPTION2]
make
[make doc]
[make test]
make [install|package]`

Options de compilation

CMAKE_INSTALL_PREFIX (PATH) : Dossier d'installation de ROK4. Valeur par défaut : /usr/local

DEP_PATH (PATH) : Path to compiled and installed ROK4 dependencies. Valeur par défaut : ./target

BUILD_DEPENDENCIES (BOOL) : Compilation des dépendances manquantes de ROK4. Elles sont installées avec ROK4. Valeur par défaut : TRUE

BUILD_ROK4 (BOOL) : Compilation de la partie ROK4SERVER. Valeur par défaut : TRUE

BUILD_BE4 (BOOL) : Compilation de la partie ROK4GENERATION Valeur par défaut : TRUE

BUILD_DOC (BOOL) : Compilation de la documentation automatique (Doxygen et Naturaldocs). Crée la cible de compilation make doc à faire avant make install. Valeur par défaut : TRUE

UNITTEST (BOOL) : Compilation des tests unitaires. Crée la cible de compilation make test. Valeur par défaut : FALSE

DEBUG_BUILD (BOOL) : Compilation en mode debug. Valeur par défaut : FALSE

Gestion du stockage objet

BUILD_OBJECT (BOOL) : Il est possible de stocker les pyramides d'images dans des systèmes de stockage objet. Sont gérés CEPH, S3 et SWIFT. Cela implique d'avoir préalablement installé la librairie librados. Ne pas mettre TRUE mais 1 pour que ce soit bien interprété lors de la compilation dans le code. Valeur par défaut : 0

Utilisation de Kakadu

Kakadu est une librairie propriétaire de manipulation d'images JPEG2000. Par défaut c'est OpenJpeg, libre, qui est utilisé.

KDU_USE (BOOL) : Active l'utilisation de Kakadu pour la lecture du JPEG2000. Ne pas mettre TRUE mais 1 pour que ce soit bien interprété lors de la compilation dans le code. Valeur par défaut : 0

KDU_LIBRARY_PATH (STRING) : Si kakadu est utilisé, il est possible de fournir le chemin d'un dossier où chercher la librairie (les fichiers libkdu.a et libkdu_aux.a). Les headers sont embarqués dans le projet ROK4 . Valeur par défaut : /usr/kakadu-6.4

KDU_THREADING (STRING) : Nombre de threads utilisés par Kakadu. 0 => pas de thread, 1 => un seul thread, 2+ => multi-thread. Valeur par défaut : 0

Expérimental

RPM_PACKAGE (BOOL) : Crée un paquet RPM au lieu d'un paquet tarball : make package. Valeur par défaut : FALSE

DEB_PACKAGE (BOOL) : Crée un paquet DEBIAN au lieu d'un paquet tarball : make package. Valeur par défaut : FALSE

USE_SYSTEM_LIB (BOOL) : Permet de forcer l'utilisation des librairies système plutôt que celles embarquées dans le projet. Concerne les librairies IMAGE, LZW, CPPUNIT, PKB, LOGGER et FCGI. Valeur par défaut : FALSE

Exemple

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/rok4 -DBUILD_DOC=TRUE -DUNITTEST=TRUE ..
make
make doc
make test
sudo make install

Docker

Le projet propose les Dockerfile permettant la compilation et l'utilisation du serveur et des outils de génération au sein d'un conteneur. Des configurations pour docker-compose permettent de télécharger des jeux de données conteneurisés et de tester le serveur. Tous les détails sont ici.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].