打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
向ArcGlobe中添加Graphics Layer
//向ArcGlobe中添加Graphics Layer
        /// <summary>
        /// 向ArcGlobe中添加Graphics Layer
        /// </summary>
        /// <param name="globe"></param>
        /// <param name="graphicsLayerName"></param>
        public void AddNewGraphicsLayer(ESRI.ArcGIS.GlobeCore.IGlobe globe, System.String graphicsLayerName)
        {
            // 创建graphics layer 并添加到 ArcGlobe
            ESRI.ArcGIS.Carto.IGraphicsContainer globeGraphicsLayer = new ESRI.ArcGIS.GlobeCore.GlobeGraphicsLayerClass();
            ESRI.ArcGIS.Carto.ILayer layer = (ESRI.ArcGIS.Carto.ILayer)globeGraphicsLayer;

            layer.Name = graphicsLayerName;
            ESRI.ArcGIS.Analyst3D.IScene scene = globe as ESRI.ArcGIS.Analyst3D.IScene;


            scene.AddLayer(layer, true);

            // 向graphics layer添加点元素
            ESRI.ArcGIS.Carto.IElement markerElement = new ESRI.ArcGIS.Carto.MarkerElementClass();
            ESRI.ArcGIS.Analyst3D.ISimpleMarker3DSymbol simpleMarker3DSymbol = new ESRI.ArcGIS.Analyst3D.SimpleMarker3DSymbolClass();
            simpleMarker3DSymbol.Style = ESRI.ArcGIS.Analyst3D.esriSimple3DMarkerStyle.esriS3DMSCone;

            // 设置相关属性
            simpleMarker3DSymbol.ResolutionQuality = 1;
            ESRI.ArcGIS.Display.IColor rgbColor = new ESRI.ArcGIS.Display.RgbColorClass();
            rgbColor.RGB = 255;

            ESRI.ArcGIS.Display.IMarkerSymbol markerSymbol = (ESRI.ArcGIS.Display.IMarkerSymbol)simpleMarker3DSymbol;
            markerSymbol.Color = rgbColor;
            markerSymbol.Size = 100000;


            ESRI.ArcGIS.Geometry.IPoint point = new ESRI.ArcGIS.Geometry.PointClass();
            point.PutCoords(-47, 44);
            markerElement.Geometry = point;

            // 添加到 graphics layer
            ESRI.ArcGIS.Carto.IMarkerElement markerElement_2 = (ESRI.ArcGIS.Carto.IMarkerElement)markerElement;
            markerElement_2.Symbol = markerSymbol;
            globeGraphicsLayer.AddElement(markerElement, 1);

            // 向graphics layer添加线元素
            ESRI.ArcGIS.Carto.IElement lineElement = new ESRI.ArcGIS.Carto.LineElementClass();
            ESRI.ArcGIS.Analyst3D.ISimpleLine3DSymbol simpleLineSymbol3D = new ESRI.ArcGIS.Analyst3D.SimpleLine3DSymbolClass();
            simpleLineSymbol3D.Style = ESRI.ArcGIS.Analyst3D.esriSimple3DLineStyle.esriS3DLSStrip;

            //设置颜色和大小
            simpleLineSymbol3D.ResolutionQuality = 1;
            rgbColor.RGB = 255000;

            ESRI.ArcGIS.Display.ILineSymbol lineSymbol = (ESRI.ArcGIS.Display.ILineSymbol)simpleLineSymbol3D;
            lineSymbol.Color = rgbColor;
            lineSymbol.Width = 2;

            // 设置geometry
            ESRI.ArcGIS.Geometry.IPolyline polyline = new ESRI.ArcGIS.Geometry.PolylineClass();
            ESRI.ArcGIS.Geometry.IPoint fromPoint = new ESRI.ArcGIS.Geometry.PointClass();
            fromPoint.PutCoords(-30, 44);
            polyline.FromPoint = fromPoint;
            ESRI.ArcGIS.Geometry.IPoint toPoint = new ESRI.ArcGIS.Geometry.PointClass();
            toPoint.PutCoords(-60, 44);
            polyline.ToPoint = toPoint;
            lineElement.Geometry = polyline;

            // 添加到 graphics layer
            ESRI.ArcGIS.Carto.ILineElement lineElement_2 = (ESRI.ArcGIS.Carto.ILineElement)lineElement;
            lineElement_2.Symbol = lineSymbol;
            globeGraphicsLayer.AddElement(lineElement, 1);

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
浅析ArcGis中的软件——ArcMap、ArcScene、 ArcGlobe、ArcCatalog
Arcgis和Qgis之间的差异——GIS历史上最伟大的GIS软件之战(简洁版)
ArcMap工具栏中嵌入自定义按钮
ArcGIS Server 开发系列(五)--自定义 Toolbar 工具
arcgis api 3.x for js 解决 textSymbol 文本换行显示(附源码下载)
C#教程之c#调用arcgis地图rest服务示例详解(arcgis地<div><p style="color: rgb(0, 0, 0); font-size: 14px; font-weight: 400;">1)构建请求网址</p><p style="color: rgb(0,
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服