1、JSON字符串转成IGeometry
#region JSON转Geometry
/// <summary>
/// JSON字符串转成IGeometry
/// </summary>
/// <param name="strJson"></param>
/// <param name="type"></param>
/// <returns></returns>
public static IGeometry GeometryFromJsonString(string strJson, ESRI.ArcGIS.Geometry.esriGeometryType type)
{
return GeometryFromJsonString(strJson, type, false, false);
}
/// <summary>
/// JSON字符串转成IGeometry
/// </summary>
/// <param name="strJson"></param>
/// <param name="type"></param>
/// <param name="bHasZ"></param>
/// <param name="bHasM"></param>
/// <returns></returns>
public static IGeometry GeometryFromJsonString(string strJson, ESRI.ArcGIS.Geometry.esriGeometryType type, bool bHasZ, bool bHasM)
{
ESRI.ArcGIS.esriSystem.IJSONReader jsonReader = new ESRI.ArcGIS.esriSystem.JSONReaderClass();
jsonReader.ReadFromString(strJson);
ESRI.ArcGIS.Geometry.JSONConverterGeometryClass jsonCon = new ESRI.ArcGIS.Geometry.JSONConverterGeometryClass();
return jsonCon.ReadGeometry(jsonReader, type, bHasZ, bHasM);
}
#endregion
2、geometry转json
/// <summary>
/// IGeometry转成JSON字符串
/// </summary>
public static string GeometryToJsonString(ESRI.ArcGIS.Geometry.IGeometry geometry)
{
ESRI.ArcGIS.esriSystem.IJSONWriter jsonWriter = new ESRI.ArcGIS.esriSystem.JSONWriterClass();
jsonWriter.WriteToString();
ESRI.ArcGIS.Geometry.JSONConverterGeometryClass jsonCon = new ESRI.ArcGIS.Geometry.JSONConverterGeometryClass();
jsonCon.WriteGeometry(jsonWriter, null, geometry, false);
return Encoding.UTF8.GetString(jsonWriter.GetStringBuffer());
}