ThinkGeo.com    |     Documentation    |     Premium Support

Loading layers from Xml

Hi,


As our customers often supply their own maps we will store the layers, projection info, the shape file references, thresholds etc in an XML file. 


This will allow us to work with different map types and configurations without the need for a rebuild. [Actually the schema below may originally have come from the Desktop Edition as a different developer worked on this a few years ago for our company]


 Is there a standard way of loading layers from an XML file other than coding it directly. [just trying to avoid unnecessary effort on my part really]    


See schema below 



  <MapUnit Value="DecimalDegrees" />
  <Mode Value="TrackZoomIn" />
  <CompositingMode Value="SourceOver" />
  <CompositingQuality Value="HighQuality" />
  <SmoothingMode Value="HighQuality" />
  <CoordinateSystem Value="WGS84" />
  <ImageLayers />
  <Layers>
    <Layer>
      <ThresholdUnit Value="DecimalDegrees" />
      <UpperExtent Value="1000" />
      <LowerExtent Value="0" />
      <Label TextFieldName="COUNTY" TextAngleFieldName="" />
      <PenColour Value="-16777216" />
      <BrushColour Value="-4144960" />
      <ShapeFile Value="F:\7ctycu.shp" />
    
    <Layer>


 


Rgds,


Liam


 


 


 


 


 


 



 



 


Liam,
I’m sorry but I need to say that there isn’t an existing efficient way to loading layer from a custom XML file directly. I tried “System.Xml.Serialization.XmlSerializer”, but unfortunately, some properties in Layer doesn’t support serialization, such as QueryTool, EditTool etc. I think it need custom coding instead. Sorry for the inconvenience.
Thanks,
Johnny

Liam, 
  
   In addition to what Johnny said the System.Xml.Serialization.XmlSerializer is really useless.  It cannot support properties with abstract methods.  For example if you have a property that is a BaseShape or Layer or FeatureSource then it cannot be serialized without specifying in code on the property exactly which kinds of that object are possible.  Of course anyone can inherit from BaseShape, FeatureSource, Layer etc. so the whole system collapses there.  Microsoft admits they have abandoned it and are putting all their effort into data contracts however they have a similar problem.  The ultimate solution is for us to add our own custom XML logic and we have an issues item for that but it is not scheduled for this release. 
  
 David

Hi David and Johnny, 
  
 Thanks to both of you for the clarification and the background. Its good to get an insight on these matters. 
  
 I had started a custom solution in the meantime so its nice to know at least that the work wasn’t wasted. :).  
  
 Our requirements are well scoped in what we need to define in a Xml file so we will make the changes accordingly. 
  
 Rgds, 
 Liam 
  
  
  
  


Hi Liam, 
  
 You are so prudent. Sorry for the inconvience. Any other question please let us know. 
  
 Thanks, 
  
 Johnny