public IEnumerable<JObject> ReadElementElement(IAixmConverter converter, JObject currentObject, XElement element) { var elementElement = element.Elements().ToArray(); if(elementElement.Length != 1) { throw new NotSupportedException("ReadElementElement do not support more than one nested element"); } var id = currentObject["properties"]["id"]; currentObject.SetGeometry(new JObject()); var obj = new JObject(new JProperty("properties",new JObject( new JProperty("elementSource",elementElement[0].Name.LocalName), new JProperty("parent", id is JObject ? id["#text"].ToString() : id.ToString()) ))); //Need to yield the current feature when going to sub types. //When no sub features are returned the current feature is automaticly returned for all other cases. yield return currentObject; foreach (var feature in converter.ReadElement(obj, elementElement[0].Elements()).ToList()) { yield return feature; } }
public IEnumerable<JObject> ReadElevatedSurfaceElement(IAixmConverter converter, JObject currentObject, XElement element) { //Read elevation property and return return ReadSurfaceElement(converter, currentObject, element).Concat( converter.ReadElement(currentObject, element.Elements(aximNs + "elevation"))); }
public IEnumerable<JObject> ReadElement(IAixmConverter converter, JObject currentObject, XElement element) { var AixmElement = element.Elements().First(); var feature = new JObject(new JProperty("type","Feature")); feature.AddToProperties("AixmType", AixmElement.Name.LocalName.ToString()); return converter.ReadElement(feature, AixmElement.Elements()); }
public IEnumerable<JObject> ReadElement(IAixmConverter converter, JObject currentObject, XElement element) { var AixmTimeSlice = element.Elements().First(); currentObject.AddToProperties("AixmTimeSlice", JToken.FromObject(AixmTimeSlice.Attributes().ToDictionary(a=>a.Name,a=>a.Value))); return converter.ReadElement(currentObject, AixmTimeSlice.Elements()); }
public IEnumerable<JObject> ReadExtentElement(IAixmConverter converter, JObject currentObject, XElement element) { currentObject.AddToProperties("geometrySource", "extent"); //set the ElementType of the extent on feature property extentSource, to be used when writing back. currentObject.AddToProperties("extentSource", element.Elements().First().Name.LocalName); return converter.ReadElement(currentObject, element.Elements()); }
public IEnumerable<JObject> ReadElement(IAixmConverter converter, JObject currentObject, XElement element) { XNamespace aximNs = "http://www.aixm.aero/schema/5.1"; var AirspaceVolume = element.Descendants(aximNs + "AirspaceVolume").ToArray(); if (AirspaceVolume.Length != 1) throw new NotSupportedException("AirSpaceVolme must be of length 1"); return converter.ReadElement(currentObject, AirspaceVolume.Elements()); }
public IEnumerable<JObject> ReadElement(IAixmConverter converter, JObject currentObject, XElement element) { XNamespace aximNs = "http://www.aixm.aero/schema/5.1"; //Convert ElevatedPoint to a GML Surface and convert to geojson. var geometry = GeometryFactory.GmlToGeometry(DownCastToPointElement(element)); //Set the geometry currentObject.SetGeometry(geometry); //Set the projection on the feature obj. currentObject.SetSrs(element); //Read elevation property and return return converter.ReadElement(currentObject, element.Elements(aximNs + "elevation")); }
public IEnumerable<JObject> ReadGeometryComponenentElement(IAixmConverter converter, JObject currentObject, XElement element) { currentObject.AddToProperties("geometrySource", element.Elements().First().Name.LocalName); return converter.ReadElement(currentObject, element.Elements()); // currentObject.Add("geometry", JObject.FromObject(element)); return Enumerable.Empty<JObject>(); }
public IEnumerable<JObject> ReadLocationElement(IAixmConverter converter, JObject currentObject, XElement element) { return converter.ReadElement(currentObject, element.Elements()); }