Different institutions are providing large collections of data about various hazards, such as earthquakes, floods, landslides, and rising sea levels, that are publicly available on the net. It is desirable to have a summary of these different data on one map that can be viewed on portable devices in the field. The application will be used to plan relief efforts based on historical data.
The following data collections should be supported:
- http://preview.grid.unep.ch/index3.php?preview=data (most interesting one)
Solution requirements from Caritas
- Have a single map application which aggregates data from different sources.
- Overlay information from different data sources on a map.
- Workers in the field should have a downloadable, offline version.
- Display data in a time based format.
SOLUTION FROM RHOK BASEL
Hazard Map GUI
The GUI uses Google Maps to display map data. Google provides a powerful API, good documentation and very good maps...and it can be easily integrated with any website/application. The hazard data is stored on a backend and integrated as transparent custom tiles. With that approach the user can choose which data should be displayed and she can define the transparency of the different layers.
We have developed a prototype for that GUI. You can access a running version at http://blog.ivanjovanovic.com/labs/chm/
The source code is available at https://github.com/ivanjovanovic/rhok-basel.
To create the map the “map officer” will use TileMill (http://tilemill.com). TileMill is an open source modern map design studio. With it the map officer can import datasources and render them to tiles displayable on Google Maps.
We have documented some of our experiences with TileMill at https://github.com/ivanjovanovic/rhok-basel/wiki/using-tilemill
There are still many issues with the import of the different datasources. Several solutions exist to convert and fix datasources, but we had not time to dig deeper into that.
The process of exporting and publishing maps / tiles is also still open.
Example Map with TileMill (data: child hunger world map)
We have found several options for the back-end. The easiest one would be to work with static files. We have used that approach for our GUI prototype. On the other hand a server infrastructure would be much more powerful and would allow files produced by TileMill to be read directly. We have created a prototype in Java. You can find it at: https://github.com/ivanjovanovic/rhok-basel/tree/master/hazardmaps and some documentation at https://github.com/ivanjovanovic/rhok-basel/wiki/TileServer-%28Java%29.
Finally the creators from TileMill have created some backend tools. We did not evalute them. You can find our collection at https://github.com/ivanjovanovic/rhok-basel/wiki/ToolsAndLibs or their code at https://github.com/mapbox.
Out initial thought was converting all datasources to KML and using Google Maps to display them. We soon found that when KML is rendered at the client, that large KML files are generated and it would not be ideal to transfer these over slow internet connections. Therefore, we choose instead to create & render our own overlay tiles. We looked at many programs to find a way to read the many different data formats. Most of them were not been able to render our sample datasets. The tools and approaches we evaluated are available at https://github.com/ivanjovanovic/rhok-basel/wiki/ToolsAndLibs
We ended up selecting TileMill and installed it on our local machines. What we learned is that TileMill needs a powerful machine … Therefore, we would suggest that it is installed on an Amazon EC2 instance.
The second main problem area is the datasources. We found that there are many file formats and not all are well documented. We documented the dataformats we found at the differnent sources at: https://github.com/ivanjovanovic/rhok-basel/wiki/Data-Sources
In a later step some tooling to read and concert these formats will have to be explored.
Creation of more demo tiles
We should import try to import more datasets to create more tiles, so that we are able to improve the GUI prototype.
You need to have a running TileMill installation at a powerful computer for that (or can use an Amazon EC2 instance).
The GUI prototype should be extended, so that an user can actually:
- see which data is available,
- select data to view on the map and
- select transparency of the added data layers.
TODO: colors, colors, colors
We have many datasources with different data formats. We have to be able to import all of them to TileMill. Some of them should work out of the box, some will need more work...
For that job would be GIS knowledge an big plus. You need also a running TileMill installation.
Publishing and backend
The tiles generated by TileMill must be published to be accessible by the GUI. We have descripted some ideas on how to do that in our solution description.
Offline map access
Try out and document https://github.com/mapbox/mapsonastick and http://mapbox.com/#/ipad.
We are currently working on this project. You can find our work in progress on https://docs.google.com/document/d/1Q6ufvRXi-heqGuHZgvzDjmsEpVqv7rq3ZI1k...