//强调显示某个区域
public void EmphasisRegion(string ShowType,string ShowKey,Map map)

{
MapInfo.Geometry.DRect bd=new DRect(0,0,0,0);
(_tempTable as IFeatureCollection).Clear(); //清空
foreach(Feature ftr in MapInfo.Engine.Session.Current.Catalog.GetTable(ShowType) )

{
if(ftr["f_name"].ToString()==ShowKey)

{
//Feature ftr =MapInfo.Engine.Session.Current.Catalog.SearchForFeature(ShowType,MapInfo.Data.SearchInfoFactory.SearchWhere("f_name='"+ShowKey+"'") );
//if(ftr==null)return;

//样式
SimpleInterior si=new SimpleInterior(2,System.Drawing.Color.BurlyWood);
SimpleLineStyle sl=new SimpleLineStyle(MapInfo.Styles.PatternStyle.FDiag ) ;
sl.Color=System.Drawing.Color.SaddleBrown ;
AreaStyle ars=new AreaStyle(sl,si);
if(ftr.Geometry.GetType().ToString()=="MapInfo.Geometry.MultiPolygon")

{
Feature f=(Feature)ftr.Clone();
f.Style=ars;
_tempTable.InsertFeature(f);
if(bd.x1==0&&bd.y1==0&&bd.x2==0&&bd.y2==0)
bd=new DRect(f.Geometry.Bounds.x1,f.Geometry.Bounds.y1,f.Geometry.Bounds.x2,f.Geometry.Bounds.y2);
else
bd.MergeRects(f.Geometry.Bounds);
}
}
map.SetView(bd,ftr.Geometry.CoordSys);
}
}

posted @
2005-10-25 17:33
jetz
阅读(
799)
评论()
收藏
举报