Wednesday 29 March 2006

Issues with Google Maps and Web Map Server (WMS) Mashups



I've been integrating a Google Map layer into Community Mapbuilder - a web mapping client so that we can display Web Map Server (WMS) layers over a GoogleMap base.
However, we have run into problems with Spacial Reference Systems (or projection). A projection is a way to describe a spherical world on a flat piece of paper.
The WMS specification (as defined by the Open Geospacial Consortium) defines thousands of different Spacial Reference Systems using EPSG codes. For example, simple (lat,long) uses EPSG:4326. And a WMS request looks something like:

http://www2.demis.nl/WMS/wms.asp?wms=WorldMap&wmtver=1.0.0&request=map&layers=Builtup+areas,Railroads,Highways,Roads,Trails,Borders,Cities,Settlements,Airports&srs=EPSG:4326&bbox=-160.14,-3.37,-19.69,55.23&width=800&height=400&format=image/gif&styles=default&transparent=true&uniqued=

Unfortunately, the Mercator projection & datum used by Google Maps does not have a corresponding EPSG code.
Consequently, as far as I can work out, it is not possible to use a standard way to request a WMS map which is in the same projection as Google Maps.
Existing WMS/Google Map mashups I've seen on the web so far use EPSG:4326. This projection is reasonably close if you zoom into a city, but is out by miles if you look at a map of the world. (See images).
Recommendation
  1. Google, the OGC, and the owners of EPSG codes should get together and define a new EPSG code so these two types of maps can be incorporated together.
  2. I'm guessing option 1 will take a while. So in the mean time, WMS servers and WMS clients (like Mapbuilder) should define our own EPSG code to use in the interum. Maybe EPSG:Mercator?
Disclaimer
I'm a programmer, not a geographer, so I'm likely to have some of the geographic terms incorrect.
Update 30 Sept 2006
John Deck has blogged describing a work around to rendering WMS on Google Maps at
http://johndeck.blogspot.com/2005/09/overlaying-mercator-projected-wms.html and then an update at http://johndeck.blogspot.com/2006_02_01_johndeck_archive.html.
Open Layers have incorporated a hack into their codebase which includes stretching the WMS layer to fit. This will still have distortion issues as the projection of the WMS and Google Map use different projections.
The best solution would still be if a new EPSG code were created for GoogleMap layers.

Friday 24 March 2006

Why does Open Source achieve better CMMI than CMMI practitioners?

(Rough thoughs that I hope to build into an essay.)
  • What is CMMI?
  • CMMI level 3 involves common processes across an organisation to ease.
  • In a corporation, this means Processes and Tools are mandated from the top of a company down. Tools are often selected and then mandated by Management.
  • In corporations, innovation in processes and tools are often stifled in a drive to try and maintain common processes across the corporations.
  • OS achieves common processes across projects without having a mandate from the top. Eg: Most OS projects are now moving to Subversion for Configuration Management.
  • Difference: Practictioners choose their tools based on their merits. The best tools become the defacto standard.
Why can't big companies compete on small contracts?
  • Big companies can't bid on small projects because they are not competative. Reason given is they have too many overheads. This should not be the case. The big company should be able to reduce overheads by using the economies of scale.
  • This implies to me that Big Companies are imposing inefficient processes on their staff.
  • Why can't a big company sponsor a startup division without imposing the company overhead.

Recommendation:
  • Allow each business unit to pick their own tools and processes.
  • Provide opportunities for business units to share experience and suggest tools.
  • Allow processes and templates to be developed as if they were an open source project.
Examples:
  • My experiences with CMMI and OS.