CreateFromIGeometry() public static method

Create a geojson string from the geometry
public static CreateFromIGeometry ( IGeometry geometry ) : GeoJSONGeometry
geometry IGeometry
return GeoJSONGeometry
Example #1
0
        /// <summary>
        /// Creates A GeoJSON feature from an IFeature
        /// </summary>
        /// <param name="feat">The feature.</param>
        /// <returns>A GeoJSON Feature</returns>
        public static GeoJSONFeature CreateFromIFeature(IFeature feat)
        {
            GeoJSONFeature jsonFeature = new GeoJSONFeature();

            jsonFeature.id       = feat.OID.ToString();
            jsonFeature.geometry = GeoJSONGeometry.CreateFromIGeometry(feat.Shape);
            StringBuilder sb = new StringBuilder();

            sb.Append("{");

            for (int i = 0; i < feat.Fields.FieldCount; i++)
            {
                ESRI.ArcGIS.Geodatabase.IField fld = feat.Fields.get_Field(i);
                switch (fld.Name.ToUpper())
                {
                case "SHAPE":
                    break;

                default:
                    string val = "null";
                    if (feat.get_Value(i) != null)
                    {
                        val = feat.get_Value(i).ToString();
                    }
                    if (sb.Length > 1)
                    {
                        sb.Append(",");
                    }
                    sb.Append(string.Format("\"{0}\":\"{1}\"", fld.Name, val));

                    break;
                }
            }

            jsonFeature.properties = sb.ToString();
            sb.Append("}");
            jsonFeature.properties = sb.ToString();
            return(jsonFeature);
        }