Web Maps the way I want them

From Bellman
Jump to navigation Jump to search

The concept

http://www.alistapart.com/articles/takecontrolofyourmaps

TileCache

Just sticking with the program here, not sure if this server is optimal.

http://www.tilecache.org/

Damn, sure was easy to install. Just put it in a web server directory and enable CGI. This being a new computer I did need to install Apache and configure it.

Now I need some tiles/

I also need to look at memcached

Mapnik

Set up on Raven following the instructions here. It was as easy as could be. No.. easier than that.

Okay, so let's build a map here. Since the whole point is to build a map using my own data I will try to use (part of) Curry County as an example since I am going there next week.

I'd like to compose these layers

  • places (cities, parks)
  • roads
  • parcels
  • elevations (hillshade + elevation tint)

Starting simply: just a point layer

Thought I'd try quantumnik plugin for QGIS but alas it does not work right now. Pressing on.

Design map in QGIS

Use Corvallis hydrants

Define extent with union of Corvallis UGB and hydrants (there are two hydrants at Rock Creek to west of city)

To help with the visualization use an ESRI basemap. In the QGIS Python console, run this: qgis.utils.iface.addRasterLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json&pretty=true","raster")

Install the Python plugin "quantumnik".

Turn off the raster layer (the ESRI basemap)

Create a mapnik canvas. This is where it fails.

Export the Mapnik XML. Can't do this.

So... going straight to Python for now.

Tiling

For now I'd like to just create a tiled map containing a single layer on a transparent background that can be used in an OpenLayers map. I am working with a point layer containing hydrants.

The tiles will be used on a web map and onboard an Android app.

Mapnik will be driven from a Python script.

When zoomed in a picture of a hydrant will be the symbol. When zoomed out it will be a red dot.[]

Max extent covers the county I guess... or the city... each tile has to be properly georeferenced Here is the source code so far