SlideShare uma empresa 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

Mais conteúdo relacionado

Semelhante 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
 

Semelhante 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
 

Mais 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
 

Mais 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

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

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