Symmetri Developer Blog

September 10, 2009

How to simplify GIS shapefile geometry

General, GIS - By Shourov Bhattacharya

Shapefiles are a commonly used format for storing GIS data. But often you have a shapefile that is too large for a particular application - for example, loading into a webpage. In these cases, you may want to simplify the geometry of the data and deal with a reduced filesize at the cost of geometrical complexity.

Mapshaper.org is an online Flash tool for exactly this scenario. You can upload a shapefile, select the mode and extent of simplification, preview the result and then export the modified shapefile. Only caveat - I could not get it to work in the Flash player plugin for Safari.

Web data visualization by region using maps

General, GIS - By Shourov Bhattacharya

I have a project that requires building a web application to do data visualization using maps; showing data by postcode region within Australia and making those visualizations available through the web browser. Postcode region data is available in GIS data files in MapInfo (MIF) format; other data will be available in some sort of database driven format such as XML or JSON. We want output that looks something like this (with or without the 3D effect):

Data Visualization via Region

I’ve spent some time researching possible solutions and thought I might publish a summary, to help someone else who might be researching a similar problem.

Eight options for a solution are considered, the last of which was to build map interfaces completely from scratch; the other seven involve using software packages or using online APIs for building maps. I evaluated each solution on several different criteria and made some summary notes about each one. Hope this might help someone else to get started in building online mapping solutions.

UPDATE: I have found a commendable little project on the web at DreamingWell that parses shapefiles directly from Flex and renders maps. That could the basis for a custom solution.

Solution Description More information
SOL.1 Fusion Maps Fusion Maps are customizable Flash map components for data visualization. http://www.fusioncharts.com/maps/
SOL.2 IBM ILOG Elixir Data visualization components for Flash/Flex include maps and heat maps. http://www.ilog.com/products/ilogelixir/
SOL.3 Corda Optimap Server based mapping solution that creates dynamic maps with overlays. http://www.corda.com/optimap-additional-maps.php
SOL.4 Yahoo Maps API Integrate rich,
interactive maps using AJAX or Flash API that calls images and data from Yahoo web service.
http://developer.yahoo.com/maps/
SOL.5 Google Earth and Google
Maps API
Integrate rich, interactive maps using AJAX or Flash API that calls images and data from Google web service. http://code.google.com/apis/maps/
SOL.6 MapInfo/Envinsa MapInfo Professional® is a powerful Microsoft® Windows®-based mapping and geographic analysis application http://www.pbinsight.com/products/location-intelligence/applications/mapping-analytical/mapinfo-professional/
SOL.7 Visual Fusion Visual Fusion is an enterprise mashup platform for that can be used to create rich maps. http://www.idvsolutions.com/
SOL.8 Completely custom solution A mapping interface built completely from scratch; using static map images from licensed or open source third parties.

Solution Technology Dev effort Lic cost Ability to customize? Native import of GIS data? Interactivity Level of detail Aesthetics
SOL.1 Fusion Maps Flash/Flex/AJAX Medium $999 Yes, but does NOT support
zipcodes or latitude/long
No Basic but good –
rollover effects, events
Low – block colours
by region, no features
Basic but good
SOL.2 IBM ILOG Elixir Flex Medium $799/developer Colour by region, create
density maps.
Yes for shapefile, No for
MID/MIF
Good – selection,
zooming, rollover
Low – block colours
by region or “heatmap”
Good, clean and
professional looking
SOL.3 Corda Optimap Java/JSP High $2500+ Colour by region but no GIS
support at all. Can’t define own interactions?
No Basic – callout
notes, popup text, drill down to other maps
Low – block colours
by region, no features
Basic but good
SOL.4 Yahoo Maps API AJAX or Flash/Flex Medium/High ??? Good customization but
many features irrelevant to this project
Not natively; would need
to develop parser/renderer
Good – rollover,
scripting, events
Excellent, complete detail
to stret level
Good but can look
cluttered
SOL.5 Google Maps API AJAX or Flash/Flex Medium/High ??? Awaiting Google
response
Good customization but
many features irrelevant to this project
Plugins for import of KML Good – rollover,
scripting, events
Excellent, complete detail
to stret level
Good but can look
cluttered. Google Earth looks very real.
SOL.6 MapInfo/Envinsa Medium A lot Excellent but very
cumbersome
??? ??? ??? ???
SOL.7 Visual Fusion .NET/
Silverlight
Medium ??? Good customization Not natively (awaiting
confirmation)
All interactions supported Medium level detail Good
SOL.8 Completely custom solution Flash/Flex/.NET/AJAX Very high None N/A Yes with development using
open-source libraries
N/A As good as designed

Solution Notes
SOL.1 Fusion Maps Seems to be too simple for the purposes of this project. Level of detail is not good enough for mapping of postcode level data. Also lacks any technical hooks for importing GIS postcode information. Not suitable.
SOL.2 IBM ILOG Elixir Has good but basic mapping capabilities but can import GIS data from shapefiles. Other components in Ilog Elixir also useful for reporting. May be a good solution; requires prototyping and validation.
SOL.3 Corda Optimap No real support for GIS and pitched more towards a simpler business scenario. Java technology platform is not good fit for existing Flex application. Will not be suitable for mapping of postcode level data.
SOL.4 Yahoo Maps API Building a solution with Yahoo Maps API will be possible, but it may require a lot of development effort to get to even the simplest visualisation. Need to find a way to integrate GIS data into the Yahoo Maps; then build the interactive layer on top that will allow drilling down into data etc. Although Yahoo Maps API is excellent, the Yahoo Maps platform is not really suited for data visualization but more for actual spatial mapping. Much of the functionality and street level detail fo Yahoo Maps is irrelevant for the current application. It therefore intuitively feels like a sup-optimal solution.
SOL.5 Google Maps API Building a solution with Google Maps API will be possible, but it may require a lot of development effort to get to even the simplest visualisation. Can import KML data into Google Earth and Google Maps, but same comments re: suitability as above for Yahoo Maps. Also any solution would be dependent on external Google server, their API and IP would therefore be shared. There are also licensing issues with developing Google Maps applications that are not free. Probably not suitable overall.
SOL.6 MapInfo/Envinsa Evinsa/MapInfo is an enterprise-level location platform. It has a feature set that is overkill for the current application. Too cumbersome and costly. Not suitable.
SOL.7 Visual Fusion Clean and good looking, but in Silverlight and therefore not a perfect fit with existing Flex application. Could be worth exploring further though. Not sure if can import GIS info for
postcodes – waiting on support query. Possibly a solution, needs clarification from provider and some prototyping.
SOL.8 Completely custom solution Building a complete map interface from scratch has very high development effort. Should really only be pursued as a last option. UPDATE: Using code from DreamingWell could reduce development time drastically and make this a viable solution.

Get free blog up and running in minutes with Blogsome
Theme designed by Janis Joseph