1.       控件坐标与地图坐标的转换

控件坐标是以左上角为基准点(原点0,0),往右为X轴正方向,往下为Y轴正方向的。而地图坐标则是以左下角为基准点,往右为X轴正方向,往上为Y轴正方向,并且可以通过平移缩放等功能,将基准点移到任意点上。这里需要使用坐标的转换来完成控件坐标到地图坐标的转换关系。

已知控件的高度(CtlHeight)和地图的基准点坐标(CorX,CorY),地图当前比例尺(MapScale),就可以完成坐标的转换关系,如下

///<summary>

///坐标转换,从控件坐标到地图坐标

///</summary>

///<param name="point"></param>

///<returns></returns>

public PointClass ToMapPoint(Point point)

{

PointClass result =newPointClass ();

result.X = point.X * MapScale + CorX;

result.Y = (CtlHeight - point.Y) * MapScale + CorY;

return result;

}

///<summary>

///坐标转换,从地图坐标到控件坐标

///</summary>

///<param name="point"></param>

///<returns></returns>

public Point FromMapPoint(PointClass point)

{

Point result = new Point();

result.X = (int)((point.X - CorX) / MapScale);

result.Y = CtlHeight - (int)((point.Y - CorY) / MapScale);

return result;

}

地图坐标点类:

namespace GIS.HJ.Geometry

{

///<summary>

///地图坐标

///</summary>

public class PointClass:GeometryClass

{

///<summary>

///默认构造函数

///</summary>

public Point()

{

base.GeometryType = GeometryType.Point;

}

///<summary>

///带初始化参数的构造函数

///</summary>

///<param name="x"></param>

///<param name="y"></param>

public Point(double x,double y)

{

X = x;

Y = y;

}

///<summary>

/// X坐标

///</summary>

public double X { get; set; }

///<summary>

/// Y坐标

///</summary>

public double Y { get; set; }

}

}

C#.net 地图控件开发 (一) 控件坐标与地图坐标相关推荐

  1. android地图画线,绘制折线-在地图上绘制-开发指南-Android 轻量版地图SDK | 高德地图API...

    地图上绘制的线是由 Polyline 类定义实现的,线由一组经纬度(LatLng对象)点连接而成. 绘制一条线 与点标记一样,Polyine的属性操作集中在PolylineOptions类中,添加一条 ...

  2. 用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件

    用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件 用C#编写ActiveX控件 开发浏览器控件这是本控件开发完成后的一个简单应用.我们可以利用它以本地文件夹为单位来批量更新服务器 ...

  3. (百度、高德、谷歌)离线地图二次开发

    (百度.高德.谷歌)离线地图二次开发 发布时间:2019-04-10 版权: 相关链接:三维(3D)离线地图 二次开发                               1.如何搭建离线地图 ...

  4. echarts地图文字重叠解决方案_echarts地图自适应中出现重叠错位的两个地图问题排查...

    项目的可视化模块中使用了echarts作为图表库.当对散点类地图作自适应开发时,发现在对地图进行偏移或缩放的时候,画布上出现了重叠并且错位的两个地图. 问题现象 上图是对地图设置偏移出现的情况,下图是 ...

  5. SAP UI5 应用开发教程之六十 - SAP UI5 地图控件的一些高级用法试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  6. C#进行MapX二次开发之控件基本操作

    上篇介绍了MapX的部分基本使用代码,包括放大.缩小.缩放到初始大小(全图).平移.矩形选择.圆形选择.箭头.打开图层对话框 .打开ActiveX属性对话框 .添加符号等基本操作代码,本篇继续探讨一些 ...

  7. 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用

    Dixon 原文  用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方 ...

  8. 【delphi】微信公众号控件开发(一)

    Delphi 微信公众号控件开发: Delphi微信公众号控件开发: 一.公共属性定义 1. AppID(开发者ID) 2. AppSecret(开发者密码) 3. Token(令牌) 4. Base ...

  9. Asp.net控件开发学习笔记(三)-控件开发基础

    封装      在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件      创建自 ...

最新文章

  1. 人类、动物和人工智能意识的新理论
  2. 《虚拟化与云计算》推荐序二
  3. 【深度学习入门到精通系列】U-net网络分析
  4. QML on Android 在小米5s手机上中文字体显示异常
  5. oracle树结构查询----connect by语法详解
  6. Swift5之网易云音乐页面搭建
  7. Google IO 2017为我们带来了什么
  8. Git生成SSH共钥
  9. iOS精品源码,GHConsole图片浏览器圆形进度条音视频传输连击礼物弹出动画 1
  10. Android TV开发总结【适配】
  11. cad隐藏图层命令快捷键_99%的人没用过CAD图层这个功能!
  12. h5页面自定义字体_H5页面字体设置
  13. Android布局——水滴屏全屏设置
  14. 2021-11-25 使用kali自带的SET工具制作钓鱼网站
  15. 控制变量!控制变量!
  16. 同程艺龙解除合作,同程支付艺龙3000万补偿金
  17. 微信小程序合集源码I(机器人聊天+仿别踩白块儿小游戏+仿步步高电子词典+仿知乎+日记+汉字拼音+转盘抽奖)
  18. 双目立体视觉建立深度图_从单幅图像到双目立体视觉的3D目标检测算法
  19. 南卡耳机和漫步者耳机哪个好?看完这篇文章就能知道哪个好
  20. 通信达股票交易接口-Java语言

热门文章

  1. 「LuoguP4752」牧 Divided Prime(判质数
  2. ipmsg在360 ARP防火墙后不能接收文件
  3. lastpass有家庭版的车队么
  4. 垓下古战场发现龙山文化时期城址
  5. Idhttp ,cookie相关
  6. 我是如何从流水线工人到程序员的?
  7. Photoshop中手绘水墨风格美女
  8. Flink编程三大组件(一)——Source
  9. phpcms附件实现Flash上传换成H5上传
  10. fpx对阵ig心都碎了