コード例 #1
0
        public static FeatureWithID ReadFeatureWithID(JsonTextReader jreader)
        {
            if (jreader == null)
            {
                throw new ArgumentNullException("jreader", "A valid JSON reader object is required.");
            }

            FeatureWithID feature = new FeatureWithID();

            if (jreader.MoveToContent() && jreader.TokenClass == JsonTokenClass.Object)
            {
                jreader.ReadToken(JsonTokenClass.Object);

                string key = "";

                JsonTokenClass tokenClass;

                while ((tokenClass = jreader.TokenClass) == JsonTokenClass.Member)
                {
                    key = jreader.ReadMember();
                    switch (key)
                    {
                    case "type":
                        if (!jreader.ReadString().Equals("Feature"))
                        {
                            throw new Exception("jreader - A valid JSON reader object is required.");
                        }
                        break;

                    case "id":
                        feature.Id = jreader.ReadString();
                        break;

                    case "geometry":
                        feature.Geometry = Read(jreader); //reads the geometry value
                        //jreader.ReadMember();   //reads 'properties'
                        //feature.Attributes = ReadAttributesTableWithID(jreader);
                        break;

                    case "properties":
                        feature.Attributes = ReadAttributesTableWithID(jreader);
                        //jreader.ReadMember();   //reads 'geometry'
                        //feature.Geometry = Read(jreader); //reads the geometry value
                        break;

                    default:
                        throw new Exception("jreader - Feature - unexpected member");
                        break;
                    }
                }

                //if (tokenClass != JsonTokenClass.EndObject)
                //{
                //  throw new Exception("expected endobject");
                //}

                jreader.ReadToken(JsonTokenClass.EndObject);
            }
            return(feature);
        }
コード例 #2
0
        public static void WriteWithID(FeatureWithID 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("id");
            jwriter.WriteString(feature.Id);

            jwriter.WriteMember("geometry");
            Write(feature.Geometry, jwriter);

            jwriter.WriteMember("properties");
            WritewithID(feature.Attributes, jwriter);

            jwriter.WriteEndObject();
        }
コード例 #3
0
        public static void WriteFeatureWithID(FeatureWithID 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);

            WriteWithID(feature, jwriter);
        }
コード例 #4
0
        public override bool Equals(object obj)
        {
            FeatureWithID otherFeature = obj as FeatureWithID;

            if (otherFeature != null)
            {
                if (this.Id == otherFeature.Id && this.Geometry == otherFeature.Geometry)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }

            //return base.Equals(obj);
        }