This project has moved and is read-only. For the latest updates, please go here.

Considerations for using SharpMap as a WMS server overlaid on Google Maps

Topics: Data Access, SharpMap Project, SharpMap v0.9 / v1.x
Jun 20, 2009 at 9:05 AM


Im new to GIS and SharpMap so bear with me ;)

I am considering using SharpMap (0.9) as a WMS server to generate overlays on top of Google maps. The overlays will be chart like, kpi data for different areas.

As the datasets are dynamic and i would like the user to have control over the style of the overlays, pre rendering them doesn't seem to be an option.

Given that this is a Web based product what areas should i be considering?

  • I have concerns about performance, are there ways that *.shp files can be cached for instance? Would this envolve writing a custom provider?
  • Would it even be possible to use *.shp of 150mb in this scenario?
  • Should the *.shp be moved to database ?
  • If the *.shp remain on the filesystem will there be locking issues?
  • At lower zoom levels (where i am displaying lots of detail) are there ways to increase performance by rendering the geometry at a low fidelity?

Any tips and pointers would be greatly appreciated.

Thanks for a great project!





Jun 21, 2009 at 2:26 PM

Hi Matt, if you use the shapefile provider overload that takes the fileBasedIndex overload you will get a bit of extra performance - you wouldnt need to write a custom provider.

You can use shapefiles of any size (subject to hardware) but clearly if you are rendering 150Mb of actual geometric data (rather than reading attribute data in the dbf file) performance is likely to be pretty sub standard.

You can can put the data into a db, most of my work is db based, but it is up to you - many people leave it in shapefiles..

There shouldn't be locking issues with the 0.9 provider - You may have issues with later ones which are read/write..

At lower zoom  levels you could (and possibly should if you have such a lot of geometric data) use the MinVisible/MaxVisible properties to enable and disable different layers at different levels of generalization.

hth jd


Jun 22, 2009 at 6:16 PM

Hey John,

Thanks for the reply.

I will look into the fileBasedIndex and Min/Max Visible props.