Ideas for SharpMap v2 Web

Topics: SharpMap v2.0, Web Controls
Coordinator
Feb 22, 2008 at 11:12 AM
Edited Feb 22, 2008 at 11:20 AM
Hi everyone, during the dev meeting on wednesday we started discussing ideas for the v2 web implementation. I would like to ask the community for their ideas.
Initially we discussed the need for different versions of the web renderer.

I am assuming some people will want just a fast map renderer while others will want to track state / selections etc and we feel that these aims are somewhat contradictary. It would be interesting to know how many people fall into each camp.

We also discussed using a diiferent renderer to actually produce render the images (perhaps AGG http://www.antigrain.com/) after all it is a sin to use GDI+ in a webserver environment (we all do though of course!). If anyone here has experience of using AGG please speak up!

Other ideas we had included rendering to JSON streams which could be utilised in a client Silverlight / Flash / Ajax control.

I am interested to know how everyone currently uses sharp map in a web environment.
Do you:
Render static data in a pre canned map
Dynamically assign static layers at runtime to create variations on a map.
Create dynamic layers at runtime to create brand new maps
Use Tiles
Cache Tiles
Use sharp map as a wms server
etc..

Also what kinds of server environments do you use.
Single server / web garden /web farm
Do you enable/use session


Please let us know..
Thanks jd
Developer
Feb 22, 2008 at 1:56 PM
> Use Tiles
>Cache Tiles
I think that SharpMap could be extended to use this tile servers:
http://blog.davebouwman.net/2008/02/03/ArcGISServerVirtualEarthTileServerV01ReleaseNotes.aspx
http://www.tilecache.org/
This could improve performances, like in http://www.ultramap.cl/ (that is sharpmap based).

>Use sharp map as a wms server.
The 0.9 implementation is not bat (except for gif transparency support, but this is due to gdi+ llimitations), except that featureinfo (that is optional in WMS, but extremely useful) is not supported: btw it's not hard to extend sharpmap to let implement WMS getfeatureinfo call.
Developer
Feb 22, 2008 at 9:40 PM
Edited Feb 23, 2008 at 5:50 AM
So far I have worked on (WPF) desktop applications with SharpMap. I would be interested in working on a Silverlight web client based on SharpMap. I imagine such a client would rouhgly follow the architecture of clients like mapbuilder/openlayers/GoogleMaps and will talk to WMS/WFS/tilecaches on the server. If we want to return XAML to the client we could use SharpMap as WMS/WFS. For tiles we have been using tilecache.py on Apache for both SharpMap and MapBuilder and are happy with it. We cache on the client.

@Diego
What parts of ultramap use SharpMap?
Developer
Feb 23, 2008 at 9:58 AM
>What parts of ultramap use SharpMap?
I dont' know much about this. I've talked about this with Ricardo Stuven, that is the man behind the project, but a lot of the project is custom code added on top of sharpmap, and is not opensource :(
Feb 23, 2008 at 8:03 PM
My application falls into this :

>Dynamically assign static layers at runtime to create variations on a map.
>Create dynamic layers at runtime to create brand new maps

my application users are used to traditional GIS experience and use of pre-rendering irritates them. they also have access to arbitrarily control theme visibility.

> use of session

yes - each user has total control of their view/experience and as such requires a unique image set.

> vector rendering

have built systems using SVG output. caches fragments into "titles" so that you can fetch only part of the xml set as needed. bummer is that only IE and adobe provide a reasonable client at this point. silverlight is where this sort of activity needs to go, but even that is not universal

> static images
mobile support will alwyas require current rendering method (which is quite good).


--/\/\ike
Coordinator
Feb 25, 2008 at 10:39 AM
Thanks for the responses everyone.
@mikerg87 How many users do you support concurrently or is it a public service? Also do you crop the vector geometries against the svg tile or do you include the whole geometry on all overlapped svg tiles?

Thanks jd
Feb 25, 2008 at 2:41 PM

It's embedded into a custom application and i designed to support 100 concurrent users which works out to about 50 rps from the ACT load test we performed.

re: clipping

the scene (all rendered themes) are broken down into a set of 24x24 tiles superimposed over the domain. differing levels of detail/zoom levels group the elements differently. a logical viewport is used to track overlap against the tiles and adds/removes them from the scene graph for rendering. we rely on the svg control for clipping against the "hard edge" of the control and let the system render as usual. by simply eliminating tiles from rendering we can realize reasonable gains in performance especially when you talk about "complicated" elements such as administrative boundaries and rivers which have lots of points that are overdrawn repeatedly.

It was my hope that silverlight 1.1/2.0 with its DLR support would allow for better control. With SVG these tiles arecontrolled by a mass of fugly javascript/svg dom interaction. since not all svg implementations allow interaction with its DOM (eg. mozilla/firefox, corel etc) we are locked to a single browser/client and that really is no good. its why I am so interested in working on sharpMAP with silverlight.


JohnDiss wrote:
Thanks for the responses everyone.
@mikerg87 How many users do you support concurrently or is it a public service? Also do you crop the vector geometries against the svg tile or do you include the whole geometry on all overlapped svg tiles?

Thanks jd

Feb 27, 2008 at 2:21 PM
Edited Feb 27, 2008 at 2:30 PM
I am currently using v.9 to build a web based map viewer for my client.

The maps for the current viewer are only updated monthly and the process is cumbersome. The desire is to have near real time data; so the new map viewer will render several layers from a database at run time.

The initial web application will be built using the Ajax control. Functionality will be added to toggle layers, query features and measure from feature to feature. In the future I see WMS and tile functionality being beneficial to my client.

The hardware environement will be a single web server with a back end database server. And yes session support is enabled and used.
Coordinator
Mar 3, 2008 at 9:53 PM
Edited Mar 3, 2008 at 9:54 PM
Hi everyone. I have uploaded an initial project layout to http://code.google.com/p/sharpmapv2aspnet/ It does not render yet but should give some idea of what I am thinking. Comments welcome. Cheers jd
Coordinator
Mar 4, 2008 at 1:53 AM
For the lazy: http://code.google.com/p/sharpmapv2aspnet/