Future Direction for Project

Coordinator
May 30, 2009 at 2:20 AM

Some Background

DeepEarth began as a project for likeminded developers to explore what the power of Silverlight, DeepZoom and Maps could do. Huge contributions from developers like Shaun, Rick and David created an innovative open source map control with many components. At Christmas 2008 we produced a V1 release and followed up with a V1.1, many developers have downloaded and used the control with successful results. But a few things happened in March this year which stalled the project:

  • Microsoft released Silverlight 3 preview
  • Microsoft release the Virtual Earth CTP Silverlight control
  • ESRI released a Silverlight control

None of these were unexpected but certainly these made me think about what would be best for DeepEarth and developers wanting to contribute to this space. Some lessons I have learnt over the life of the project:

  • The project must be very simple to get running on your machine, tokens, source safe files and many web projects makes this tricky.
  • For people to easily contribute a few days of their valuable time the solution needs to be easy to understand or else all effort is used in just getting to terms with the existing code.
  • People want to contribute code, more flexibility is required in giving write access (Developer Role)
  • Everyone's time is precious and although we enjoy coding new exciting silverlight controls it often takes a back seat to other commitments.
  • Commercially it is impossible to use an unsupported open source control for production environments

New Direction

DeepEarth will become an innovation centre for controls, libraries and services for use on any Silverlight mapping platform.

Firstly we won't be abandoning the existing control, it still is the only open source Silverlight map control available. Rather we will be componentizing the reusable controls and code and moving these into separate generic controls with implementations for other Silverlight map controls, for example the Microsoft Virtual Earth CTP Silverlight control.

Each control will be its own project within the solution, with the ability to add implementations for any Silverlight map control developers want to use. This modular approach solves many problems:

  • Developers can pick and choose what they want to use from the project for their solution
  • It will be very easy to contribute a new control or enhancement to an existing control
  • Developers can choose which base map control suits there specific needs and still use rich common controls.
  • We can provide a Silverlight 3 branch of controls

Secondly I'm please to announce we have a commercial partner that will be providing enterprise level testing, documentation and support around this project. More details to follow on this but essentially controls developed here will be refactored, documented, unit tests created and then published back to this project under the Microsoft Public License (Ms-PL).

Lastly I have a list of the current control and some more I've been working on that will make the initial base of the project.

  • Navigation Control
  • Co-ordinate Control
  • Layer Control
  • Digitizer (drawing) Control
  • Timeline Control
  • Collaboration Control
  • Mini-map Control
  • WMS Control
  • Pins, Polygons, Polylines
  • GML Serialization (SQL2008 integration)
  • Tile Providers
  • Tile Cache Handler

Over the next few weeks there will be some restructuring here, I'd love to hear your feedback and constructive criticisms.

May 30, 2009 at 4:01 PM

Hi,

Just some feedback from a grateful user – DeepEarth really opened my eyes to what Silverlight/DeepZoom could mean for map UIs. I think this is the right direction unless Microsoft requires a license for MapControl CTP.

If I’m understanding the new direction DeepEarth would be like an independent Silverlight Toolkit specific to map UIs. DeepEarth xaml controls would be portable across the full range of Silverlight map engines e.g. MS MapControl, ESRI control, DeepEarth?? ….

If Microsoft licenses  the Virtual Earth (bing map?) service, while Silverlight MapControl is just another xaml control in the toolbox then I can’t see how DeepEarth would compete at the MultiScale map engine level. If the license for the MapControl is not strictly transaction access to Virtual Earth, then DeepEarth is still in the Map Engine business as the only open source Silverlight option for OSM, OpenAerial, etc.

In my experiments so far, MS MapControl seems to work really well with multiple tile sources, various backend data sources, and the usual OGC services. As long as it doesn’t have license restrictions, it would work well for open source viewing options. I doubt that the ESRI Silverlight control would be as flexible, but have no experience.

As an open source user I want to be able to easily pick and choose among various backing databases, map services, and tile sources. Most of the customization would be at the xaml level and I think DeepEarth has a lot to offer. The menu, drawing, navigation, pushpin etc xaml is left to the developer in MapControl. DeepEarth already has some elegant controls.

By the way ‘GML serializing/parsing’ would be useful for other sources than SQL Server. OGC WFS/WFS-T are strictly speaking GML export/import standards even though GeoServer and MapServer aren’t that restrictive and support SVG, KML, etc. Also PostGIS has GML export at the feature level for going directly against the database. Even though GML transport is very heavy it does seem to cover every conceivable GIS possibility.

I’m not sure I understand how ‘tile provider’ or ‘tile caching’ would be xaml controls since they would be on the tile provider server end.

‘WMS Control’ –

I’ve had fun with WMS recently http://www.cadmaps.com/gisblog , and I’d like to see some nifty options for layer menus, GetFeatureInfo requests, drawing tools, etc  One problem that would be nice to solve is the lack of support for spherical Mercator from some of the major WMS services. Some kind of image transform from universal EPSG:4326 to not so common EPSG:3857 in a proxy would be a useful addition, although I don’t know if this is reasonably possible.

Also, WFS/WFS-T and WCS would benefit from Silverlight options. Especially since Silverlight shape performance far surpasses other viewers I have worked with.

If only Silverlight incorporated Model3D xaml it could do some wild things not possible elsewhere.

Thanks for all your work on DeepEarth

From: soulsolutions [mailto:notifications@codeplex.com]
Sent: Friday, May 29, 2009 7:20 PM
To: rkgeorge@cadmaps.com
Subject: Future Direction for Project [deepearth:57945]

From: soulsolutions

Some Background

DeepEarth began as a project for likeminded developers to explore what the power of Silverlight, DeepZoom and Maps could do. Huge contributions from developers like Shaun, Rick and David created an innovative open source map control with many components. At Christmas 2008 we produced a V1 release and followed up with a V1.1, many developers have downloaded and used the control with successful results. But a few things happened in March this year which stalled the project:

  • Microsoft released Silverlight 3 preview
  • Microsoft release the Virtual Earth CTP Silverlight control
  • ESRI released a Silverlight control

None of these were unexpected but certainly these made me think about what would be best for DeepEarth and developers wanting to contribute to this space. Some lessons I have learnt over the life of the project:

  • The project must be very simple to get running on your machine, tokens, source safe files and many web projects makes this tricky.
  • For people to easily contribute a few days of their valuable time the solution needs to be easy to understand or else all effort is used in just getting to terms with the existing code.
  • People want to contribute code, more flexibility is required in giving write access (Developer Role)
  • Everyone's time is precious and although we enjoy coding new exciting silverlight controls it often takes a back seat to other commitments.
  • Commercially it is impossible to use an unsupported open source control for production environments

New Direction

DeepEarth will become an innovation centre for controls, libraries and services for use on any Silverlight mapping platform.

Firstly we won't be abandoning the existing control, it still is the only open source Silverlight map control available. Rather we will be componentizing the reusable controls and code and moving these into separate generic controls with implementations for other Silverlight map controls, for example the Microsoft Virtual Earth CTP Silverlight control.

Each control will be its own project within the solution, with the ability to add implementations for any Silverlight map control developers want to use. This modular approach solves many problems:

  • Developers can pick and choose what they want to use from the project for their solution
  • It will be very easy to contribute a new control or enhancement to an existing control
  • Developers can choose which base map control suits there specific needs and still use rich common controls.
  • We can provide a Silverlight 3 branch of controls

Secondly I'm please to announce we have a commercial partner that will be providing enterprise level testing, documentation and support around this project. More details to follow on this but essentially controls developed here will be refactored, documented, unit tests created and then published back to this project under the Microsoft Public License (Ms-PL).

Lastly I have a list of the current control and some more I've been working on that will make the initial base of the project.

  • Navigation Control
  • Co-ordinate Control
  • Layer Control
  • Digitizer (drawing) Control
  • Timeline Control
  • Collaboration Control
  • Mini-map Control
  • WMS Control
  • Pins, Polygons, Polylines
  • GML Serialization (SQL2008 integration)
  • Tile Providers
  • Tile Cache Handler

Over the next few weeks there will be some restructuring here, I'd love to hear your feedback and constructive criticisms.

Read the full discussion online.

To add a post to this discussion, reply to this email (deepearth@discussions.codeplex.com)

To start a new discussion for this project, email deepearth@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com

Coordinator
Jun 5, 2009 at 7:19 AM

I've posted the first draft of a diagram Geoff has been working on:

http://deepearth.codeplex.com/Wiki/View.aspx?title=Architecture

And I'm in the middle of restructuring the code to suit. The diagram gives a really good overview of how DeepEarth fits into the overall GIS space. We will keep refining this and please ask us questions and give your views.

Jun 9, 2009 at 2:59 AM

Hi rkgeorge

thanks for your comments/feedback.

We've recently posted a draft architecture for the DeepEarth project. Wrt your post - basically Deep Earth client will include WFS-T capabilities and Deep earth server side will aim to develop into a SQL 2008 WFS server. The Deep Earth UI controls will become a toolbox compliant with base silverlight mapping controls (initially MS/Bing). Some UI controls will become multi-platform (eg layer/find control for both web and desktop).

any feddback/comments on the draft architecture model most welcome.

thanks,Geoff

 

Developer
Jun 12, 2009 at 7:00 PM
Edited Jun 12, 2009 at 7:11 PM

I think this is the right direction to take. DeepEarth has been a great tool to showcase what Silverlight mapping can be. With the release of other controls (the Virtual Earth/Bing Maps one especially), it makes a lot of sense to focus most of the effort on enhancing them.

In terms of the proposed architecture, there are a lot of good things in there. Here are a few comments:

  • Under GML/WFS-T server items, how do specific components for SQL Server 2008 differ from existing WFS-T servers, such as GeoServer, that support SQL Server 2008 as one of their data stores?
  • For vector handling, one option would be to port the NetTopologySuite library to Silverlight and use its geometry classes, which are based on GeoAPI. It includes GML, WKT, and WKB serialization as well as many useful spatial functions, such as distance and buffer calculations, point in polygon queries, and so on. Having all this power in the client makes for a great user experience, as you can imagine. We have ported both NetTopologySuite and GeoAPI to Silverlight for our project that uses DeepEarth. I would be happy to contribute them if you are interested.
  • In terms of controls, I would love to see digitizing/drawing tools as one of the priorities. The initial version of Bing Maps won't have them and it's difficult to build a credible mapping application without them. One of the nice implementations I've seen is from IDV. To see it in action, create a new drawing and use the line or area tools. As you draw, the application displays "ghost" points between the ones you create, letting you easily add and drag new points to the geometry.
  • WMS support is another key feature in my opinion. In our project, we currently convert tile indexes to appropriate WMS requests. However, the nature of WMS makes this approach impractical. Too many requests are made, which can impact performance significantly depending on the type of layers used. A better approach would be to make single requests for the entire map view once navigation has stopped.
  • With regards to rkgeorge's comments, it may be possible to convert WGS lat/long requests into Spherical Mercator tiles for WMS servers that don't support it.  You could tweak the request by changing the image ratio if the WMS server allows it or request a larger image and crop it otherwise. Just a thought, I'd have to look into it to see if this would actually work.
  • One last thing, it's minor but it would be nice to have a scale control that displays both imperial and metric units, similar to what Google Maps has. The current CTP of the Bing Maps control seems to only use one or the other.

Thanks for all the effort that was put into this until now. It has been greatly appreciated.

Cheers,
Anthony

Jun 12, 2009 at 9:42 PM

Hi there,

Being a user of Deep Earth, I think you are in the right direction. Nowadays company's wants to save money and surely DeepEarth will be used in lot of applications.

One of the feature I would like to see is the ability to switch the co-ordinate system. Currently, My applications uses WGS84 but  the DeepEarth is based on Mercator. Mercator is good for consumer applications, but for Professional prefer WGS84 for accuracy.

Keep up the good work folks!

Jun 13, 2009 at 10:05 AM

Hi Anthony

thanks for your comments. Some thoughts in reply...

  • Under GML/WFS-T server items, how do specific components for SQL Server 2008 differ from existing WFS-T servers, such as GeoServer, that support SQL Server 2008 as one of their data stores?

Vector support in Deep Earth has gotten up to speed using SQL 2008 using the ability to store vectors natively and access them by sql .toGML() statements.   I think though that  the DE project will focus now on wfs-t compatibility. I think though that sql 2008 server components may still be useful 

  1. in simple environments for a developer to deploy only deep earth server side (direct access to vector in sql 2008) and client.... (maybe..?)
  2. deploying into an environment where the existing wfs server is not fully wfs-t compliant  and so wouldn't support digitising etc.
  3. non WFS scenarios requiring  vector support - eg  disconnected editing (using silverlight 3, sync.net, sql 2008 replication?) or peer based gis (possibly)
  • For vector handling, <snip/> We have ported both NetTopologySuite and GeoAPI to Silverlight for our project that uses DeepEarth. I would be happy to contribute them if you are interested.

Sounds fantastic, please do.  Would save us a bunch of work. Have added you as a developer.

  • In terms of controls, I would love to see digitizing/drawing tools as one of the priorities.

Our digitising tools are currently in beta at a client site. Thanks to dotnetnoobie and john from soul solutions for putting these together. John published them last week. Feedback /improvements welcome.

  • WMS support ..

    We haven't looked too much at WMS support from the client. Any momentum in this area appreciated.

    • ..scale control that displays both imperial and metric units, similar to what Google Maps has.

     have added it.

    thanks,Geoff

     

  • Coordinator
    Jun 17, 2009 at 12:19 AM

    I havn't yet pushed the digitizing tools back into the project, the current code is the first interation from DotNetNoobie. I will push them in this week under "experimental" as they only work with the VE control currently.

    I'm working hard on the first example control with new architecture - Coordinate panel - hope to have it out today with a full post for review. Once we're happy with the architecture it should be straight forward to move the experiemental controls to a "preview" state.

    Developer
    Jul 23, 2009 at 4:56 AM

    I have been unable to keep up with all the changes of late

    slowly I am catching up and have been able to have some moments here and there to try to get up todate :)

    I was just wondering if WMS is/has been fixed so it is possible to use a WMS tile/map server and have it display in the correctly

    Coordinator
    Jul 23, 2009 at 1:17 PM

    Welcome back online dotnetnoobie!

    We have been really busy with this new structure, if get the latest code there are 1001 projects in the solution. I think eventually it may make sence to have a core solution and then a solution per control but for now it is easier to maintain one big solution until we get a release done.

    So on the main page: http://deepearth.codeplex.com you will see a little table of the controls and whether they work with the DeepEarth map control or Bing Maps CTP control.

    Currently I have moved most of the basic controls into their own projects and got them working with Bing. There is a big task to remove them from the core DeepEarth map control and then add a DeepEarth implimentation. I should really do the first one to show how it works.

    The idea is we end up with a really lean DeepEarth map control, ready to update to Silverlight3 goodness (MouseWheel support, Out of Browser, Smooth Streaming, Deep Linking) and a bunch of really reusable controls to plug and play into both the Bing Maps CTP SL2 control and the DeepEarth map control. We will probably have to make a SL3 branch at some stage pretty soon.

    Personally I've been working on rendering all the OGC Geometries in Bing Maps CTP control. I have this working today from WKB (SQL2008) supporting Points, Multipoints, LineString, MultiLineString, Polygon, MultiPolygon and GeometryCollection :) The only I don't have working is interior rings (donuts).

    Oh and I've added Labels and a neat Balloon popup that can load it's content on demand :) With a bit of luck I should check this in tonight :)

    Next up for me in the Digiziter and what is called WFS-T support so we can edit all geometries and save them back to SQL2008.

    Summary - lots of cool stuff happening, way to much to do, ping me if something interests you and you want some pointers.