最近在调研arcgis地图,就把一些自己写的基本的操作po一下,希望对刚刚开始接触到arcgis的童鞋有点帮助,大神请指正吐槽。
效果就是这样滴:

正文:
引入命名空间:

using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Analyst3D;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.GlobeCore;

全局变量:

private ISceneViewer m_ActiveView;
private ICamera m_Camera;

加载地图:

if (axGlobeControl1.Check3dFile(filePath))
{axGlobeControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass;axGlobeControl1.Load3dFile(filePath);axGlobeControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
}
else
{MessageBox.Show(filePath + "不是有效的地图文件");
}
this.MouseWheel += new System.Windows.Forms.MouseEventHandler(axGlobeControl1_OnMouseWheel);

鼠标滚动放大缩小事件:

        private void axGlobeControl1_OnMouseWheel(object sender, MouseEventArgs e){//将axGlobeControl1相对于软件的坐标,变换成屏幕坐标System.Drawing.Point pSceLoc = axGlobeControl1.PointToScreen(axGlobeControl1.Location);//将鼠标所在位置坐标变换成屏幕坐标System.Drawing.Point Pt = this.PointToScreen(e.Location);//判断鼠标是否在屏幕外,如果是返回,无操作if (Pt.X < pSceLoc.X || Pt.X > pSceLoc.X + axGlobeControl1.Width || Pt.Y < pSceLoc.Y || Pt.Y > pSceLoc.Y + axGlobeControl1.Height){return;}double scale = 0.2;if (e.Delta > 0) scale = -scale;IGlobeCamera pGlobeCamera = axGlobeControl1.GlobeCamera;ICamera pCamera = pGlobeCamera as ICamera;IGlobeDisplay pGlobeDisplay = axGlobeControl1.GlobeDisplay;if (pGlobeCamera.OrientationMode == esriGlobeCameraOrientationMode.esriGlobeCameraOrientationGlobal){double xo, yo, zo;pGlobeCamera.GetObserverLatLonAlt(out xo, out yo, out zo);zo = zo * (1 + scale);pGlobeCamera.SetObserverLatLonAlt(xo, yo, zo);}else{pCamera.ViewingDistance += pCamera.ViewingDistance * scale;}axGlobeControl1.GlobeDisplay.RefreshViewers();}

radial菜单实现几个功能:
需要注意,地图是默认没有开启漫游的,所以需要axGlobeControl1.Navigate = true。

                switch (item.Text){case "漫游" :axGlobeControl1.Navigate = true;//axGlobeControl1.MousePointer = esriControlsMousePointer.esriPointerPan;break;case "放大":double vfa = m_Camera.ViewFieldAngle;m_Camera.ViewFieldAngle = vfa * 0.9;m_ActiveView.Redraw(false);break;case "缩小":double vfa1 = m_Camera.ViewFieldAngle;m_Camera.ViewFieldAngle = vfa1 * 1.1;m_ActiveView.Redraw(false);break;case "3D":axGlobeControl1.Navigate = true;//axGlobeControl1.MousePointer = esriControlsMousePointer.esriPointerPan;break;}

C# ArcGIS 三维地图 arcgloblecontrol 基础操作 加载地图 漫游 放大 缩小相关推荐

  1. C# arcgis globecontrol 三维地图 基础操作 加载地图 缩放 漫游

    最近由于开发需要,接触了下argis,虽然很牛逼,但是很多东西都不太清楚,这里就简单的写下arcgis的一些基本操作,备用. ArcGlobe与ArcScene功能比较与简单说明  ArcGIS De ...

  2. 百度地图-省市县联动加载地图

    2019独角兽企业重金招聘Python工程师标准>>> 在平常项目中,我们会遇到这样的业务场景: 客户希望把自己的门店绘制在百度地图上,通过省.市.区的选择,然后加载不同区域下的店铺 ...

  3. arcengine 加载地图不显示_ArcEngine加载地图

    对于ArcEngine开发者来说,万事第一步,就是要先加载地图数据,不过我们下面要讲的加载地图的方法不是用ArcEngine自带的控件或命令来实现的,而是以代码方式实现的.加载地图的方式主要分为两种: ...

  4. ArcGis API for JavaScript学习——加载地图

    ArcGis API for JavaScript开发笔记--加载地图 在这个例子中使用的离线部署的API(请参见 http://note.youdao.com/noteshare?id=f42865 ...

  5. 如何使用Robostudio加载地图?

    由于slamcore没有保存地图的功能,在构建完地图以后,需要从上位机加载地图到slamcore里面,以便地图的复用.构建地图的过程请参考:如何构建一张满足导航需求的地图? 本文解释了关于加载地图的操 ...

  6. STK加载地图与高清影像图

    在STK软件中,其3D/2D窗口中地球(其它行星类似)的地图图片是通过特定格式(带经纬度信息)的图片直接加载而成.选择合适的地图图片,除了可以显示不同形式的地理坐标外,还可提升视景仿真动画的逼真效果. ...

  7. Echarts3实例 加载地图

    前言 Echarts加载GeoJson数据生成canvas地图,可以实现地图简单的展示,获取GeoJson数据的方法见:https://blog.csdn.net/idomyway/article/d ...

  8. html卡死手机,手机页面加载地图,双手操作放大,APP卡死

    测试手机:小米5 现象:手机页面加载地图,双手操作放大,APP卡死,APP卡住后,点击物理返回键是能返回的,但页面全部不能点击. 页面代码: initMap() ; function initMap( ...

  9. arcgis图不见了_arcgis10.2软件无法加载地图影像数据、底图空白不显示,打不开怎么办?...

    一.问题描述 在安装完arcgis打开arcmap后,想要加载gis自带的底图却发现点击添加底图按钮为灰色或并未显示任何地图文件,如:热点图.卫星图等,一片空白. 二.错误原因 出现这个问题主要是因为 ...

最新文章

  1. 【Ubuntu】Ubuntu下的录频软件SimpleScreenRecorder
  2. python和c语言的对比_类C语言与Python负数除法求值间的差异
  3. java代码连接jdbc_纯JDBC代码连接实例 + 完整代码
  4. shell 数学运算
  5. Tomcat之Windows下安装
  6. Gridview 鼠标悬浮光棒效果
  7. BZOJ3040:最短路——题解
  8. 【工具与解决方案】从做项目中积累学习
  9. CRUD全栈式编程架构之控制器的设计
  10. Web应用运行在pywebview在窗口
  11. config userc.php,框架内置Config.php配置
  12. Ubuntu做Tomcat服务:insserv: warning: script 'tomcat' missing LSB tags and overrides
  13. oracle_sqlserver和mysql获取表外键的方法_MYSQL教程如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)...
  14. 教师计算机培训汇报ppt,教师培训工作总结ppt模板
  15. 怎么往云服务器里传输文件,怎么把文件传输到云服务器
  16. html周志模板,校友邦周志范文16篇
  17. RxSwift取消定时
  18. 云直播丁云鹏:最可怕的,是你低估生活的残酷
  19. 简历之精通 熟练 掌握 熟悉 了解
  20. 数据包络分析-CEA碳减排有关文献分析(第一篇)

热门文章

  1. 学生找家教老师平台小程序开发制作功能介绍
  2. SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问
  3. 使用AD(Altium Designer)画PCB报错Net Antennae: Track....的解决方案
  4. 怎么改变gif动图的大小?手把手教你快速修改gif尺寸
  5. 再获金融科技领域认可,达观荣获毕马威金融科技50强,艾瑞FinTech卓越者TOP50
  6. 魅族+android+wear,官宣,魅族将推出智能手表
  7. 删除 Word文档中的空白页方法
  8. 香港中文大学深圳(CUHKSZ)数据科学硕士(MSc in Data Science)笔试面试经验(2018/9/16)
  9. Ubuntu死机解决办法
  10. matlab 变量命名规则