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

  一、比例尺

首先地图本身就是表达地球上各种事物的空间分布、联系及时间中的发展变化状态绘制的图形。如何把地球上大量的空间信息显示在有限的地图上,这就是涉及到比例尺的问题。比例尺=图上距离与实际距离的比。

比例尺有resolution和scale两个概念

Resolution是指屏幕上一个像素和其所显示的地图在实际地面上的距离之比。

Scale是图上线段的长度和该段距离在地面的实际长度之比

一般来说计算机是使用Resolution这个概念,而人们生活中就是使用scale这个概念,因为Resolution直接就使用屏幕像素来计算,所以性能上比scale要快。

//计算resolution
double Resolution=map.width / screen.width //计算scale
float dpi=this.view.getResources().getDisplayMetrics().xdpi;
double PIXEL_SIZE=(1/dpi)*0.0254;
PIXEL_SIZE=(1/dpi)*0.0254
double Scale=Resolution* MetersPerUnit /PIXEL_SIZE
//0.0254为1英寸=0.0254米

   二、地图坐标和屏幕坐标的转换

如图所示,由于地球是球形的,同样两条经线,纬度越高,经线之间的直线距离越短,但经度还是保持不变的,所以在北半球或南半球上任意两条经线和纬线之间的区域,都是类似梯形的,由于这个梯形的左上角和左下角,右上角和右下角的经度都是相同的,所以我们可以把这个梯形看成是长方形,经过投影转换,在屏幕上看到的地图就是经过拉伸长方形了。

由于越向北,两条经线之间的实际距离越短,所以,要投影成长方形,就必须确定一个经度的长度:MetersPerUnit=111319.4908

//地图坐标转屏幕坐标:
screenPt.x=screen.center.x+ ((mapPt.x-mapExtent.center.x)/resolution+0.5);
screenPt.y=screen.center.y- (mapPt.y-mapExtent.center.y)/resolution+0.5);
//屏幕坐标转地图坐标:
mapPt.x=mapExtent.center.x+(screenPt.x-screen.center.x)*resolution;
mapPt.y=mapExtent.center.y-(screenPt.x-screen.center.x)*resolution;

最新文章

  1. 删除mysql中root用户恢复方法
  2. mbed学习之 PWMOUT
  3. meta 360极速模式
  4. Psam_ISO7816
  5. 年月日 生日 js插件
  6. Centos6 安装 Redis
  7. hdu 4068 福州赛区网络赛H 排列 ***
  8. node递归属性目录结构
  9. VS2010下配置使用OpenGL的glut库
  10. 2012 #3 Arcane Numbers
  11. AngularJs记录学习02
  12. no drawer view found with gravity RIGHT(Android实现侧滑菜单从右面滑出) 解决办法
  13. android sax解析xml 文件 动态加载标题
  14. 安全:加固你的ssh 登录
  15. JAVA并发,锁与方法
  16. tcp协议栈
  17. .Net Core和jexus配置HTTPS服务
  18. Debugger for chrome
  19. 【Java入门提高篇】Day34 Java容器类详解(十五)WeakHashMap详解
  20. Git基础命令的使用——详细教程2

热门文章

  1. POJ 2301
  2. ConcurrentHashMap的使用注意事项
  3. 从Windows下引导安装ubuntu
  4. Springboot 打jar包分离lib,配置文件正确方式(二)
  5. Django的sitemap
  6. Java之集合(十三)WeakHashMap
  7. C# 通过IEnumberable接口和IEnumerator接口实现泛型和非泛型自定义集合类型foreach功能
  8. Javac语法糖之增强for循环
  9. Spring Boot 的彩色日志
  10. libnetwork插件化网络功能