匿名用户

1级

2018-07-20 回答

可以看出,地理坐标和屏幕坐标的区别仅仅只是在于Y轴递增方向是相反的(这就是不同).

好了,现在我们开始转换他们吧. 这里强调一点的就是为了保证精度,地理坐标的度*3600换算成秒,所有的取值用double来计算,最后的结果再转换成int

1.已知道屏幕的高(y)和宽(h),地理坐标区域的范围(maxLon,minLon,maxLat,minLat)..这里我们知道了这些已知的参数

2.我们可以算出每像素所代表的经度和纬度(有人称这个为比例因子):

公式:scaleX = h/((maxLon-minLon)*3600) ----------X轴上每像素代表的经度秒数;

公式:scaleY = y/((maxLat-minLat)*3600) -----------Y轴上每像素代表的纬度秒数;

这两个比例因子就是两个坐标系之间的关系..

3.很简单的一步了,那就是算出该地理坐标区域中的任何一点(lon,lat)在屏幕上的坐标了,怎么算?下面来讲:

公式:screenX = lon*3600/scaleX; ---------屏幕坐标X轴坐标

公式:screenY = lat*3600/scaleY; ----------屏幕坐标Y轴坐标, 怎么样?很简单吧?这里我们就算出地理坐标上任何一点转到屏幕上的坐标是多少了

还有最后一步,那就是我们要把该地理区域占满占个屏幕该怎么办呢?

4. 接着我们需要该地理区域占满占个屏幕该怎么办呢

公式:minX = minLon*3600/scaleX; 区域左边置最左端

公式:minY = minLat*3600/scaleY; 区域上面置最上端

5. 当地地理范围区域占满整个屏幕时,我们需要用到第三步计算出来的 screenX和screenY两个参数

该区域中的任何一点的公式如下:

公式:X = screenX - minX = (lon - minLon)*3600/scaleX;

由于纬度的方向和屏幕Y轴是相反的,

公式:screenMaxLat = (maxLat - minLat)*3600/scaleY;

公式:screenLat = (lat - minLat)*3600/scaleY;

公式:Y = screenMaxLat - screenLat = (maxLat - lat)*3600/scaleY; 至于为什么是这个公式,我想大家仔细想想就明白了..

6.总结:

经纬度转屏幕坐标的最终公式如下:

公式: X = (lon - minLon)*3600/scaleX;

公式: Y = (maxLat - lat)*3600/scaleY;

接着我们由上面的公式可以推出屏幕坐标转经纬度坐标公式如下:

公式:lon = X * scaleX/3600 + minLon;

公式:lat = maxLat - y* scaleY/3600;

分享:

怎么把程序内部坐标转为屏幕坐标_各位老大,如何把屏幕坐标转换成游戏的坐标...相关推荐

  1. 怎么把程序内部坐标转为屏幕坐标_全网最详细CNC加工中心程序代码大全!

    数控机床的可编程功能分为两类: 一类用来实现刀具轨迹控制即各进给轴的运动,如直线/圆弧插补.进给控制.坐标系原点偏置及变换.尺寸单位设定.刀具偏置及补偿等,这一类功能被称为准备功能,以字母G以及两位数 ...

  2. 广州坐标系转换大地2000_你好,怎么将经纬度坐标转换成大地2000坐标?

    展开全部 经纬度坐e68a84e8a2ad3231313335323631343130323136353331333433663036标转换成大地2000坐标步骤: 1.ArcGIS中打开相关属性表, ...

  3. threejs 将屏幕坐标转换成3d中的坐标。

    将当前屏幕上的坐标转换成3d中的坐标pos 是当前canvas屏幕上的坐标,targetZ 是物体距离原点的距离 private get3DPosByCanvasPos (pos: THREE.Vec ...

  4. 怎么把程序内部坐标转为屏幕坐标,如何将工作空间坐标转换为屏幕坐标?

    I want to convert the workspace coordinates returned by GetWindowPlacement in rcNormalPosition.Left ...

  5. untiy UI的坐标转为屏幕坐标

    在某些情况下我们需要获取UI的屏幕坐标,但是目标UI有很多父物体,难以计算屏幕坐标,我们可以用UICameral来实现 首先要求画布改为 ScreenSpace-Camera模式,然后编写脚本 UIC ...

  6. java将投影坐标转为地理坐标_贡献高斯投影坐标与经纬度转换的java源码

    下载了好几个源程序都不能用,在他们的基础上经过我与公式的核对.现在将代码改成了java 以下是完整代码:绝对能用,我现在的项目中就用的这个. package tms.base.systemlib; @ ...

  7. iconfont 图标转为字体_如何把你的图标转换成web字体

    我已经制为网站制作了一些优雅的图标,并且在新的网站和老的iPad上进行了测试.正常尺寸下,布局看看上去一切OK,但的将页面进行放大显示,我却发现我的icon变得模糊不清,但是基于文本的标题依然清晰可见 ...

  8. java+小时转为分钟_用java将12862秒转换成 N 小时,K 分钟,M 秒

    用java将12862秒转换成 N 小时,K 分钟,M 秒以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 用java将1 ...

  9. 经纬度坐标转换成px_经纬度坐标转像素坐标

    "```\n// 经纬度坐标转像素坐标\nfunction latlng2px(lat, lng) {\n var LatLng = (function(){\n function LatL ...

  10. 经纬度坐标转换成px_墨卡托坐标与经纬度转换

    zoom为地图层级,最小zoom=0,此时瓦片总数量为1 X轴或Y轴的瓦片数量=2^zoom 瓦片总数量=2^zoom*2^zoom 每个瓦片像素为256*256 如:当zoom=2时,X轴Y轴的瓦片 ...

最新文章

  1. Tensorflow 可视化 TensorBoard 尝试~
  2. Spring @Lazy
  3. python使用字典格式化字符串-如何在python-3.x中使用字典格式化字符串?
  4. (拿来主义-8) Spring Boot属性配置文件详解(三)
  5. Maven中dependencies与dependencyManagement的区别
  6. Angular中数据文本绑定、绑定Html、绑定属性、双向数据绑定的实现方式
  7. SAP CRM BP contact detail - workAddress
  8. flask-sqlalchemy mysql_Flask SQLAlchemy连接到MySQL数据库
  9. Linux操作系统需要做的准备
  10. 常用并发工具类(锁和线程间通信工具类)
  11. php静态登录界面代码,JSP_JSP登录验证功能的实现,静态的登录界面的设计login.htm - phpStudy...
  12. camera(21)---MTK android AF调试总结
  13. 学习vue3系列ref
  14. 为了研究,可以在 Linux 内核中植入漏洞吗?
  15. python saltstack_通过Python利用saltstack进行生成服务器资产清单
  16. android studio for android learning (三) 我的第一个APP
  17. 在html5中插入flash,如何将Flash嵌入到HTML5中?
  18. python launcher下载_Python flauncher包_程序模块 - PyPI - Python中文网
  19. anywhere无法获取服务器响应,使用Chat Anywhere可能出现的问题与解决方法
  20. Oldboy_day01 Python的历史,变量\常量\数据类型\用户交互\流程控制\循环while

热门文章

  1. 插值拟合模型 之 Hermite插值、三次样条插值
  2. 2021全国化妆品产业区域研究报告
  3. 智慧城市大数据运营中心,发挥大数据价值
  4. pycharm 设置环境变量
  5. 大学计算机word文档试题,大学WORD文档练习题.doc
  6. Tomcat 修改启动端口号
  7. ObjectARX 2018 + AutoCAD2018 + VS2018 C# 创建第一个 Hello word程序
  8. 版本控制/文件管理系统SVN命令整理:提交修改更新撤销分支
  9. JVM 核心技术 22 讲
  10. Excel批量对比工具分享