public override void WriteTo(ArcXmlWriter writer) { try { writer.WriteStartElement(XmlName); if (Accuracy != 0) { writer.WriteAttributeString("accuracy", Accuracy.ToString()); } if (Compact) { writer.WriteAttributeString("compact", "true"); } if (DensifyTolerance != 0) { writer.WriteAttributeString("densifytolerance", DensifyTolerance.ToString()); } if (Envelope) { writer.WriteAttributeString("envelope", "true"); } if (Environment != null) { Environment.WriteTo(writer); } _fromCoordSys.WriteTo(writer); _toCoordSys.WriteTo(writer); foreach (IGeometry shape in _shapes) { if (shape.OgcGeometryType == OgcGeometryType.Point) { GeometrySerializer.WriteAsMultiPointTo(writer, (IPoint)shape); } else { GeometrySerializer.WriteTo(writer, shape); } } writer.WriteEndElement(); } catch (Exception ex) { if (ex is ArcXmlException) { throw ex; } else { throw new ArcXmlException(String.Format("Could not write {0} object.", GetType().Name), ex); } } }
public static FieldValue ReadFrom(ArcXmlReader reader) { try { FieldValue fieldValue = new FieldValue(); if (reader.HasAttributes) { while (reader.MoveToNextAttribute()) { string value = reader.ReadContentAsString(); if (value.Length > 0) { switch (reader.Name) { case "valuestring": fieldValue.ValueString = value; break; } } } reader.MoveToElement(); } if (!reader.IsEmptyElement) { reader.Read(); while (!(reader.NodeType == XmlNodeType.EndElement && reader.Name == XmlName)) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "POINT": fieldValue.Point = (IPoint)GeometrySerializer.ReadFrom(reader); break; } } reader.Read(); } } return(fieldValue); } catch (Exception ex) { if (ex is ArcXmlException) { throw ex; } else { throw new ArcXmlException(String.Format("Could not read {0} element.", XmlName), ex); } } }
public static Project ReadFrom(ArcXmlReader reader) { try { Project project = new Project(); if (!reader.IsEmptyElement) { reader.Read(); while (!(reader.NodeType == XmlNodeType.EndElement && reader.Name == XmlName)) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "ENVELOPE": project.Envelopes.Add(EnvelopeSerializer.ReadFrom(reader)); break; case "MULTIPOINT": IMultiPoint multiPoint = (IMultiPoint)GeometrySerializer.ReadFrom(reader); IGeometry shape = multiPoint.Count == 1 ? (IGeometry)multiPoint[0] : (IGeometry)multiPoint; project.Shapes.Add(shape); break; case "POLYLINE": case "POLYGON": project.Shapes.Add(GeometrySerializer.ReadFrom(reader)); break; } } reader.Read(); } } return(project); } catch (Exception ex) { if (ex is ArcXmlException) { throw ex; } else { throw new ArcXmlException(String.Format("Could not read {0} element.", XmlName), ex); } } }
public void WriteTo(ArcXmlWriter writer) { try { writer.WriteStartElement(XmlName); writer.WriteAttributeString("relation", ArcXmlEnumConverter.ToArcXml(typeof(SpatialRelation), Relation)); if (Buffer != null) { Buffer.WriteTo(writer); } if (Shape != null) { if (Shape.OgcGeometryType == OgcGeometryType.Point) { GeometrySerializer.WriteAsMultiPointTo(writer, (IPoint)Shape); } else { GeometrySerializer.WriteTo(writer, Shape); } } writer.WriteEndElement(); } catch (Exception ex) { if (ex is ArcXmlException) { throw ex; } else { throw new ArcXmlException(String.Format("Could not write {0} object.", GetType().Name), ex); } } }
public void WriteTo(ArcXmlWriter writer) { try { writer.WriteStartElement(XmlName); if (!String.IsNullOrEmpty(Lower)) { writer.WriteAttributeString("lower", Lower); } if (Alignment != ObjectAlignment.BottomLeft) { writer.WriteAttributeString("alignment", ArcXmlEnumConverter.ToArcXml(typeof(ObjectAlignment), Alignment)); } writer.WriteAttributeString("units", ArcXmlEnumConverter.ToArcXml(typeof(ObjectUnits), Units)); if (!String.IsNullOrEmpty(Upper)) { writer.WriteAttributeString("upper", Upper); } if (CoordSys != null) { CoordSys.WriteTo(writer); } if (_shape != null) { if (_shape.OgcGeometryType == OgcGeometryType.Point) { GeometrySerializer.WriteAsMultiPointTo(writer, (IPoint)_shape); } else { GeometrySerializer.WriteTo(writer, _shape); } if (Symbol != null) { Symbol.WriteTo(writer); } } if (_northArrow != null) { _northArrow.WriteTo(writer); } if (_scaleBar != null) { _scaleBar.WriteTo(writer); } if (_text != null) { bool symbolAdded = false; if (_text.Symbol == null) { _text.Symbol = (TextMarkerSymbol)Symbol; symbolAdded = true; } _text.WriteTo(writer); if (symbolAdded) { _text.Symbol = null; } } writer.WriteEndElement(); } catch (Exception ex) { if (ex is ArcXmlException) { throw ex; } else { throw new ArcXmlException(String.Format("Could not write {0} object.", GetType().Name), ex); } } }
public static Feature ReadFrom(ArcXmlReader reader) { try { Feature feature = new Feature(); if (reader.HasAttributes) { while (reader.MoveToNextAttribute()) { string value = reader.ReadContentAsString(); if (value.Length > 0) { switch (reader.Name) { case "featureid": feature.FeatureID = value; break; } } } reader.MoveToElement(); } if (!reader.IsEmptyElement) { reader.Read(); while (!(reader.NodeType == XmlNodeType.EndElement && reader.Name == XmlName)) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "ENVELOPE": feature.Envelope = EnvelopeSerializer.ReadFrom(reader); break; case Fields.XmlName: feature.Fields = Fields.ReadFrom(reader); break; case Field.XmlName: feature.Fields.Add(Field.ReadFrom(reader)); break; case "MULTIPOINT": IMultiPoint multiPoint = GeometrySerializer.ReadMultiPointFrom(reader); feature.Shape = multiPoint.Count == 1 ? (IGeometry)multiPoint[0] : (IGeometry)multiPoint; break; case "POLYLINE": feature.Shape = GeometrySerializer.ReadPolylineFrom(reader); break; case "POLYGON": feature.Shape = GeometrySerializer.ReadPolygonFrom(reader); break; } } reader.Read(); } } return(feature); } catch (Exception ex) { if (ex is ArcXmlException) { throw ex; } else { throw new ArcXmlException(String.Format("Could not read {0} element.", XmlName), ex); } } }