arcgis图层显示顺序两个图层如何同时显示?

    1. 添加地图控件,叠加两个&图层&,一个是缓存后的瓦片层,作底图效果,另一个动态&图层&,是可见性控制的对象。&!--添加地图控件,叠加两个图层--&&&&&&&&&&esri:Map&x:Name=&MainMap&&&Extent=&-125,10,-65,60&&&&&&&&&&&&&&&esri:ArcGISTiledMapServiceLayer&Url=&/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer&/&&&&&&&&&&&&&&esri:ArcGISDynamicMapServiceLayer&ID=&DynamicLayer&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Initialized=&ArcGISDynamicMapServiceLayer_Initialized&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Url=&/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer&&/&&&&&&&&&&/esri:Map&&  2.添加显示和控制图层的任务框&!--图层可见性控件的任务框--&&&&&&&&&&Canvas&x:Name=&LayerListCanvas&&HorizontalAlignment=&Left&&VerticalAlignment=&Top&&&&&&&&&&&&&&&&&&Width=&150&&Height=&200&&Margin=&10,10,0,0&&Visibility=&Visible&&&&&&&&&&&&&&&&!--以下三个Ractangle是设置任务框的样式--&&&&&&&&&&&&&&Rectangle&Canvas.Left=&0&&Canvas.Top=&4&&Width=&150&&Height=&200&&&&&&&&&&&&&&&&&&&&&&&&RadiusX=&10&&RadiusY=&10&&Fill=&#&&/&&&&&&&&&&&&&&Rectangle&Canvas.Left=&0&&Canvas.Top=&0&&Width=&150&&Height=&200&&&&&&&&&&&&&&&&&&&&&&&&RadiusX=&10&&RadiusY=&10&&Fill=&#775C90B2&&Stroke=&Gray&&/&&&&&&&&&&&&&&Rectangle&Canvas.Left=&10&&Canvas.Top=&17&&Width=&130&&Height=&177&&&&&&&&&&&&&&&&&&&&&&&&RadiusX=&5&&RadiusY=&5&&Fill=&#FFFFFFFF&&Stroke=&DarkGray&&/&&&&&&&&&&&&&&&&&&&&&&&&&&ScrollViewer&Canvas.Left=&10&&Canvas.Top=&15&&Width=&130&&Height=&177&&&&&&&&&&&&&&&&&&&&&&&&&&&&HorizontalScrollBarVisibility=&Auto&&VerticalScrollBarVisibility=&Auto&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!--显示和控制可见性的listBox--&&&&&&&&&&&&&&&&&&ListBox&x:Name=&LayerVisibilityListBox&&&&&&&&&&&&&&&&&&&&&&&&ListBox.ItemTemplate&&&&&&&&&&&&&&&&&&&&&&&&&&DataTemplate&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&StackPanel&&Orientation=&Horizontal&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&CheckBox&Margin=&2,0,0,0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&IsChecked=&{Binding&Visible,&Mode=TwoWay}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ClickMode=&Press&&&/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Image&Margin=&2,0,0,0&&Source=&Layer.png&/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&TextBlock&&Margin=&2,0,0,0&&Text=&{Binding&LayerName}&/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/StackPanel&&&&&&&&&&&&&&&&&&&&&&&&&&/DataTemplate&&&&&&&&&&&&&&&&&&&&&&/ListBox.ItemTemplate&&&&&&&&&&&&&&&&&&/ListBox&&&&&&&&&&&&&&/ScrollViewer&&&&&&&&&&/Canvas&&&&&&  这里用到一个listBox来显示图层,它的子项模板是由一个checkBox,一个Image,一个TextBlock构成,其中checkBox采用双向绑定的方式,以方便更改其状态后,在后台设置图层的可见性。  3.完成界面的设置后,就开始Code-Behinde的编写  设计类LayerListData,是图层信息类///&&summary&&&&&///&图层类&&&&///&&/summary&&&&&public&class&LayerListData:INotifyPropertyChanged&&&&{&&&&&&&&private&bool&_&&&&&&&&private&string&_layerN&&&&&&&&private&int&_layerI&&&&&&&&///&&summary&&&&&&&&&///&是否可见&&&&&&&&///&&/summary&&&&&&&&&public&bool&Visible&&&&&&&&{&&&&&&&&&&&&get&{&return&_&}&&&&&&&&&&&&set&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&_visible&=&&&&&&&&&&&&&&&&&&proPertychange(&Visible&);&&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&&&&///&&summary&&&&&&&&&///&图层的名称&&&&&&&&///&&/summary&&&&&&&&&public&string&LayerName&&&&&&&&{&&&&&&&&&&&&get&{&return&_layerN&}&&&&&&&&&&&&set&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&_layerName&=&&&&&&&&&&&&&&&&&proPertychange(&ServiceName&);&&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&///&&summary&&&&&&&&&///&图层的ID&&&&&&&&///&&/summary&&&&&&&&&public&int&LayerIndex&&&&&&&&{&&&&&&&&&&&&get&{&return&_layerI&}&&&&&&&&&&&&set&&&&&&&&&&&&{&&&&&&&&&&&&&&&&_layerIndex&=&&&&&&&&&&&&&&&&&proPertychange(&ServiceName&);&&&&&&&&&&&&&}&&&&&&&&&}&&&&&&&&///&&summary&&&&&&&&&///&触发属性改变事件的方法&&&&&&&&///&&/summary&&&&&&&&&///&&param&name=&ProName&&&/param&&&&&&&&&private&void&proPertychange(string&ProName)&&&&&&&&{&&&&&&&&&&&&if&(PropertyChanged&!=&null)&&&&&&&&&&&&&&&&PropertyChanged(this,&new&PropertyChangedEventArgs(ProName));&&&&&&&&}&&&&&&&&#region&INotifyPropertyChanged&成员&&&&&&&&public&event&PropertyChangedEventHandler&PropertyC&&&&&&&&#endregion&&&&}&&&&&&&  这个类实现接口INotifyPropertyChanged以达到属性改变时通知代码做出相应的更改。  4.在Page里实现相应的功能  首先声明一个动态图层的全局变量并在初始化完成是绑定显示图层和可见性private&ArcGISDynamicMapServiceLayer&DynamicL&&&&&&&&public&Page()&&&&&&&&{&&&&&&&&&&&&InitializeComponent();&&&&&&&&}&&&&&&&&///&&summary&&&&&&&&&///动态图层初始化完成时&&&&&&&&///&&/summary&&&&&&&&&///&&param&name=&sender&&&/param&&&&&&&&&///&&param&name=&e&&&/param&&&&&&&&&private&void&ArcGISDynamicMapServiceLayer_Initialized(object&sender,&EventArgs&e)&&&&&&&&{&&&&&&&&&&&&DynamicLayer&=&MainMap.Layers[&DynamicLayer&]&as&ArcGISDynamicMapServiceL&&&&&&&&&&&&if&(DynamicLayer&==&null)&&&&&&&&&&&&&&&&throw&(new&Exception(&动态图层不对&));&&&&&&&&&LayerVisibilityListBox.ItemsSource=BindingLayerList();&&&&&&&&}&&&&&&&&///&&summary&&&&&&&&&///&绑定图层&&&&&&&&///&&/summary&&&&&&&&&private&List&LayerListData&&&BindingLayerList()&&&&&&&&{&&&&&&&&&&&&List&LayerListData&&LayerList&=&new&List&LayerListData&();&&&&&&&&&&&&List&int&&visibleLayerList&=&new&List&int&();&&&&&&&&&&&&foreach&(LayerInfo&Layer&in&DynamicLayer.Layers)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&LayerListData&Ldata=&new&LayerListData()&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&LayerIndex&=&Layer.ID,&&&&&&&&&&&&&&&&&&&&LayerName&=&Layer.Name,&&&&&&&&&&&&&&&&&&&&Visible&=&Layer.DefaultVisibility&&&&&&&&&&&&&&&&};&&&&&&&&&&&&&&&&//如果图层可见,把它加入到可见图层列表中&&&&&&&&&&&&&&&&if(Layer.DefaultVisibility)&&&&&&&&&&&&&&&&&&&visibleLayerList.Add(Layer.ID);&&&&&&&&&&&&&&&&Ldata.PropertyChanged&+=&new&PropertyChangedEventHandler(Ldata_PropertyChanged);&&&&&&&&&&&&&&&&LayerList.Add(Ldata);&&&&&&&&&&&&}&&&&&&&&&&&&DynamicLayer.VisibleLayers&=&visibleLayerList.ToArray();&&&&&&&&&&&&return&LayerL&&&&&&&&}&&&&&&然后是属性改变时,更改图层的可见性:&&&&///&&summary&&&&&&&&&///&属性发生改变时&&&&&&&&///&&/summary&&&&&&&&&///&&param&name=&sender&&&/param&&&&&&&&&///&&param&name=&e&&&/param&&&&&&&&&void&Ldata_PropertyChanged(object&sender,&PropertyChangedEventArgs&e)&&&&&&&&{&&&&&&&&&&&&if&(e.PropertyName.Trim()&!=&&Visible&)&&&&&&&&&&&&&&&&&&&&&&&&&&&&LayerListData&LData&=&sender&as&LayerListD&&&&&&&&&&&&int&layerIndex&=&LData.LayerI&&&&&&&&&&&&Boolean&visible&=&LData.V&&&&&&&&&&&&//得到可见图层列表&&&&&&&&&&&&List&int&&visibleLayerList&=&&&&&&&&&&&&&&&DynamicLayer.VisibleLayers&!=&null&&&&&&&&&&&&&&&?&DynamicLayer.VisibleLayers.ToList()&:&new&List&int&();&&&&&&&&&&&&//设置可见图层列表中的内容,并将其赋值给DynamicLayer.VisibleLayers&&&&&&&&&&&&if&(visible)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&if&(!visibleLayerList.Contains(layerIndex))&&&&&&&&&&&&&&&&&&&&visibleLayerList.Add(layerIndex);&&&&&&&&&&&&}&&&&&&&&&&&&else&&&&&&&&&&&&{&&&&&&&&&&&&&&&&if&(visibleLayerList.Contains(layerIndex))&&&&&&&&&&&&&&&&&&&&visibleLayerList.Remove(layerIndex);&&&&&&&&&&&&}&&&&&&&&&&&&DynamicLayer.VisibleLayers&=&visibleLayerList.ToArray();&&&&&&&&}本文来自ctrlhuhu的博客,原文地址:/ctrlhuhu/blog/item/c7e2e4c426c4b0b88326aceb.htmlarcgis10.1中创建要素窗口里我的面图层和线图层为什么不能同时显示?_百度知道
需要新建模板
其他类似问题
为您推荐:
arcgis10的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前位置:
不刷新地图而能让数据实时显示,这在ArcGIS中已经不在是一个困扰我们的难题,在ArcGIS Engine的开发过程中,每一次更新数据后都需要刷新才能,更改大量数据并不断的刷新,让用户在静静的等待,这不是很痛苦吗?为此ArcGIS提供了一个动态图层,专门用于解决这样问题。
ArcGIS 显示子系统管理着要素的显示和刷新,异步刷新显示和大量数据的渲染使得CPU的利用率增大,这可能导致显示延迟等问题.我们看一下ArcGIS 显示子系统的结构图,从这张图我们更能清楚的看到ArcGIS的显示原理:
动态显示技术将渲染大量的数据从CPU端移动到了显卡上,利用了显卡的性能,这明显提高了显示性能.动态显示技术提供同步显示机制使得大量的动态数据以及高频率刷新的操作可以在瞬间完成,下面的图详细的揭示了动态显示技术的逻辑:
&动态图层是一个自定义图层,因此至少应该继承ILayer,IDynamiclayer和IGeoDataset这三个接口,好在Esri提供了一个BaseDynamicLayer这个抽象类,该接口已经继承了我们所说的相关接口,因此我们只需要在实现动态图层的时候继承该类就行.
&&&&&& 在了解了动态显示原理之后,我们看下ArcGIS &&&& Engine为动态显示,提供了那些接口,以下是主要的相关接口:
l&该接口提供Enable属性用来控制动态显示是否可用,这个接口和我们地图是一一对应的.但我们要使用动态图层的时候,必须用该接口开启动态显示功能,也就是Enable属性设置为true。
l&该接口和Ialyer以及接口写作完成动态显示,也就是符号的绘制等,此接口提供了自定义图层动态显示内容的机制
l&该接口控制是否启用动态显示
l&这个接口用来处理资源,这些资源可以是线,点,文本,这些资源作为符号将被动显示。
l&该接口用来管理动态符号,用此接口可以创建,删除动态符号,这些符号就是我们上面所提到的IDynamicGlyph的内容
l&该接口用来管理显示符号的大小,比例尺,颜色等.
l& IDynamicDisplay提供了在地图上描绘几何图形的绘图机制,并且提供了访问动态符号工厂对象.在地图上绘制不同的几何图形,该接口和接口协同,使用来设置的动态符号,然后使用IDynamicDisplay绘制形状。IDynamicDisplay接口其实是下面几何绘图回调函数的参数IDynamicLayer.DrawDynamicLayer; IDynamicMapEvents.BeforeDynamicDraw; IDynamicMapEvents.AfterDynamicDraw.
&&&&&动态图层有两种绘制模式,如下:
&重写 方法
&通过动态地图的事件:&&
&使用动态显示API
&使用OPengl API
&&&&&& &&&&&&
动态图层,有两种不同的绘图方式,因此有两个绘图阶段 :立即阶段和编译阶段。在每一个阶段,每产生一组新的绘制命令,DrawDynamicLayer方法需要遍历图层的底层数据结构,并为每个项目生成相应的绘图命令,在编译阶段的绘图命令被编译成内部专用的一个清单列表。
每一个绘图周期内,动态地图检查每个动态层的状态。如果一个动态层需要重新绘制(动态图层需要重新生成新的绘图命令),动态地图根据相应的绘图阶段调用动态层的DrawDynamicLayer方法,为动态层将产生一套新的绘图命令。如果有多于一个需要重新生成绘图命令的动态图层,则整个动态显示需要重新绘制。
动态图层是主动显示方式,也就是说他有一个固定的绘图周期,在每一个绘图周期内,都会检查动态图层的ditry 属性,如果有一个动态图层是dity的,那么都会在所有的动态图层上绘制。动态图层主要有以下两个阶段:
Immediate&.&,
Compiled&.&dity
动态图层绘制需要实现下面的方法和熟悉:
DynamicLayerDirtyditryDrawDynamicLayer
DrawDynamicLayer
DynamicLayerDirtyDynamicRecompileRate
DrawDynamicLayer
动态图层是一个自定义的图层,当我们定义了这个动态图层之后,他就和一个普通的图层一样,需要添加到一个地图中,然后我们就可以在上面绘制符号和图形等,要使用一个动态图层,按下面的步骤就可以完成:
1开启动态显示功能;
2 创建自定义的动态图层并重写相关的绘图方法(上面提到的第一种方式);
3在Map中添加自定义的动态图层;
4 实时数据的传递.
void InitMap()
&&&&&&&&&&& IAGSServerObjectName pServerObjectName = GetMapServer(&/ArcGIS/services&, &ESRI_Imagery_World_2D&, false);
&&&&&&&&&&& IName pName = (IName)pServerObjectN
&&&&&&&&&&& IAGSServerObject pServerObject = (IAGSServerObject)pName.Open();
&&&&&&&&&&& IMapServer pMapServer = (IMapServer)pServerO
&&&&&&&&&&& ESRI.ArcGIS.Carto.IMapServerLayer pMapServerLayer = new ESRI.ArcGIS.Carto.MapServerLayerClass();
&&&&&&&&&&& pMapServerLayer.ServerConnect(pServerObjectName, pMapServer.DefaultMapName);
&&&&&&&&&&& axMapControl1.AddLayer(pMapServerLayer as ILayer);
&&&&&&&&&&& axMapControl1.Refresh();
&&&&&&&&&&&& pActvie = axMapControl1.Map as IActiveView;
&&&&&&&&&&& IDynamicMap pDynamicMap = pActvie.FocusMap as IDynamicMap;
&&&&&&&&&&& pDynamicMap.DynamicMapEnabled = true;
&&&&&&&&&&& pDynamicMap.DynamicDrawRate = 15;
&&&&&&&&&&
&&& DrawDynamicLayer方法
using System.Collections.G
using System.T
using System.D
using System.T
using ESRI.ArcGIS.ADF;
using ESRI.ArcGIS.ADF.Connection.L
using ESRI.ArcGIS.ADF.BaseC
using ESRI.ArcGIS.G
using ESRI.ArcGIS.G
using ESRI.ArcGIS.C
using ESRI.ArcGIS.D
using ESRI.ArcGIS.SystemUI;
namespace QARFlight
&&& public sealed class FlightDynamicLayer : BaseDynamicLayer
&&&&&&& public bool m_bOnce = true;
&&&&&&& private IDynamicGlyph m_myGlyph = null;
&&&&&&& IDynamicGlyph m_lineGlyph = null;
&&&&&&& private IDynamicSymbolProperties2 m_dynamicSymbolProps = null;
&&&&&&& private IDynamicSymbolProperties2 m_ldynamicSymbolProps = null;
&&&&&&& private IPoint m_point = null;
&&&&&&& private Timer m_updateTimer = null;
&&&&&&& public double C
&&&&&&& public FlightDynamicLayer()
&&&&&&&&&&& : base()
&&&&&&&&& &&base.m_sName = &My Dynamic layer&;
&&&&&&&&&&& m_updateTimer = new Timer(10);
&&&&&&&&&&& m_updateTimer.Enabled = false;
&&&&&&&&&&& m_updateTimer.Elapsed += new ElapsedEventHandler(OnTimerElapsed);
&&&&&&& public void Draw(IPoint pPoint)
&&&&&&&&&&& this.m_point = pP
&&&&&&& IPointCollection pPointC
&&&&&&& ///&summary&
&&&&&&& ///更新飞机的位置和姿态
&&&&&&& ///&/summary&
&&&&&&& ///&param name=&x&&&/param&
&&&&&&& ///&param name=&y&&&/param&
&&&&&&& ///&param name=&Course&&&/param&
&&&&&&& public void Update(double x, double y, double Course)
&&&&&&&&&&& if (this.m_point == null)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& m_point = new PointClass();
&&&&&&&&&&&&&&& pPointCollection = new PolylineClass() as IPointCollection;
&&&&&&&&&&& }
&&&&&&&&&&& this.m_point.X =
&&&&&&&&&&& this.m_point.Y =
&&&&&&&&&&& this.Course = C
&&&&&&&&&&& pPointCollection.AddPoint(this.m_point);
&&&&&&& ///&summary&
&&&&&&& ///获取线的渲染符号
&&&&&&& ///&/summary&
&&&&&&& ///&param name=&rgbColor&&&/param&
&&&&&&& ///&param name=&inWidth&&&/param&
&&&&&&& ///&param name=&inStyle&&&/param&
&&&&&&& ///&returns&&/returns&
&&&&&&& public ESRI.ArcGIS.Display.ISimpleLineSymbol GetSimpleLineSymbol(ESRI.ArcGIS.Display.IRgbColor rgbColor, System.Double inWidth, ESRI.ArcGIS.Display.esriSimpleLineStyle inStyle)
&&&&&&&&&&& if (rgbColor == null)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& return null;
&&&&&&&&&&& }
&&&&&&&&&&& ESRI.ArcGIS.Display.ISimpleLineSymbol simpleLineSymbol = new ESRI.ArcGIS.Display.SimpleLineSymbolClass();
&&&&&&&&&&& simpleLineSymbol.Style = inS
&&&&&&&&&&& simpleLineSymbol.Color = rgbC
&&&&&&&&&&& simpleLineSymbol.Width = inW
&&&&&&&&&&& return simpleLineS
&&&&&&& public override void DrawDynamicLayer(esriDynamicDrawPhase DynamicDrawPhase, IDisplay Display, IDynamicDisplay DynamicDisplay)
&&&&&&&&&&& if (DynamicDrawPhase != esriDynamicDrawPhase.esriDDPImmediate)
&&&&&&&&&&&&&&& return;
&&&&&&&&&&& if (!m_bValid || !m_visible)
&&&&&&&&&&&&&&& return;
&&&&&&&&&&& IEnvelope visibleExtent = Display.DisplayTransformation.FittedB
&&&&&&&&&&& IDynamicGlyphFactory dynamicGlyphFactory = null;
&&&&&&&&&&&
&&&&&&&&&&& if (m_bOnce)
&&&&&& &&&&&{
&&&&&&&&&&&&&& dynamicGlyphFactory = DynamicDisplay.DynamicGlyphF
&&&&&&&&&&&&&&& m_dynamicSymbolProps = DynamicDisplay as IDynamicSymbolProperties2;
&&&&&&&&&&&&&&& m_ldynamicSymbolProps = DynamicDisplay as IDynamicSymbolProperties2;
&&&&& &&&&&&&&&&IDynamicGlyphFactory2 dynamicGlyphFactory2 = dynamicGlyphFactory as IDynamicGlyphFactory2;
&&&&&&&&&&&&&&& IPictureMarkerSymbol pPicture = new PictureMarkerSymbolClass();
&&&&&&&&&&&&&&& if (this.Course & 0)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& this.Course = Math.Abs(this.Course);
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& pPicture.Angle = C
&&&&&&&&&&&&&&& pPicture.Size = 46;
&&&&&&&&&&&&&&& pPicture.BitmapTransparencyColor = ESRI.ArcGIS.ADF.Connection.Local.Converter.ToRGBColor(Color.FromArgb(255, 255, 255)) as IColor;
&&&&&&&&&&&&&&& pPicture.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureBitmap, @&.\plane.bmp&);
&&&&&&&&&&&&& m_myGlyph = dynamicGlyphFactory.CreateDynamicGlyph(pPicture as ISymbol);
&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& m_updateTimer.Enabled = true;
&&&&&&&&&&&&&&& m_bOnce = false;
&&&&&&&&&&&&&&& ISimpleLineSymbol pSimpleLineSym = GetSimpleLineSymbol(ESRI.ArcGIS.ADF.Connection.Local.Converter.ToRGBColor(Color.FromArgb(0, 255, 0)) as IRgbColor, 2, esriSimpleLineStyle.esriSLSSolid);
&&&&&&&&&&&&&&&& m_lineGlyph = dynamicGlyphFactory.CreateDynamicGlyph((ISymbol)pSimpleLineSym);
&&&&&&&&&&& }
&&&&&&&&&&& m_dynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolMarker, m_myGlyph);
&&&&& &&&&&&m_dynamicSymbolProps.SetScale(esriDynamicSymbolType.esriDSymbolMarker, 1.0f, 1.0f);
&&&&&&&&&&& m_dynamicSymbolProps.set_RotationAlignment(esriDynamicSymbolType.esriDSymbolMarker, esriDynamicSymbolRotationAlignment.esriDSRAScreen);
&&&&&&&&&&& DynamicDisplay.DrawMarker(m_point);
&&&&&&&&&&
&&&&&&&&&&& if (pPointCollection.PointCount & 1)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& m_ldynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolLine, m_lineGlyph);
&&&&&&&&&&&&&&&&&&&&&&&&&&& m_ldynamicSymbolProps.SetScale(esriDynamicSymbolType.esriDSymbolLine, 1.0f, 1.0f);
&&&&&&&&&&&&&&& DynamicDisplay.DrawPolyline(pPointCollection);
&&&&&&&&&&& }
&//绘制完毕
&&&&&&&&&&& base.m_bIsImmediateDirty = false;
&&&&&&& void OnTimerElapsed(object sender, ElapsedEventArgs e)
&&&&&&&&&&& //确保下一个绘图周期
&&&&&&&&&&& base.m_bIsImmediateDirty = true;
FlightDynamicLayer pFlightLayer = new FlightDynamicLayer();
&&&&&&&&&&&&&
Global.MainForm.pActvie.FocusMap.AddLayer(pFlightLayer as ILayer);
&&&&&&&&&&&&&&& pFlightLayer.Update(point.X, point.Y, Course);
public IAGSServerObjectName GetMapServer(string pHostOrUrl, string pServiceName, bool pIsLAN)
&&&&&&&&&&& //设置连接属性
&&&&&&&&&&& IPropertySet pPropertySet = new PropertySetClass();
&&&&&&&&&&& if (pIsLAN)
&&&&&&&&&&&&&&& pPropertySet.SetProperty(&machine&, pHostOrUrl);
&&&&&&&&&&& else
&&&&&&&&&&&&&&& pPropertySet.SetProperty(&url&, pHostOrUrl);
&& &&&&&&&&&//打开连接
&&&&&&&&&&& IAGSServerConnectionFactory pFactory = new AGSServerConnectionFactory();
&&&&&&&&&&& IAGSEnumServerObjectName pServerObjectNames = pConnection.ServerObjectN
&&&&&&&&&&& pServerObjectNames.Reset();
&&&&&&&&&&& IAGSServerObjectName ServerObjectName = pServerObjectNames.Next();
&&&&&&&&&&& while (ServerObjectName != null)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& if ((ServerObjectName.Name.ToLower() == pServiceName.ToLower()) &&
&&&&&&&&&&&&&&&&&&& (ServerObjectName.Type == &MapServer&) )
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& break;
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& ServerObjectName = pServerObjectNames.Next();
&&&&&&&&&&& }
&&&&&&&&&&& //返回对象
&&&&&&&&&&& return ServerObjectN
作者其他博文
& 2015 Gistech All Rights Reserved. 北京捷泰科技有限公司版权所有&&&&审图号GS(
& 甲测资字&&&
& 京公网安备号-2

我要回帖

更多关于 arcgis图层显示 的文章

 

随机推荐