Android 百度地图API学习(三)-----啥是坐标

来源:互联网 发布:网络图片头像男生 编辑:程序博客网 时间:2024/05/16 11:16

在接触的过程中,经常被一些 坐标、点、像素等概念困扰。

今天就来总结一下这些概念直接的关系

在百度地图API中,有如下几种坐标系:

  • 经纬度:通过经度(longitude)和纬度(latitude)描述的地球上的某个位置。
  • 平面坐标:投影之后的坐标(用x和y描述),用于在平面上标识某个位置。
  • 可视区域坐标:地图可视区域的坐标系(用x和y描述)。
  经纬度
这就是我们常说的地图上的坐标,经度(longitude)和纬度(latitude)是通过GPS的WGS84坐标系来显示的。但是如果要在baidu地图中显示这个点,就要经过一个转换了,否则误差很大。
[java] view plaincopyprint?
  1. GeoPoint geoPoint = new GeoPoint((int) ( 22.560034 * 1E6),  
  2.       (int) (113.940657 * 1E6));//先是纬度、然后经度  
  3. GeoPoint p2 = CoordinateConvert.bundleDecode(CoordinateConvert.fromWgs84ToBaidu(geoPoint));  

intgetLatitudeE6()
返回GeoPoint的纬度,单位微度
intgetLongitudeE6()
返回GeoPoint对象的经度,单位微度
voidsetLatitudeE6(int latitudeE6)
voidsetLongitudeE6(int longitudeE6)
我们得到的坐标,要通过*1E6才能变成微度
也就是说 返回的int 要/1E6 才能变成double的正式坐标

平面坐标
就是我们用的Point类。用x,y坐标系来反应经纬坐标的投影点。一个单位就是一个像素
这里的Point(lng:Number, lat:Number) 是经度+纬度,GeoPoint(int latitudeE6, int longitudeE6)是纬度在前的哦


[java] view plaincopyprint?
  1. GeoPoint geoPoint = new GeoPoint((int) ( 22.560034 * 1E6),  
  2.    (int) (113.940657 * 1E6));  
  3.      Point point = mapView.getProjection().toPixels(geoPoint, null);  
使用Projection的方法进行转换的

可视区域坐标
说白了,就是显示容器以左上角为原点显示的位置
原文地址:点击打开链接
原创粉丝点击