复制到浮动层,强调显示某个(多个)区域
//强调显示某个区域
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);
}
}
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);
}
}