[mapguide-users] How to create new/empty vector layer definition?

Hans Milling hm at geograf.dk
Mon Feb 13 08:24:25 EST 2012


Hi all

How can I create a new/empty ILayerDefinition object?

I used to (MaestroAPI 2) create a new ILayerDefinition by using xml and
deserialize and then save the resource (see code below), but in MaestroAPI 4
i get the error: System.NotSupportedException - Cannot serialize interface
OSGeo.MapGuide.ObjectModels.LayerDefinition.ILayerDefinition.
I cannot do "new ILayerDefinition()" ofcourse but how could I create a new
ILayerDefinition object? Is the xml wrong or do I need to do it some other
way (IResourceSerrvice.CreateLayerDefinition)? 

--- code ---
      string layerDefinition =
          "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
          "<LayerDefinition
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xsi:noNamespaceSchemaLocation=\"LayerDefinition-1.1.0.xsd\"
version=\"1.1.0\">" +
          "  <VectorLayerDefinition>" +
          "    <ResourceId />" +
          "    <FeatureName />" +
          "    <FeatureNameType>FeatureClass</FeatureNameType>" +
          "    <Geometry />" +
          "    <VectorScaleRange />" +
          "  </VectorLayerDefinition>" +
          "</LayerDefinition>";

      ILayerDefinition ldef;

      using (System.IO.MemoryStream ms = new
System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(layerDefinition)))
        ldef = con.ResourceService.DeserializeObject<ILayerDefinition>(ms);

      string resId = new ResourceIdentifier(Guid.NewGuid().ToString(),
ResourceTypes.LayerDefinition, con.SessionID);

      con.ResourceService.SaveResourceAs(ldef, resId);
--- end code ---
Regards
  Hans Milling...

--
View this message in context: http://osgeo-org.1560.n6.nabble.com/How-to-create-new-empty-vector-layer-definition-tp4465014p4465014.html
Sent from the MapGuide Users mailing list archive at Nabble.com.


More information about the mapguide-users mailing list