I've been trying to understand GIS tools and applications to achieve the following:
- Build my own basemap
- Publish the basemap online
- Add my own data layers to the online basemap
- Perform analysis (on-the-fly)
- Add interactivity to the map
In my first attempt, I built a spatially enabled database on PostGIS, queried this using PHP, overlayed it on google maps using their API and added interactivity using their api itself. I carried out analysis like area, density etc. on the fly using PostGIS functions.
For my next attempt, I downloaded TileMill and rendered some really beautiful maps and added zoom level functions to it. I also exported my MBtile files. When I came across trying to publish this online, I hit quite a few names, but got lost and confused:
- TileStache
- TileCache
- TileStream
- Mapserver
- Mapnik
- GeoServer
- Mapbox
I understand these are mapservers but what exactly does a mapserver do?
Why is it used?
Why can't I server my tiles from a normal web Apache server and for MBtiles, how many servers are out there which lets you publish it directly?
I can also export my basemap as a png/vsvg format.
Can these formats be used to make a basemap through a mapserver?
When researching interactivity I came across:
- Leaflet
- ModestMaps
- OpenLayers
- Mapstraction
I understand these are Javascript Mapping API's but on what base map can I use these?
Can it be used on Google Maps?
Can I use them on my own base maps too?
I basically want to understand the differences between these tools and which would be the best software stack to build a fully customized, interactive map with my own basemap.