//**************************************************
版权所有,转载请保留作者信息。
//------------------------------------------------------------------
名 称:VC6.0+ArcGIS二次开发----要素的定位与选择
作 者:www.gisfoot.com
MSN: gisfoot@hotmail.com
时 间:2007-10-8 周一
//**************************************************
在地图操作中经常要定位地图,ARC ENGINE提供了定位的方法:ipActiveView->put_Extent(ipEnvelope)。选择的方法由Imapcontrol提供。
但是,问题围绕在如何获得ipEnvelope指针展开。ipEnvelope可以通过若干方法获得,其效率效果不一。
方法一:
获取要素的外截矩形定位,通过要素本身选择。
ipMap->SelectFeature( ipFeatLayer ,ipFeatureOne );
ipFeatureOne->get_Shape( &ipFtOneGeo );
ipFtOneGeo->get_Envelope(&ipEnvelope);
if(ipEnvelope != NULL)
{
//加宽
hr = ipEnvelope->Expand( 5,5,VARIANT_TRUE );
//移动屏幕
hr = ipActiveView->put_Extent( ipEnvelope );
}
方法二:
获取要素的中心定位,通过要素的形状选择。
//中心定位
ipFeatureOne->get_Shape(&ipGeometry);
if(ipGeometry != NULL)
{
ipMap->SelectByShape( ipGeometry,NULL,VARIANT_FALSE );
ipGeometry->get_Envelope(&ipEnvelope);
//加宽
ipEnvelope->Expand( 1.5,1.5,TRUE );
ipArea = ipEnvelope;
ipArea->get_Centroid(¢erPoint);
ipMapCtrl->CenterAt(centerPoint);
ipActiveView->put_Extent(ipEnvelope);
}