[mapguide-internals] RE: Discussion: Taking MapGuide beyond the server/web tier and into the desktop

Jackie Ng jumpinjackie at gmail.com
Fri Feb 11 00:13:46 EST 2011


Hi All,

I thought I'd necro this thread as I've been playing around over the New
Year and made significant progress on creating a desktop-based MapGuide API

http://code.google.com/p/mg-desktop/

There is also a .net app which is basically a WinForms-based version of the
mapagent test pages, allowing you to test various aspects of the desktop
MapGuide API. 

Load in the Sheboygan dataset (yes it supports packages!) and have a play
around.

Source code only at the moment, will get binaries up soon.

Now the dirty technical details for these that are interested:

 - This is a desktop-implementation of PlatformBase. It doesn't talk to a
MapGuide Server, nor does it know anything about MapGuide Servers
 - MgResourceService is a basic file-system wrapper for a pre-defined
directory defined in your config file
 - MgResourceService does not do reference tracking at the moment. Move a
resource and you'll probably break something. Related APIs throw
MgNotImplementedException
 - MgResourceService does not currently support aliases, resource headers,
repository management or security. Such APIs throw MgNotImplementedException
 - MgFeatureService is a basic wrapper around FDO. UpdateFeatures API is not
implemented.
 - MgFeatureService does not currently support joins / extended feature
classes.
 - MgRenderingService is fully operational. I've cut down on the various
overloads of RenderMap and RenderDynamicOverlay as I believe the runtime
state of the map should be driving the rendering
 - As a result, I've exposed setters for DPI, width, height and other
various display parameters (that are normally readonly in MgMap) for my
implementation of MgMapBase
 - The source code itself references the build output of build_sdk.bat which
I checked in recently to MapGuide Trunk. The checked in copy was from a
build of trunk last month, so the API and feature set should correspond to
what will be MGOS 2.3.
 - The .net wrapper is currently a single monolithic assembly (due to my
header file layout being incompatible with existing SWIG recipe files), so
you can't reuse existing OSGeo.MapGuide.* split assemblies. Your .net code
will have to reference this assembly directly.
 - Some operations may be a bit slower than what's normally expected on the
MapGuide Server. In the process of grafting the relevant bits out of the
server codebase (as opposed to copying/pasting which implies lack of
surgical precision :D), I had to take out the caching code as this was
heavily tied into the server codebase. Caching will be re-implemented, but
functionality (ie. getting the thing to work) comes first at the moment.



- Jackie
-- 
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Discussion-Taking-MapGuide-beyond-the-server-web-tier-and-into-the-desktop-tp4249819p6014580.html
Sent from the MapGuide Internals mailing list archive at Nabble.com.


More information about the mapguide-internals mailing list