SlideShare a Scribd company logo
ScribeUI 
MapServer Mapfile Managment 
Made Easy 
Simon Mercier 
Mapgears 
@simonmercier
Mapfile development 
Everyone that has develop big mapfile has gone 
through a variety of issues: 
➔ A lot of copy paste 
➔ Multiple data source for the same layer 
➔ A lot of copy paste 
➔ Scales are a little bit confusing 
➔ A lot of copy paste 
➔ No variables 
➔ And so on...
Mapfile development 
Multiple windows at once: 
➔ Text editor 
➔ Browser with mode=browse&template=openlayers 
➔ Console for the debug output 
➔ File browser 
➔ SQL window 
➔ QGIS for attributes 
➔ ogrinfo / gdalinfo
The goal is to make our life simple 
➔The Scribe syntax 
➔ScribeUI 
➔Tips and tricks 
ScribeUI is there to make things easier for 
mapfile developper 
By mapfile developper!
Some Scribe syntax details 
● Creates multiple layers, one for each scale 
● Result is perfectly indented 
● Prevent layer duplication for the developper 
● Still based on the Mapfile syntax not a 
replacement. 
As simple as: 
$ python scribe.py
Scribe Howto: Scales 
Definition of scales 
SCALES { 
1:268435456 
2:134217728 
... 
16:8192 
} 
From here, no more: 
MINSCALEDENOM 
MAXSCALEDENOM
Scribe Howto: Scales 
LAYER { 
1­16 
{ 
NAME: 'ocean' 
TYPE: POLYGON 
@layerconfig 
DATA { 
1­5: 
'110m_physical/ne_110m_ocean' 
6­10: 
'50m_physical/ne_50m_ocean' 
11­16: 
'10m_physical/ne_10m_ocean' 
} 
CLASS { 
STYLE { 
COLOR: '#C6E2F2' 
} 
} 
} 
}
Scribe Howto: Scales 
STYLE { 
COLOR: '#aaaaaa' 
WIDTH { 
12: 0.5 
13: 1 
14: 2 
15­16: 
4 
} 
}
Scribe Howto: Variables 
VARIABLES { 
layerconfig { 
GROUP: 'default' 
STATUS: ON 
PROCESSING: 'LABEL_NO_CLIP=ON' 
PROCESSING: 'CLOSE_CONNECTION=DEFER' 
} 
land_ol_width: 1 
} 
From here: 
LAYER { 
NAME: 'ocean' 
@layerconfig 
... 
WIDTH @land_ol_width
Scribe Howto: Comments 
Sometimes it's useful to simply comment out, 
Sometimes it's useful to leave a note or 
explanation: 
##Comments preceded with ## appear 
##in the resulting mapfile. 
//Comments preceded with // or comment blocks between /* */ 
// do not appear in the resulting mapfile. 
/* 
OUTLINECOLOR: 200 200 200 
OUTLINEWIDTH: @land_ol_width 
*/
Scribe 
Use it!
ScribeUI: Take a tour (Basics) 
➔ Workspace 
Project, may be password protected 
➔ New Map Template 
You can use any existing map as a template 
➔ Git integration 
You can Clone or push a mapping projet in your Git 
➔ Editor 
Edit layers per group
ScribeUI: Take a tour (Basics) 
➔ Layer groups 
Add groups and modify their order 
➔ MAP definition 
Keep it at hand 
➔ Seed your map with Mapcache 
You can throw on your server seeding mapcache job 
➔ See your changes live
ScribeUI: Workspace 
It's a project 
May be password protected 
Can contain multiple map
ScribeUI: New Map Template 
Creating a new map is as easy as a copy/paste 
You can duplicate any existing map in any workspace
ScribeUI: Git integration 
Clone, Push or 
Commit your 
mapping 
project
ScribeUI: Git integration 
Clone, Push or 
Commit your 
mapping 
project
ScribeUI: Editor 
Grouped by layer group 
Color coded 
Line number
ScribeUI: Layer Groups 
Add new layer group or delete existing ones 
Modify the order of existing groups
ScribeUI: Map Definition 
Easy to access 
Can hide it
ScribeUI: MapCache 
Throw mapcache seed job on your server
ScribeUI: Take a tour (Developpers) 
➔ Debug 
See the logs as you navigate the map 
➔ Result 
Save the mapfile or link directly to the tiles 
➔ Point of Interest 
Quickly zoom to your area of interest 
➔ Browse tab 
Upload or download data file 
➔ In the cloud 
Stop copying the data files on all developper's computers 
Also allow multiple people to work on the same project together
ScribeUI: Debug 
See what's happening in real time 
Pan the map to get debug info
ScribeUI: Result 
Save the resulting mapfile 
It's also possible to export the project
ScribeUI: Point of Interest 
Quickly access your area of interest 
Make it easy to test several region when editing style
ScribeUI: In the cloud 
● It allows a group of developpers to work 
together without duplicating the data. 
● Password protect each projects 
● Work on a centralized 
system 
● No more multiple 
installation puzzle 
● Upload your data 
directly from the 
web interface
ScribeUI: Browse Tab 
Upload new data file 
Download data or files available on the server
Plugins! 
ScribeUI supports plugins. You can add your 
own tool by simply creating a directory in: 
application/plugins/ 
In the UI, work with the Dom: 
➔ addButton() 
➔ addTab() 
On the server: 
Plugins get their custom route
Plugins: example 
SetExtent is an example plugin that allow you to redefine the 
map extent with some map interaction. 
Refer to the code for plugin development references.
Plugins to come...? 
➔ Color swatch 
➔ Data visualisation 
➔ Human readable debug output 
➔ Sky is the limit
Tips and tricks 
➔ You can now think of your maps as levels 
instead of monolithic services. 
➔ Scribe allow you to consider the map with 
cartographer's, or designer, eyes instead of 
from application developper constraint. 
➔ Variables are the best thing. 
➔ ScribeUI Logs tell you where are your scribe 
syntax errors 
➔ POIs are your friend
Demo! 
If time permits...
Questions? 
Thank you! 
Simon Mercier 
Mapgears 
@simonmercier

More Related Content

Similar to ScribeUI: La productivité avec MapServer

Patch Maps
Patch MapsPatch Maps
Patch Maps
aubreyholland
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
Docker, Inc.
 
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdfDevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
KAI CHU CHUNG
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
HanLing Shen
 
DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...
DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...
DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...
PROIDEA
 
Red Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift MessengerRed Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift Messenger
Justin Bui
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
corehard_by
 
Degrafa Top 5 Features
Degrafa Top 5 FeaturesDegrafa Top 5 Features
Degrafa Top 5 Features
Juan Sanchez
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
Sang Don Kim
 
Smooth CoffeeScript
Smooth CoffeeScriptSmooth CoffeeScript
Smooth CoffeeScript
Michael Scovetta
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
sparkfabrik
 
How to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentHow to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of Development
Acquia
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
mwrather
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
JacobAae
 
Let's migrate to Swift 3.0
Let's migrate to Swift 3.0Let's migrate to Swift 3.0
Let's migrate to Swift 3.0
CocoaHeads France
 
Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!
mold
 
JavaScript All The Things
JavaScript All The ThingsJavaScript All The Things
JavaScript All The Things
Jordan Yaker
 
JavaScript Core fundamentals - Learn JavaScript Here
JavaScript Core fundamentals - Learn JavaScript HereJavaScript Core fundamentals - Learn JavaScript Here
JavaScript Core fundamentals - Learn JavaScript Here
Laurence Svekis ✔
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcampahkjsdcsadc
 

Similar to ScribeUI: La productivité avec MapServer (20)

Global mapperhelp
Global mapperhelpGlobal mapperhelp
Global mapperhelp
 
Patch Maps
Patch MapsPatch Maps
Patch Maps
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdfDevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
DevFest 2022 - Skaffold 2 Deep Dive Taipei.pdf
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 
DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...
DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...
DevOpsDays Warsaw 2015: Automating microservices in Syncano – Michał Kobus & ...
 
Red Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift MessengerRed Teaming macOS Environments with Hermes the Swift Messenger
Red Teaming macOS Environments with Hermes the Swift Messenger
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Degrafa Top 5 Features
Degrafa Top 5 FeaturesDegrafa Top 5 Features
Degrafa Top 5 Features
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
Smooth CoffeeScript
Smooth CoffeeScriptSmooth CoffeeScript
Smooth CoffeeScript
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
How to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentHow to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of Development
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
 
Let's migrate to Swift 3.0
Let's migrate to Swift 3.0Let's migrate to Swift 3.0
Let's migrate to Swift 3.0
 
Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!
 
JavaScript All The Things
JavaScript All The ThingsJavaScript All The Things
JavaScript All The Things
 
JavaScript Core fundamentals - Learn JavaScript Here
JavaScript Core fundamentals - Learn JavaScript HereJavaScript Core fundamentals - Learn JavaScript Here
JavaScript Core fundamentals - Learn JavaScript Here
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcamp
 

More from VisionGEOMATIQUE2014

Géomatique appliquée : revue des solutions novatrices mises en place en 2014
Géomatique appliquée : revue des solutions novatrices mises en place en 2014Géomatique appliquée : revue des solutions novatrices mises en place en 2014
Géomatique appliquée : revue des solutions novatrices mises en place en 2014
VisionGEOMATIQUE2014
 
Indoor location with the Bluetooth Low Energy standard
Indoor location with the Bluetooth Low Energy standardIndoor location with the Bluetooth Low Energy standard
Indoor location with the Bluetooth Low Energy standard
VisionGEOMATIQUE2014
 
Fast, Distributed Geoprocessing with Scala, Spark and GeoTrellis
Fast, Distributed Geoprocessing with Scala, Spark and GeoTrellisFast, Distributed Geoprocessing with Scala, Spark and GeoTrellis
Fast, Distributed Geoprocessing with Scala, Spark and GeoTrellis
VisionGEOMATIQUE2014
 
OpenGL ES pour le développement d’applications géospatiales sur Android
OpenGL ES pour le développement d’applications géospatiales sur AndroidOpenGL ES pour le développement d’applications géospatiales sur Android
OpenGL ES pour le développement d’applications géospatiales sur Android
VisionGEOMATIQUE2014
 
Accès ouvert aux données météorologiques d’Environnement Canada
Accès ouvert aux données météorologiques d’Environnement CanadaAccès ouvert aux données météorologiques d’Environnement Canada
Accès ouvert aux données météorologiques d’Environnement Canada
VisionGEOMATIQUE2014
 
LocationTech Data Commons
LocationTech Data CommonsLocationTech Data Commons
LocationTech Data Commons
VisionGEOMATIQUE2014
 
TDW FOSS GEO-STACK FOR MINERAL EXPLORATION
TDW FOSS GEO-STACK FOR MINERAL EXPLORATIONTDW FOSS GEO-STACK FOR MINERAL EXPLORATION
TDW FOSS GEO-STACK FOR MINERAL EXPLORATION
VisionGEOMATIQUE2014
 
Spatial Data processing with Hadoop
Spatial Data processing with HadoopSpatial Data processing with Hadoop
Spatial Data processing with Hadoop
VisionGEOMATIQUE2014
 
Solution Geoctopus : améliorations et défis
Solution Geoctopus : améliorations et défisSolution Geoctopus : améliorations et défis
Solution Geoctopus : améliorations et défis
VisionGEOMATIQUE2014
 
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
VisionGEOMATIQUE2014
 
GeoMesa: Scalable Geospatial Analytics
GeoMesa:  Scalable Geospatial AnalyticsGeoMesa:  Scalable Geospatial Analytics
GeoMesa: Scalable Geospatial Analytics
VisionGEOMATIQUE2014
 
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
VisionGEOMATIQUE2014
 
Automatisation de la cartographie et de l'analyse des données de comptage de ...
Automatisation de la cartographie et de l'analyse des données de comptage de ...Automatisation de la cartographie et de l'analyse des données de comptage de ...
Automatisation de la cartographie et de l'analyse des données de comptage de ...
VisionGEOMATIQUE2014
 
MACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORING
MACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORINGMACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORING
MACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORING
VisionGEOMATIQUE2014
 
Les contributions de la géomatique au développement de la ville intelligente
Les contributions de la géomatique au développement de la ville intelligenteLes contributions de la géomatique au développement de la ville intelligente
Les contributions de la géomatique au développement de la ville intelligente
VisionGEOMATIQUE2014
 
SIGim la plateforme adaptée à la gestion municipale
SIGim la plateforme adaptée à la gestion municipaleSIGim la plateforme adaptée à la gestion municipale
SIGim la plateforme adaptée à la gestion municipale
VisionGEOMATIQUE2014
 
Optimisation et analyse des parcours de déneigement à la Ville de Shawinigan
Optimisation et analyse des parcours de déneigement à la Ville de ShawiniganOptimisation et analyse des parcours de déneigement à la Ville de Shawinigan
Optimisation et analyse des parcours de déneigement à la Ville de Shawinigan
VisionGEOMATIQUE2014
 
AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...
AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...
AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...
VisionGEOMATIQUE2014
 
Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...
Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...
Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...
VisionGEOMATIQUE2014
 
JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...
JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...
JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...
VisionGEOMATIQUE2014
 

More from VisionGEOMATIQUE2014 (20)

Géomatique appliquée : revue des solutions novatrices mises en place en 2014
Géomatique appliquée : revue des solutions novatrices mises en place en 2014Géomatique appliquée : revue des solutions novatrices mises en place en 2014
Géomatique appliquée : revue des solutions novatrices mises en place en 2014
 
Indoor location with the Bluetooth Low Energy standard
Indoor location with the Bluetooth Low Energy standardIndoor location with the Bluetooth Low Energy standard
Indoor location with the Bluetooth Low Energy standard
 
Fast, Distributed Geoprocessing with Scala, Spark and GeoTrellis
Fast, Distributed Geoprocessing with Scala, Spark and GeoTrellisFast, Distributed Geoprocessing with Scala, Spark and GeoTrellis
Fast, Distributed Geoprocessing with Scala, Spark and GeoTrellis
 
OpenGL ES pour le développement d’applications géospatiales sur Android
OpenGL ES pour le développement d’applications géospatiales sur AndroidOpenGL ES pour le développement d’applications géospatiales sur Android
OpenGL ES pour le développement d’applications géospatiales sur Android
 
Accès ouvert aux données météorologiques d’Environnement Canada
Accès ouvert aux données météorologiques d’Environnement CanadaAccès ouvert aux données météorologiques d’Environnement Canada
Accès ouvert aux données météorologiques d’Environnement Canada
 
LocationTech Data Commons
LocationTech Data CommonsLocationTech Data Commons
LocationTech Data Commons
 
TDW FOSS GEO-STACK FOR MINERAL EXPLORATION
TDW FOSS GEO-STACK FOR MINERAL EXPLORATIONTDW FOSS GEO-STACK FOR MINERAL EXPLORATION
TDW FOSS GEO-STACK FOR MINERAL EXPLORATION
 
Spatial Data processing with Hadoop
Spatial Data processing with HadoopSpatial Data processing with Hadoop
Spatial Data processing with Hadoop
 
Solution Geoctopus : améliorations et défis
Solution Geoctopus : améliorations et défisSolution Geoctopus : améliorations et défis
Solution Geoctopus : améliorations et défis
 
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
Infrastructure de géomatique ouverte (IGO) : un modèle inspirant de développe...
 
GeoMesa: Scalable Geospatial Analytics
GeoMesa:  Scalable Geospatial AnalyticsGeoMesa:  Scalable Geospatial Analytics
GeoMesa: Scalable Geospatial Analytics
 
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
Montrajet.ca : une solution multimodale de covoiturage et de planification d'...
 
Automatisation de la cartographie et de l'analyse des données de comptage de ...
Automatisation de la cartographie et de l'analyse des données de comptage de ...Automatisation de la cartographie et de l'analyse des données de comptage de ...
Automatisation de la cartographie et de l'analyse des données de comptage de ...
 
MACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORING
MACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORINGMACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORING
MACHINE LEARNING FOR SATELLITE-GUIDED WATER QUALITY MONITORING
 
Les contributions de la géomatique au développement de la ville intelligente
Les contributions de la géomatique au développement de la ville intelligenteLes contributions de la géomatique au développement de la ville intelligente
Les contributions de la géomatique au développement de la ville intelligente
 
SIGim la plateforme adaptée à la gestion municipale
SIGim la plateforme adaptée à la gestion municipaleSIGim la plateforme adaptée à la gestion municipale
SIGim la plateforme adaptée à la gestion municipale
 
Optimisation et analyse des parcours de déneigement à la Ville de Shawinigan
Optimisation et analyse des parcours de déneigement à la Ville de ShawiniganOptimisation et analyse des parcours de déneigement à la Ville de Shawinigan
Optimisation et analyse des parcours de déneigement à la Ville de Shawinigan
 
AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...
AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...
AutoTri, une application automatisant l’analyse du stationnement de l’arrondi...
 
Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...
Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...
Requirements for Geospatial Agent Simulation to Strengthen the 'Property-Powe...
 
JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...
JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...
JMap 6.0 : une solution complète et évolutive pour l'intégration, la diffusio...
 

Recently uploaded

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

ScribeUI: La productivité avec MapServer

  • 1. ScribeUI MapServer Mapfile Managment Made Easy Simon Mercier Mapgears @simonmercier
  • 2. Mapfile development Everyone that has develop big mapfile has gone through a variety of issues: ➔ A lot of copy paste ➔ Multiple data source for the same layer ➔ A lot of copy paste ➔ Scales are a little bit confusing ➔ A lot of copy paste ➔ No variables ➔ And so on...
  • 3. Mapfile development Multiple windows at once: ➔ Text editor ➔ Browser with mode=browse&template=openlayers ➔ Console for the debug output ➔ File browser ➔ SQL window ➔ QGIS for attributes ➔ ogrinfo / gdalinfo
  • 4. The goal is to make our life simple ➔The Scribe syntax ➔ScribeUI ➔Tips and tricks ScribeUI is there to make things easier for mapfile developper By mapfile developper!
  • 5. Some Scribe syntax details ● Creates multiple layers, one for each scale ● Result is perfectly indented ● Prevent layer duplication for the developper ● Still based on the Mapfile syntax not a replacement. As simple as: $ python scribe.py
  • 6. Scribe Howto: Scales Definition of scales SCALES { 1:268435456 2:134217728 ... 16:8192 } From here, no more: MINSCALEDENOM MAXSCALEDENOM
  • 7. Scribe Howto: Scales LAYER { 1­16 { NAME: 'ocean' TYPE: POLYGON @layerconfig DATA { 1­5: '110m_physical/ne_110m_ocean' 6­10: '50m_physical/ne_50m_ocean' 11­16: '10m_physical/ne_10m_ocean' } CLASS { STYLE { COLOR: '#C6E2F2' } } } }
  • 8. Scribe Howto: Scales STYLE { COLOR: '#aaaaaa' WIDTH { 12: 0.5 13: 1 14: 2 15­16: 4 } }
  • 9. Scribe Howto: Variables VARIABLES { layerconfig { GROUP: 'default' STATUS: ON PROCESSING: 'LABEL_NO_CLIP=ON' PROCESSING: 'CLOSE_CONNECTION=DEFER' } land_ol_width: 1 } From here: LAYER { NAME: 'ocean' @layerconfig ... WIDTH @land_ol_width
  • 10. Scribe Howto: Comments Sometimes it's useful to simply comment out, Sometimes it's useful to leave a note or explanation: ##Comments preceded with ## appear ##in the resulting mapfile. //Comments preceded with // or comment blocks between /* */ // do not appear in the resulting mapfile. /* OUTLINECOLOR: 200 200 200 OUTLINEWIDTH: @land_ol_width */
  • 12. ScribeUI: Take a tour (Basics) ➔ Workspace Project, may be password protected ➔ New Map Template You can use any existing map as a template ➔ Git integration You can Clone or push a mapping projet in your Git ➔ Editor Edit layers per group
  • 13. ScribeUI: Take a tour (Basics) ➔ Layer groups Add groups and modify their order ➔ MAP definition Keep it at hand ➔ Seed your map with Mapcache You can throw on your server seeding mapcache job ➔ See your changes live
  • 14. ScribeUI: Workspace It's a project May be password protected Can contain multiple map
  • 15. ScribeUI: New Map Template Creating a new map is as easy as a copy/paste You can duplicate any existing map in any workspace
  • 16. ScribeUI: Git integration Clone, Push or Commit your mapping project
  • 17. ScribeUI: Git integration Clone, Push or Commit your mapping project
  • 18. ScribeUI: Editor Grouped by layer group Color coded Line number
  • 19. ScribeUI: Layer Groups Add new layer group or delete existing ones Modify the order of existing groups
  • 20. ScribeUI: Map Definition Easy to access Can hide it
  • 21. ScribeUI: MapCache Throw mapcache seed job on your server
  • 22. ScribeUI: Take a tour (Developpers) ➔ Debug See the logs as you navigate the map ➔ Result Save the mapfile or link directly to the tiles ➔ Point of Interest Quickly zoom to your area of interest ➔ Browse tab Upload or download data file ➔ In the cloud Stop copying the data files on all developper's computers Also allow multiple people to work on the same project together
  • 23. ScribeUI: Debug See what's happening in real time Pan the map to get debug info
  • 24. ScribeUI: Result Save the resulting mapfile It's also possible to export the project
  • 25. ScribeUI: Point of Interest Quickly access your area of interest Make it easy to test several region when editing style
  • 26. ScribeUI: In the cloud ● It allows a group of developpers to work together without duplicating the data. ● Password protect each projects ● Work on a centralized system ● No more multiple installation puzzle ● Upload your data directly from the web interface
  • 27. ScribeUI: Browse Tab Upload new data file Download data or files available on the server
  • 28. Plugins! ScribeUI supports plugins. You can add your own tool by simply creating a directory in: application/plugins/ In the UI, work with the Dom: ➔ addButton() ➔ addTab() On the server: Plugins get their custom route
  • 29. Plugins: example SetExtent is an example plugin that allow you to redefine the map extent with some map interaction. Refer to the code for plugin development references.
  • 30. Plugins to come...? ➔ Color swatch ➔ Data visualisation ➔ Human readable debug output ➔ Sky is the limit
  • 31. Tips and tricks ➔ You can now think of your maps as levels instead of monolithic services. ➔ Scribe allow you to consider the map with cartographer's, or designer, eyes instead of from application developper constraint. ➔ Variables are the best thing. ➔ ScribeUI Logs tell you where are your scribe syntax errors ➔ POIs are your friend
  • 32. Demo! If time permits...
  • 33. Questions? Thank you! Simon Mercier Mapgears @simonmercier