Difference between revisions of "Choosing a Web Mapping Platform"

From OSGeo
Jump to navigation Jump to search
(Updated MapServer home page URL)
 
(14 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
Purpose: ''To help web developers select the best web mapping application for their requirements.''
 +
 +
Status: ''Watch out - this page needs updating! This is not an official OSGeo document but just a snap shop from late 2006.''
 +
 
== Choosing a Web Mapping Platform for your Application ==
 
== Choosing a Web Mapping Platform for your Application ==
  
 
There are a great many web mapping platforms available to someone starting a new project.  If you are new to this world ... or perhaps have a different type of project that won't work with the platform that you are familiar with, this page should help you decide which platform is right for your project.
 
There are a great many web mapping platforms available to someone starting a new project.  If you are new to this world ... or perhaps have a different type of project that won't work with the platform that you are familiar with, this page should help you decide which platform is right for your project.
  
A web mapping platform is a toolkit that helps you build a web mapping application.  It may or may not depend on a particular server technology (like MapServer or MapGuide).
+
A web mapping platform is a toolkit that helps you build a web mapping application.  It may or may not depend on a particular server technology (like MapServer or MapGuide). This page focuses primarily on Open Source browser-based ''clients'' (not the servers).
  
 
Note that many of the platforms discussed below are very similar in most respects.  There is a move afoot to consolidate some of the core components of these platforms into a single shared library ... which will further blur the distinctions.
 
Note that many of the platforms discussed below are very similar in most respects.  There is a move afoot to consolidate some of the core components of these platforms into a single shared library ... which will further blur the distinctions.
Line 9: Line 13:
 
The major web mapping platforms are (each needs to be linked to a separate page that describes the project in more detail, esp the benefits to a potential user):
 
The major web mapping platforms are (each needs to be linked to a separate page that describes the project in more detail, esp the benefits to a potential user):
  
* MapBuilder
+
* [http://www.mapserver.org/ MapServer]
* Mapbender
+
* [http://docs.codehaus.org/display/MAP/Home MapBuilder]
* Chameleon
+
* [http://www.mapbender.org/index.php/Main_Page Mapbender]
* MapGuide
+
* [http://www.dmsolutions.ca/technology/chameleon.html Chameleon]
* OpenLayers
+
* [https://mapguide.osgeo.org/ MapGuide]
* ka-Map
+
* [http://www.openlayers.org/ OpenLayers ]
* CartoWeb
+
* [http://ka-map.maptools.org/ ka-Map]
 +
* [http://www.cartoweb.org/ CartoWeb ]
 +
* [http://www.deegree.org/ deegree iGeoPortal]
  
 
I categorize these clients into two separate categories, each with two sub-categories ... this helps me sort out which platforms most closely match the type of application I am trying to build.  At that point, I would go through the specific features of the contenders to figure out which one to actually use.
 
I categorize these clients into two separate categories, each with two sub-categories ... this helps me sort out which platforms most closely match the type of application I am trying to build.  At that point, I would go through the specific features of the contenders to figure out which one to actually use.
Line 47: Line 53:
 
         mapbender      |  mapbuilder
 
         mapbender      |  mapbuilder
 
client                |  OpenLayers (2)
 
client                |  OpenLayers (2)
                       |
+
                       |   deegree iGeoPortal
 
                   -----------
 
                   -----------
 
-----------------| WebMap.js |------------
 
-----------------| WebMap.js |------------
Line 54: Line 60:
 
                       |  chameleon
 
                       |  chameleon
 
server  mapguide      |  ka-map (1)
 
server  mapguide      |  ka-map (1)
                       |  CartoWeb
+
                       |  CartoWeb (3)
 
                       |
 
                       |
 
</pre>
 
</pre>
Line 61: Line 67:
  
 
(2) OpenLayers can do server-side from ka-Map, but its not the  primary mechanism
 
(2) OpenLayers can do server-side from ka-Map, but its not the  primary mechanism
 +
 +
(3) HTML is actually totally separated from the code with a templating system. However the templating system is not managed through a GUI

Latest revision as of 08:56, 25 February 2009

Purpose: To help web developers select the best web mapping application for their requirements.

Status: Watch out - this page needs updating! This is not an official OSGeo document but just a snap shop from late 2006.

Choosing a Web Mapping Platform for your Application

There are a great many web mapping platforms available to someone starting a new project. If you are new to this world ... or perhaps have a different type of project that won't work with the platform that you are familiar with, this page should help you decide which platform is right for your project.

A web mapping platform is a toolkit that helps you build a web mapping application. It may or may not depend on a particular server technology (like MapServer or MapGuide). This page focuses primarily on Open Source browser-based clients (not the servers).

Note that many of the platforms discussed below are very similar in most respects. There is a move afoot to consolidate some of the core components of these platforms into a single shared library ... which will further blur the distinctions.

The major web mapping platforms are (each needs to be linked to a separate page that describes the project in more detail, esp the benefits to a potential user):

I categorize these clients into two separate categories, each with two sub-categories ... this helps me sort out which platforms most closely match the type of application I am trying to build. At that point, I would go through the specific features of the contenders to figure out which one to actually use.

The two main categories are:

  • How templates are implemented
  • How maps are generated

Templates

In a web mapping platform, a template is simply the HTML that gets sent to the browser. All the web mapping platforms fall into one or both of the following sub-categories.

  • Managed template. A managed template is one that the toolkit manages for you. The actual HTML is typically hidden from the application designer, and some sort of GUI interface is provided for setting up the look and feel of the application
  • Unmanaged template. An unmanaged template is one that the toolkit uses, but doesn't manage for you. The actual HTML is hand-crafted by the application designer.

Maps

In a web mapping platform, maps seem to be used in two different ways (this is arguable for sure). The first is client-side. The second is server-side.

  • Client Side. This type of platform uses pure OGC web services and manages the map and layer state entirely in the client.
  • Server Side. This type of platform uses a server (MapServer or MapGuide) to generate the map, and relies primarily on the server's API to do so.

Undoubtedly, most platforms can do both. However, in my experience, each platform falls more into one of these categories due to its original architecture.

Where the projects

          managed      |      unmanaged
                       |
        mapbender      |   mapbuilder
client                 |   OpenLayers (2)
                       |   deegree iGeoPortal
                  -----------
-----------------| WebMap.js |------------
                  -----------
                       |
                       |  chameleon
server  mapguide       |  ka-map (1)
                       |  CartoWeb (3)
                       |

(1) ka-Map is actually a client side app and can do client-side direct from WMS but its not the primary mechanism and the default install requires a server side component.

(2) OpenLayers can do server-side from ka-Map, but its not the primary mechanism

(3) HTML is actually totally separated from the code with a templating system. However the templating system is not managed through a GUI