Before I start, this is going to be a general question but with specific cases. 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
So, 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, denisty 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
So, 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.
Sorry if my question sounds to general. I will definitely be here to clarify my questions