Question

I want too build a web application, and I am looking at the tools I will have to use. I want to use a real time map I'm a thinking about :

Tilemill to get .png in order to constitue the background of my maps or get data from a webite in shp files to build layers for this in mapnik.

Mapnik Build layers with the data I want to add on my map.

Mapnik : Put layers together and generate a map.

TileStache : generate tiles for my application.

Openlayers : Display my map with tiles in a browser.

Once my map is displayed, I'd like to add interactivity. For example when you go over a line or a circle (a town/ an event), then it gives you the attributes of this object.

But the lines and circles will integrated dirctly to the mapnik map, so I need to add some javascript to make it dynamic and open a pop-up. How do I do this ? Using Openlayer javascript libraries or node.js.

What is your advice on the question/the way I want to use theese tools?

Thanks a lot!

Was it helpful?

Solution

I'm in a similar situation, so I don't know the answer, but from what I've been able to figure out I think you're on the right track.

I started off using the Mapbox approach, which simplifies things as long as your data is static. You use Tilemill not only to generate your PNG tiles (once you've used Carto to do some nice styling) but also to import your data sets.

TileMill can export your TileJSON and UTFGrid files with the PNG tiles all packaged up and ready to use. Mapbox will then host all that stuff for you, and you can use their mapbox.js library (an extension of Leaflet) to bring it all together in the browser, with full interactivity. Opening popups would be something you'd do in Javascript in the browser - and if you mean infoWindows (the overlay window that's associated with a map point) then that would be a call to the Leaflet API.

If you're happy to create your layers and import your data offline this approach seems to be really simple and powerful; Mapbox will even render out tiles using multiple layers overlaid - so for example you can see your circles on top of a satellite image, merged into a single PNG.

The problem really comes in when your data needs to be live and you can't therefore prepare it all ahead of time in TileMill. I'm still trying to figure this all out but it does seem as though a combination of TileStache and Mapnik would be able to serve you up the TileJSON, GeoJSON and UTFGrid files you'd need as well as the tiles themselves, in the way you've outlined in the question.

You might also want PostGIS and GeoDjango or similar behind the scenes in order to hold and manage your live data, respectively.

As I said, I'm still trying to actually get my full stack working so I can't vouch for this 100% but if your data is gathered upfront then I'd definitely recommend the TileMill route for simplicity's sake.

I hope that's a help!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top