[GIS] Free map service for private web applications

openlayers-2postgiswfswms

Background

Looking to display a map (for internal use only) on a web page. The application must be able to add custom layers (without sending the data to the map service host):

  • Municipal zones (defined by shapefiles)
  • Custom zones (defined by polygons, possibly in terms of Municipal zones)
  • Site locations (defined by lat/long)
  • Additional city data (defined by shape files)

Because it is a private venture, it eliminates many map services, including: Google Maps, Bing, Yahoo! Maps, MapQuest, and other pay-for-use services.

Update #1

Perhaps MapQuest is a possibility.

Update #2

Requirements that I forgot to mention:

  1. There are additional data (cities, towns, hamlets) not part of OpenStreetMap. These cities must be included without giving the data to the map provider.
  2. There are various layers (such as employee locations) that also must be displayed, without telling the map provider where to find the data (i.e., the data will be behind a firewall).

Current Development

Currently, I have not been able to find a server that meets my requirements, so I have been following the instructions across various web sites to install a Mapnik web server:

At this point, I have various pieces of the data:

  • City and municipality data (shape files loaded into PostGIS)
  • Natural Earth data (shape files; not loaded)
  • Mapnik stylesheets (various files; not loaded)

GeoServer

I tried installing GeoServer (prior to Mapnik) but found the documentation to be lacking, the web-based administration tool to be cumbersome to configure, and the responsiveness on a 2 GHz machine to be painfully slow (10 seconds to render a tile with a single layer: roads), and the default aesthetic bland. (I know I can use stylesheets to liven up the presentation, but that means having to find [or create!] suitable files, install them, test them, and so forth.)

Requirements

The technical requirements include:

  • Cities, roadways, bodies of water (lakes, rivers, oceans)
  • Political boundaries (provinces, countries)
  • High quality (visually similar to Google Maps, MapQuest, etc.)
  • High uptime
  • 900913 projection (similar to Google Maps)
  • Responsive tiles (under 0.1 seconds per tile)
  • Excellent coverage of street data for Canada
  • Useful for slippy map (compatible with OpenLayers)
  • 10,000 tile requests per day
  • Free for commercial (or private) use, or less than $2000 per year?

Good Example

Here is an excellent example (OpenLayers) of what I'm looking to achieve:

Bad Examples

An example of what I'm not looking to achieve:

An example of incomplete data:

Related Links

Question

What WMS, WMTS, or WFS servers offer the required functionality?

Best Answer

I'm not sure why you are excluding services like Google Maps, especially since your expected traffic not that high (Google starts charging after 25,000 map views (your map views will be much lower than 10,000): https://developers.google.com/maps/faq#usage_pricing). What you basically need is two things:

  1. Someone to provide you with the Web slippy map. This can be Google Maps, Bing, MapQuest, Cloudmade etc. Or you could run your own tile server and use OpenStreetMap data.
  2. Rendering your own vector data on the client side (using javascript) on top of the Web map. There are several open source libraries that can do that (OpenLayers, Leaflet, Polymaps...).

Some pointers to investigate further: