C#.net 地图控件开发 (一) 控件坐标与地图坐标
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 地图控件开发 (一) 控件坐标与地图坐标相关推荐
- android地图画线,绘制折线-在地图上绘制-开发指南-Android 轻量版地图SDK | 高德地图API...
地图上绘制的线是由 Polyline 类定义实现的,线由一组经纬度(LatLng对象)点连接而成. 绘制一条线 与点标记一样,Polyine的属性操作集中在PolylineOptions类中,添加一条 ...
- 用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件
用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件 用C#编写ActiveX控件 开发浏览器控件这是本控件开发完成后的一个简单应用.我们可以利用它以本地文件夹为单位来批量更新服务器 ...
- (百度、高德、谷歌)离线地图二次开发
(百度.高德.谷歌)离线地图二次开发 发布时间:2019-04-10 版权: 相关链接:三维(3D)离线地图 二次开发 1.如何搭建离线地图 ...
- echarts地图文字重叠解决方案_echarts地图自适应中出现重叠错位的两个地图问题排查...
项目的可视化模块中使用了echarts作为图表库.当对散点类地图作自适应开发时,发现在对地图进行偏移或缩放的时候,画布上出现了重叠并且错位的两个地图. 问题现象 上图是对地图设置偏移出现的情况,下图是 ...
- SAP UI5 应用开发教程之六十 - SAP UI5 地图控件的一些高级用法试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- C#进行MapX二次开发之控件基本操作
上篇介绍了MapX的部分基本使用代码,包括放大.缩小.缩放到初始大小(全图).平移.矩形选择.圆形选择.箭头.打开图层对话框 .打开ActiveX属性对话框 .添加符号等基本操作代码,本篇继续探讨一些 ...
- 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
Dixon 原文 用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方 ...
- 【delphi】微信公众号控件开发(一)
Delphi 微信公众号控件开发: Delphi微信公众号控件开发: 一.公共属性定义 1. AppID(开发者ID) 2. AppSecret(开发者密码) 3. Token(令牌) 4. Base ...
- Asp.net控件开发学习笔记(三)-控件开发基础
封装 在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件 创建自 ...
最新文章
- 人类、动物和人工智能意识的新理论
- 《虚拟化与云计算》推荐序二
- 【深度学习入门到精通系列】U-net网络分析
- QML on Android 在小米5s手机上中文字体显示异常
- oracle树结构查询----connect by语法详解
- Swift5之网易云音乐页面搭建
- Google IO 2017为我们带来了什么
- Git生成SSH共钥
- iOS精品源码,GHConsole图片浏览器圆形进度条音视频传输连击礼物弹出动画 1
- Android TV开发总结【适配】
- cad隐藏图层命令快捷键_99%的人没用过CAD图层这个功能!
- h5页面自定义字体_H5页面字体设置
- Android布局——水滴屏全屏设置
- 2021-11-25 使用kali自带的SET工具制作钓鱼网站
- 控制变量!控制变量!
- 同程艺龙解除合作,同程支付艺龙3000万补偿金
- 微信小程序合集源码I(机器人聊天+仿别踩白块儿小游戏+仿步步高电子词典+仿知乎+日记+汉字拼音+转盘抽奖)
- 双目立体视觉建立深度图_从单幅图像到双目立体视觉的3D目标检测算法
- 南卡耳机和漫步者耳机哪个好?看完这篇文章就能知道哪个好
- 通信达股票交易接口-Java语言