It needs the reference to get the connection object, which is used to
retrieve the
layerdefinition and the name of the primary key column (the property "IDs").
There is also an overload that takes the runtime map instance.
Feel free to write an overload that constructs the RuntimeMapLayer with
just a connection object instead.
If you attach a patch to a ticket, I will put it in trunk.
The runtime layer stuff is a bit clumsy, if you have ideas for
improvements, I'm all ears.
Although that exception should not be able terminate the MgServer service...
Regards, Kenneth Skovhede, GEOGRAF A/S
Gunter Becker skrev:
OK, initializing the RuntimeMapLayer works but after saving back the modified
map to the Session-Repository the MgServer service is terminated. I have to
restart the service and also the IIS.
When I debug my application I relize an error on the
RuntimeMapLayer.IDs-property:
'runMapLayer.IDs' threw an exception of type 'System.Exception'
Message: Cannot reload ID's because the layers parent is not set
StackTrace: at
OSGeo.MapGuide.MaestroAPI.RuntimeClasses.RuntimeMapLayer.FindResourceIDs()
at
OSGeo.MapGuide.MaestroAPI.RuntimeClasses.RuntimeMapLayer.get_IDs()"
So I've looked at the parent-property of the RuntimeMapLayer and it is set
to "null". Does this cause the problem? The parent-property is of type
MapDefinition and I'm wondering why I need a reference to the MapDefinition
at all?
What ist the best practice, when I want to add a new layer at runtime from
an exisiting MapDefinition in Library-Repository and which methode should I
use
Gunter
Gunter Becker wrote:
Great, it works for me.
Thank you Kenneth
Kenneth Skovhede, GEOGRAF A/S wrote:
Indeed it is.
You need to change line 1545 of the file
MaestroAPI/Generated/LayerDefinition-1.3.0.cs
http://trac.osgeo.org/mapguide/browser/trunk/Tools/Maestro/MaestroAPI/Generated/LayerDefinition-1.2.0.cs#L1545
Before:
public static readonly string SchemaName = "LayerDefinition-1.2.0.xsd";
After:
public static readonly string SchemaName = "LayerDefinition-1.3.0.xsd";
I will put that fix in trunk, but for now you can use it if you compile
yourself.
This also means that you cannot save 1.3.0 layers from Maestro.
Regards, Kenneth Skovhede, GEOGRAF A/S
Gunter Becker skrev:
Hi,
I'm trying to add a layer to the runtimemap using the MaestroAPI:
MapLayerType layer = layerArray[layerName];
RuntimeMapLayer runMapLayer = new RuntimeMapLayer(layer);
runMap.Layers.Add(runMapLayer);
On creating the RuntimeMapLayer I get the following Error:
error in XML document (2,117)
I suppose it's the same error like in this
http://n2.nabble.com/Can%27t-open-LayerDefinition-with-maestro-tt3276282.html#a3276282
thread and therefore I build the MaestroAPI.dll
from trunk as mentioned there. But the error still remains.
Any idea?
Thanks, Gunter
_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users
_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users