SlideShare una empresa de Scribd logo
1 de 33
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

Más contenido relacionado

Similar a ScribeUI: La productivité avec MapServer

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 PackagesDocker, 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.pdfKAI 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 LinHanLing 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 MessengerJustin Bui
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
 
Degrafa Top 5 Features
Degrafa Top 5 FeaturesDegrafa Top 5 Features
Degrafa Top 5 FeaturesJuan 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
 
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 Kubernetessparkfabrik
 
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 DevelopmentAcquia
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Developmentmwrather
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshopJacobAae
 
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 ThingsJordan Yaker
 
JavaScript Core fundamentals - Learn JavaScript Here
JavaScript Core fundamentals - Learn JavaScript HereJavaScript Core fundamentals - Learn JavaScript Here
JavaScript Core fundamentals - Learn JavaScript HereLaurence Svekis ✔
 
Android Bootcamp
Android   BootcampAndroid   Bootcamp
Android Bootcampahkjsdcsadc
 

Similar a 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
 

Más de 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 2014VisionGEOMATIQUE2014
 
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 standardVisionGEOMATIQUE2014
 
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 GeoTrellisVisionGEOMATIQUE2014
 
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 AndroidVisionGEOMATIQUE2014
 
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 CanadaVisionGEOMATIQUE2014
 
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 EXPLORATIONVisionGEOMATIQUE2014
 
Spatial Data processing with Hadoop
Spatial Data processing with HadoopSpatial Data processing with Hadoop
Spatial Data processing with HadoopVisionGEOMATIQUE2014
 
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éfisVisionGEOMATIQUE2014
 
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 AnalyticsVisionGEOMATIQUE2014
 
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 intelligenteVisionGEOMATIQUE2014
 
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 municipaleVisionGEOMATIQUE2014
 
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 ShawiniganVisionGEOMATIQUE2014
 
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
 

Más de 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...
 

Último

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Último (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

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