比例尺不变 放大单个Polygon

1
分享 2014-06-05
这是一个同事给提的需求,在此我把问题,以及研究的结果都整理出来。希望对大家有所帮助。
需求:如图1,希望在当前比例尺下,鼠标选中仙女湖的Polygon时能够对它重新渲染并放大n倍,几何重心不变。


实现方法
1、 获取该Polygon的几何重心。
以ArcEngine为例,采用IArea.Centroid方法得到质心,即几何重心,O(lon,lat)

图 2
2、 提取Polygon的要素点。

图 3
以图3为例,
声明一个geometry对象,把该Polygon赋值给它,通过该类的方法可获得所有要素点坐标为a1(lon1,lat1),a2(lon2,lat2),……,a6(lon6,lat6)
3、 生成缩放后的新Polygon。
以几何重心O为原点建立坐标体系。

则放大n倍后的a1点坐标为(n(lon1-lon),n(lat1-lat))
a2(n(lon2-lon),n(lat1-2at))
……
把所有要素点的新坐标进行渲染后就得到了放大n倍后的新图形。

文章来源:http://blog.csdn.net/sydbc/article/details/17758443

0 个评论

要回复文章请先登录注册