由于项目,最近做了一个关于ArcEngine的项目,不呢来说该项目是没有说明难度的,但是今天下去被一个问题纠结了半天。特此与大家分享。废话不多说了,直接说问题吧。
因为要实现定位功能,那么大家肯定想的到用axmapcontrol1.extent = pFeature.extent来实现。对于线和面来说,那是没有问题的,直接定位到要素点,但是对于点要素怎么办呢,经过测试,确实点要素的extent为空,但是map的extent不改变,并没有报错,这是可以令人欣慰的。
但是楼主想如果我要获取这个点要素的点坐标该如何呢?!这个问题确实难倒过了。查了一下ArcEngine的接口库iFeature是可以as成IPoint的,但是此时楼主获取到的是一个Mutipoint类型的变量,而并非IPoint,这样直接转成Point系统会弹错,这个如何是好呢?!
想来想去终究没有什么好的办法,最后想了一个招,mutipoint类型是一个多点,即是一个范围,那么我获取到他的IEnvelope之后再获取范围的XYZ不久可以了?!正如楼主所想。确实是可以实现的,只是IEnvelope的MaxX、minx等都是一个值,这样便能获取到XYZ,通过XYZ直接构造成一个Ipoint类型即可。