经纬度坐标转换成屏幕坐标

地理坐标定义规则:X轴(代表经度)向右递增,Y轴(纬度)向上递增,就好比小学学过的平面坐标。向左、向下的规则。屏幕坐标定义规则:X轴向右递增,Y轴向下递增。

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

这里强调一点的就是为了保证精度,地理坐标的度*3600换算成秒,所有的取值用double来计算,最后的结果再转换成int。

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

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

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

公式:scaleY = ((maxLat-minLat)*3600)/y ----------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 - 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

java地理坐标转屏幕_(转)经纬度坐标转换为屏幕坐标相关推荐

  1. 屏幕距离和坐便转换工具_地图经纬度坐标与屏幕坐标的转换(android版)

    我们在开发GIS系统的时候,首先要解决的就是地图的可视化问题,这个问题的关键就在于如何把地图的坐标转换成屏幕坐标,然后才到渲染着色.标注等.以下以wgs84经纬度坐标为基准,介绍一下地图经纬度坐标与屏 ...

  2. 经纬度坐标转换为屏幕坐标

    经纬度坐标转换成屏幕坐标 地理坐标定义规则:X轴(代表经度)向右递增,Y轴(纬度)向上递增,就好比小学学过的平面坐标.向左.向下的规则.屏幕坐标定义规则:X轴向右递增,Y轴向下递增. 可以看出,地理坐 ...

  3. 西安80转换成北京独立计算机,WGS84经纬度坐标转换为西安80高斯投影坐标.

    dsfqfzneiphp 通过 波段编号18和相应的中央子午线为105°,表示计算基于6度波段划分. 您要注意标题" WGS84经纬度坐标转换为西安80高斯投影坐标",也就是说,在 ...

  4. 怎样把经纬度坐标转换为空间直角坐标

    怎样把经纬度坐标转换为空间直角坐标 假设你的空间直角坐标以地球球心为原点, 原点到北极为正z轴, 原点到经纬度(0,0)为正x轴 那么纬度a(北正南负), 经度b(东正西负) 的空间直角坐标为 x = ...

  5. 球面经纬度坐标转换为空间直角坐标

    球面经纬度坐标转换为空间直角坐标 x = Rcos(B)cos(L) y = Rcos(B)sin(L) z = Rsin(B) R为地球半径

  6. 经纬度坐标转换为工程坐标

    1. 绪论 在施工和工程测量时,经常需要将GPS坐标转换为工程中所使用的坐标.在Bing上检索到的类似问题,基本描述为两个坐标系的转换,但实际上并非如此. 本文将详细解释转换过程和转换方法. 1.1 ...

  7. java版谷歌地图计算两经纬度坐标点的距离

    球面上两点间大圆劣弧的距离 public class GoogleMapHelper {private static double EARTH_RADIUS = 6378.137; //地球半径//将 ...

  8. 给定经纬度计算距离_通过经纬度坐标计算距离的方法(经纬度距离计算)ZZ

    通过经纬度坐标计算距离的方法(经纬度距离计算) 最近在网上搜索"通过经纬度坐标计算距离的方法",发现网上大部分都是如下的代码: #define PI 3.14159265 stat ...

  9. GIS经纬度坐标转换为unity3D的世界坐标

    GIS经纬度坐标代表现实生活中地球的经纬度坐标,具体代码如下: using System.Collections; using System.Collections.Generic; using Un ...

最新文章

  1. android 弹出fragment,Android中ViewPager获取当前显示的Fragment
  2. 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)...
  3. 001-ant design安装及快速入门【基于纯antd的基本项目搭建】
  4. 学习JNI一些基础知识
  5. [导入]IIS无法显示asp页面
  6. css3的新特性transform,transition,animation
  7. java多线程阻塞队列_阻塞队列和多线程消费者,如何知道何时停止
  8. 继承(四):new方法都与基类中方法无关
  9. 微型计算机系统与接口流水灯,单片机的LED流水灯系统设计2.doc
  10. 华为防火墙网管配置实例
  11. 2.RabbitMQ实战 --- 理解消息通信
  12. 斐讯E1刷K2版老毛子Padavan,完美实现中继教程
  13. c语言面试(c语言面试基础知识)
  14. 关于一些数据集的下载链接
  15. 修改系统时区(基于Debian的系统)--用Enki学Linux系列(15)
  16. 宽带连接时用电脑开热点的方法
  17. QTextEdit和QTextDocument(一)
  18. 英文论文在LATEX修改部分单词的颜色
  19. 进制转换-二进制和十进制的转化
  20. 英文简历格式(吴军个人网页)

热门文章

  1. freescale R10 ipu lib 分析 - ipu_device.c
  2. matlab axisxy行列关系,在matlab中axis是什么意思
  3. Win7不激活会怎么样 Win7可以不用激活吗
  4. ~!#¥%……*()——+|
  5. 计算机视觉——SIFT特征提取与检索
  6. elasticsearch(es)高级查询api
  7. 读我们的学科——计算机专业学习浅谈
  8. Win7下硬盘响声大的解决办法
  9. Element表格内容不垂直居中和内容换行显示
  10. 【工作需要】CAD+VBA 实现图块的旋转平移缩放和拼接