[mapguide-users] Adding layer to runtimemap

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Thu Jul 30 05:28:55 EDT 2009


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
>>> mapguide-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>
>>>
>>>       
>>     
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20090730/6984b3f9/attachment.html


More information about the mapguide-users mailing list