基于SuperMap C#二次开发,获取面数据集的拐点坐标
将坐标按照指定格式输出,保存。
DatasetVector datasetVetor = (DatasetVector).workspace.Datasources["数据源名称"].Datasets[数据集名称];
QueryParameter parameter = new QueryParameter();
//根据ID查询
parameter.AttributeFilter = "ID = '" + ID + "'";
Recordset recordset= datasetVetor.Query(parameter);
if(recordset!=null && recordset> 0)
{
GeoRegion geoReg = (GeoRegion)recordset.GetGeometry();
//获取坐标集合
Point2Ds point2ds = geoReg[0];
//坐标列表
List<string> ZBList = new List<string>();
//第一个和最后一个坐标值是同一个,所以此处count-1
for (int i = 0; i < point2ds.Count - 1; i++)
{
//解析坐标
string str2D = point2ds[i].ToString();
str2D = str2D.Replace("X=", "");
str2D = str2D.Replace("Y=", "");
str2D = str2D.Replace("{", "");
str2D = str2D.Replace("}", "");
double x = Convert.ToDouble(str2D.Substring(0, str2D.IndexOf(",")));
double y = Convert.ToDouble(str2D.Substring(str2D.IndexOf(",") + 1));
//此处只保留小数点后5位
x = Math.Round(x, 5);
y = Math.Round(y, 5);
ZBList.Add(x.ToString() + "," + y.ToString());
}
//按照数据库中的保存格式存放
string strZB = string.Join(";", ZBList);//坐标值
}