Quiconque a déjà essayé de créer de superbes cartes avec Mapserver et de multiples jeux de données tels que OpenStreetMap par exemple, sait à quel point la tâche peut être énorme. Scribe est une solution pour ce genre de besogne. Cette présentation sera une introduction à ce nouveau moyen pour créer, modifier dans le temps et gérer, vos projets cartographiques. Peu importe la quantité de données à gérer, le nombre de mapfiles ou la complexité de votre symbologie, Scribe vous aidera à être plus efficace en éliminant les tâches redondantes, diminuant la taille de vos mapfile, simplifier leur gestion et réduire le nombre d’erreurs de production! Après près de deux ans de développement et un autre Google Summer of Code, l’outil est plus que jamais une solution pertinente et prête à être exploré par la communauté.
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
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
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