【解决办法】:
将IPolygon转为IArea,使用IArea.LabelPoint 获取标注位置的点,该点肯定位于面内,而IArea.Centroid方法则是获取面的重心,但不一定位于面内。
IPolygon polygon = feature.Shape as IPolygon;
IArea area = polygon as IArea;
var PolygonPoint = area.LabelPoint; //获取面的中心点,并且保证该点位于面内?将IPolygon转为IArea,使用IArea.LabelPoint 获取标注位置的点,该点肯定位于面内,而IArea.Centroid方法则是获取面的重心,但不一定位于面内。
xpolygon = PolygonPoint.X.ToString();//面的中心点的x坐标
ypolygon = PolygonPoint.Y.ToString();
原文:https://www.cnblogs.com/774249302com/p/12890244.html