public void Delete(IGISFeature feature) { if (feature == null) throw new ArgumentNullException("feature", "A valid feature is required to be added."); if (_features == null) throw new NullReferenceException("Cannot delete feature from the InMemoryLayer. The internal list reference is NULL."); InMemoryGISFeature mc = FindByKeyValue(_features, feature.Attributes.GetValue(KeyFieldName)); if (mc != null) { _features.Remove(mc); } }
public void Add(IGISFeature feature) { if (feature == null) throw new ArgumentNullException("feature", "A valid feature is required to be added."); if (_features == null) throw new NullReferenceException("Cannot add feature to the InMemoryLayer. The internal list reference is NULL."); if(FindByKeyValue(_features, feature.Attributes.GetValue(KeyFieldName)) != null) throw new ArgumentException("Cannot add feature. A feature with the same key already exists."); InMemoryGISFeature newFeature = CreateFeature(); _features.Add(newFeature); newFeature.Shape = feature.Shape; foreach (string key in feature.Attributes.GetKeys()) { newFeature.Attributes.SetValue(key, feature.Attributes.GetValue(key)); } }
public static void ReadGISFeature(IGISFeature feature, TextReader reader) { if (feature == null) throw new ArgumentNullException("feature", "A valid feature reference is required."); if (reader == null) throw new ArgumentNullException("reader", "A valid reader object is required."); JsonTextReader jreader = new JsonTextReader(reader); ReadGISFeature(feature, jreader); }
public static void ReadGISFeature(IGISFeature feature, JsonTextReader jreader) { if (feature == null) throw new ArgumentNullException("feature", "A valid feature reference is required."); if (jreader == null) throw new ArgumentNullException("jreader", "A valid JSON reader object is required."); if (jreader.MoveToContent() && jreader.TokenClass == JsonTokenClass.Object) { jreader.ReadToken(JsonTokenClass.Object); //Read the 'Feature' as the type jreader.ReadMember(); //reads 'type' jreader.ReadString(); //reads 'Feature' //Read the 'geometry' jreader.ReadMember(); //reads 'geometry' feature.Shape = Read(jreader); //reads the geometry value //Read the 'properties' jreader.ReadMember(); //reads 'properties' ReadGISAttributes(feature.Attributes, jreader); jreader.ReadToken(JsonTokenClass.EndObject); } }
public static void Write(IGISFeature feature, TextWriter writer) { if (feature == null) return; if (writer == null) throw new ArgumentNullException("writer", "A valid text writer object is required."); JsonTextWriter jwriter = new JsonTextWriter(writer); Write(feature, jwriter); }
public static void Write(IGISFeature feature, JsonTextWriter jwriter) { if (feature == null) return; if (jwriter == null) throw new ArgumentNullException("jwriter", "A valid JSON writer object is required."); jwriter.WriteStartObject(); jwriter.WriteMember("type"); jwriter.WriteString("Feature"); jwriter.WriteMember("geometry"); Write(feature.Shape, jwriter); jwriter.WriteMember("properties"); Write(feature.Attributes, jwriter); jwriter.WriteEndObject(); }