最近在用MapXtreme做项目,随笔记录备忘。

声明:PubMapPara 静态类,后缀为静态类成员变量

1.加载地图

/// <summary>
/// 地图工作空间文件路径
/// </summary>
public static string mapFileName = system.Environment.CurrentDirectory + @"\地图6\矿车定位.mws"; //加载不同类型的地图文件
public void LoadMap()
{
if (mapFileName.ToLower().EndsWith(MapLoader.FileExtensionGST))//判断加载地图文件类型
{
this.myMapControl.Map.Load(new MapGeosetLoader(mapFileName));//后缀名为gst文件
}
else if (mapFileName.ToLower().EndsWith(MapLoader.FileExtensionWOR))//后缀名为mws文件
{
this.myMapControl.Map.Load(new MapWorkSpaceLoader(mapFileName));
}
else
{
this.myMapControl.Map.Load(new MapTableLoader(mapFileName));
}
}

2.当前鼠标位置的二维坐标转成地图坐标

void myMapControl_MouseClick(object sender, MouseEventArgs e)
{
DPoint myPoint = new DPoint();
//浮点数的二维坐标
PointF mousePoint = new PointF(e.X, e.Y);
//获取当前地图可用于将地图和图层坐标转换成显示坐标以及相反的转换
DisplayTransform myDisplayTransform = this.myMapControl.Map.DisplayTransform;
//坐标转换
myDisplayTransform.FromDisplay(mousePoint, out myPoint);
}

3.设置图层可选、可编辑

FeatureLayer myFeaLayer = (FeatureLayer)this.myMapControl.Map.Layers[aliasName];
if(myFeaLayer != null)
{
LayerHelper.SetEditable(myFeaLayer, true);
LayerHelper.SetSelectable(myFeaLayer, true);
}

4.设置图层可视

FeatureLayer myFeaLayer = (FeatureLayer)this.myMapControl.Map.Layers[aliasName];
if (myFeaLayer != null)
{
myFeaLayer.Enabled = true;
}

5.控制地图的缩放范围

//地图视图发生变化
myMapControl.Map.ViewChangedEvent += new ViewChangedEventHandler(Map_ViewChangedEvent); /// <summary>
/// 地图视图发生变化
/// </summary>
void Map_ViewChangedEvent(object sender, ViewChangedEventArgs e)
{
//设置地图缩放比例
LimitZoomValue();
} /// <summary>
/// 限制地图缩放比例
/// 防止出现地图由于无限缩小无法找到地图的现象
/// </summary>
private void LimitZoomValue()
{
if (myMapControl.Map != null)
{
if (myMapControl.Map.Zoom.Value < PubMapPara.zoomMax)
{
myMapControl.Map.Zoom = new MapInfo.Geometry.Distance(PubMapPara.zoomMax, this.myMapControl.Map.Zoom.Unit);
}
if (myMapControl.Map.Zoom.Value > PubMapPara.zoomMin)
{
myMapControl.Map.Zoom = new MapInfo.Geometry.Distance(PubMapPara.zoomMin, this.myMapControl.Map.Zoom.Unit);
}
}
}

MapXtreme 随笔记录1的更多相关文章

  1. 初识html、css时随笔记录

    css部分样式 圆框效果:border-radius:5px; 固定样式:position:fixed;悬浮窗在IE6中position:absolute其余浏览器可以用fixed: 使table中的 ...

  2. Apache自带 ab压测工具 Windows配置使用说明 - 随笔记录

    我们先来了解一下ab工具的概念,摘自网络: ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如ngin ...

  3. MySQL学习随笔记录

    安装选custmer自定义安装.默认安装全部在c盘.自定义安装的时候有个advance port选项用来选择安装目录. -----------------------MySQL常见的一些操作命令--- ...

  4. hive 属性随笔记录

    set hive.mapred.mode=strict; //设置hive执行模式,默认为nonstrict(非严格模式),这里设置为严格模式 set hiveconf:hive.cli.print. ...

  5. 随笔记录①—利用poi读取Word中的标题和内容

    使用时间:4小时 使用poi方法将word中的内容提取出来,并输出到控制台或者存储到数据库poi.jar下载地址:https://www.apache.org/dyn/closer.lua/poi/r ...

  6. 随笔记录 MBR扇区故障系统备份与还原 2019.8.7

    系统备份: [root@localhost ~]# mkdir /abc [root@localhost ~]# mount /dev/sdb1 /abc [root@localhost ~]# dd ...

  7. 随笔记录 grub引导故障修复 2019.8.7

    系统备份: [root@localhost ~]# mkdir /abc [root@localhost ~]# mount /dev/sdb1 /abc [root@localhost ~]# dd ...

  8. (。・・)ノ~个人java学习随笔记录

    基本认识 1.编程思维 根据这几天的java学习,编写程序最重要的就是要有一个清晰的思路.语法上的错误可以跟随着不断的联系与学习来弥补,清晰的思维却只有自己来前期模仿,后面慢慢摸索形成一套属于自己的思 ...

  9. openStack kilo 手动Manual部署随笔记录

    一 ,基于neutron网络资源主机(控制节点,网络节点,计算节点)网络规划配置 1, controller.cc 节点 网络配置截图

随机推荐

  1. Delphi三层网络架构代码实现

    Delphi三层网络架构代码实现 1 .三层网络的概念 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为: 表现层(UI).业务逻辑层(BLL).数据访 ...

  2. js面向对象+一般方法的选项卡

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Robotium源码分析之Instrumentation进阶-attach

    在分析Robotium的运行原理之前,我们有必要先搞清楚Instrumentation的一些相关知识点,因为Robotium就是基于Instrumentation而开发出来的一套自动化测试框架.鉴于之 ...

  4. PDF解决方案(3)--PDF转SWF

    相关专题链接 PDF解决方案(1)--文件上传 PDF解决方案(2)--文件转PDF PDF解决方案(3)--PDF转SWF PDF解决方案(4)--在线浏览 前言:上一篇中介绍了上传的文件转PDF, ...

  5. Fedora 20中解决zip解压文件时中文文件名的乱码问题[已解决]

    该方法的原文地址: http://wangqige.com/the-solution-of-unzip-files-which-zip-under-windows/(链接已失效) 解决方法:保存如下P ...

  6. Oracleclient+PLSQL Developer实现远程登录Oracle数据库

    Oracle数据库功能强大.性能卓越,在造就这些长处的同一时候,也导致Oracle占内存比較多.针对这个问题,我们怎样做到取其精华去其糟粕呢? 解决方式:我们能够在局域网内的server上安装庞大的O ...

  7. STM32W芯片的JTAG口用于GPIO

    使用过程中发现STM32W芯片在驱动液晶SPI液晶时,在调试状态下可以正常工作但在通常运行情况下却没有任何显示! 经查发现我使用的两个端口PC0和PC3的电平很不正常,拉不高. 所以我就怀疑到IO口问 ...

  8. ProvissyTool Update Support Page

    DO NOT REPLY. ############# #??????# ############

  9. 【Android中Broadcast Receiver组件具体解释 】

    BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...

  10. QualityCenter的备份

    1.停止QC Server:2.备份Domain repository,它囊括每个项目的大量数据(包括自动化测试数据.附件.设置和格式表单等).要想知道某个项目所使用的数据库的名字,可以在Site A ...