Thursday, 25 August 2011

Something (even more) revolutionary this way comes

When I announced that Maestro 4.0 would give you the revolutionary ability to connect to multiple sites at the same time, there was actually a reason for that. Because also coming in Maestro 4.0 is an entirely new way of managing and authoring your MapGuide resources.

Introducing the Local Connection Mode

When you click Connect Locally, you still have to supply a configuration file as you would a TCP/IP connection, exception this file will be provided by the Maestro installation.

And it functions and operates like any other connection

But here's the main difference. Unlike the TCP/IP connection, which is just a wrapper around the official MapGuide API, and thus requires a connection to the MapGuide Server and a cumbersome assembly signing process to properly set up, the Local Connection does not require any MapGuide Server at all!

This is because the Local Connection wraps our very own implementation of the MapGuide API, which runs entirely on the desktop allowing for fully client-side spatial data access and map rendering/stylization.

With the Local Connection mode, you can completely author up a whole bunch of Maps completely disconnected from any MapGuide Server and when you're done, use the magic of packages to instantly load this onto a given MapGuide Server without having to leave the application at all!

Because the MapGuide API uses FDO, we have the (near) full capabilities of FDO available to us, allowing my grand vision of merging FDO Toolbox together with Maestro to finally become reality. Here's some ideas that are possible with Local Connection mode:

  • Bulk Copying of feature source data with support for re-projecting features provided by the MgCoordinateSystem API

  • On a similar theme: Creating optimized datasets from Feature Sources containing Feature Joins

  • Supporting the Convert to SDF and Generalize Data options of Load Procedures

  • Fully client-side previewing of Maps, Layers and Feature Sources with the exact rendering/stylization engine

  • Every other conceivable feature that currently exists in FDO Toolbox, but not in Maestro

  • Super blazing fast localized tile-generation^

Now sadly, this groundbreaking new feature has one small caveat just like FDO Toolbox. It will be windows-only :( Because even though the MapGuide Desktop API itself was written in the most portable fashion of C++, it is the glue libraries that allow a .net application like Maestro to interop with it that are not compatible with Mono in Linux/Mac. But hey, having one revolutionary new feature is just as good as two revolutionary new features is it not?

Stay tuned for a more in-depth overview of the Desktop implementation of the MapGuide API that powers this new feature.

^ This idea is predicated on the fact that the Desktop implementation of the Tile Service APIs is nearly identical to the MapGuide Server, thus it would be theoretically possible to generate the tile cache client-side and copy the tile cache directory over to its corresponding directory in the MapGuide Server installation.


Toni said...

Good news - when will this version be available ?


Chris said...

very nice, we are waiting excitedly on this release. having the ability to work local, and then upload to the server is amazing!
I`m also looking forward for a nice tiling-tool.
Keep up the great work!
When do you think you can publish a first Beta?
greetings from switzerland,

mapNinja said...

Jackie - very interesting, still trying to keep up with what is in your head for where all this is going... any chance of a roadmap?

I am interested in the use of the MG coorinate system transforms from the Maestro API as currently I have to include Maestro and MG references to do this and it all gets messy dev on x64 for x32 release etc etc. Are you saying if I use a local connection in Maestro API and pass a WKT string in then it will now use full precision MG coordinate transforms?

As of today it won't build from trunk... don't want to mess up trac with tickets for your work in progress

Jackie Ng said...

@Chris: First beta coming out soon :)

@mapNinja: Yes that's right. The Local Connection mode wraps a self-contained desktop implementation of the MapGuide API which includes all the MgCoordinateSystem stuff. Though for Maestro, we only expose a simple point coordinate transformation interface because that is only what the Maestro application currently requires.