地图坐标体系 简介

GIS的坐标系统大致有三种:PlannarCoordinateSystem(平面坐标系统,或者Custom用户自定义坐标系统)、
GeographicCoordinateSystem(地理坐标系统)、
ProjectionCoordinateSystem(投影坐标系统)。


地球椭球体:地图坐标系由大地基准面和地图投影确定,
大地基准面是利用特定椭球体对特定地区地球表面的逼近,
因此每个国家或地区均有各自的大地基准面,
我们通常称谓的北京54坐标系、西安80坐标系实际上指的是我国的两个大地基准面。
其中WGS84、北京54、西安80之间,没有现成的公式来完成转换。
椭球体与大地基准面之间的关系是一对多的关系

1)海福特椭球(1910) 我国52年以前采用的椭球 
a=6378388m b=6356911.9461279m α=0.33670033670 
2)克拉索夫斯基椭球(1940 Krassovsky) 北京54坐标系采用的椭球 
a=6378245m b=6356863.018773m α=0.33523298692 
3)1975年I.U.G.G推荐椭球(国际大地测量协会1975) 西安80坐标系采用的椭球 
a=6378140m b=6356755.2881575m α=0.0033528131778 
4)WGS-84椭球(GPS全球定位系统椭球、17届国际大地测量协会) WGS-84坐标系椭球 
a=6378137m b=6356752.3142451m α=0.00335281006247 

两种不同的坐标系统,在经纬度和 UTM 坐标之间进行转换所使用的公式非常复杂。
4.1)经纬度系统
  GPS定位所得出的结果都属于WGS84坐标系统,WGS84基准面采用WGS84椭球体   
   google map 用的是wgs84坐标系;
    GPS卫星星历是以WGS-84大地坐标系为根据而建立的,
    所以手持式GPS使用的坐标系统是WGS-84坐标系统。
    目前,市面上出售的手持GPS所使用的坐标系统基本都是WGS-84坐标系统
   GPS有三种格式(longtitude,latitude) :DD.ddddd or DD MM SS or DD MM.mmm 
                                        1Degree=60minute,1minute=60 second  
  google手机地图: http://www.google.com/mobile/gmm/index.html
  GPS数据格式含义:http://blog.youkuaiyun.com/lijie_sh/archive/2008/11/22/3350775.aspx

 4.2 UTM 坐标系统
UTM 系统将地球分为 60 个区,每个区基于横轴墨卡托投影。
军事格网参考系 (MGRS)是以 UTM 为基础的。
      该系统用于美国和NATO的军用地图。由于UTM坐标系统的全球通用性,德国及欧洲都在使用该坐标系统。
UTM(Universal Transverse Mercator)系统通常基于WGS84椭球
  
其它:
5) 白塞尔(1841年)
6)克拉克(1886年)   


地图投影:实质就是将地球椭球面上的地理坐标转化为平面直角坐标
1)高斯-克吕格投影
2) UTM投影:,(Universal Transverse Mercator,通用横轴墨卡托投影)
 
参考:
1.http://www.ibm.com/developerworks/cn/java/j-coordconvert/

### 百度地图坐标API使用方法 百度地图提供了一套完整的API接口,支持开发者通过编程方式获取地理位置的经纬度信息以及完成各种坐标转换操作。以下是关于百度地图坐标API的具体使用说明: #### 1. 获取地理编码(Geocoding) 地理编码是指将地址转化为经纬度的过程。可以通过百度地图的Geocoding API实现这一功能。 请求URL格式如下: ```plaintext http://api.map.baidu.com/geocoder/v2/?address=YOUR_ADDRESS&output=json&ak=YOUR_API_KEY ``` 其中 `YOUR_ADDRESS` 是目标地址字符串,而 `YOUR_API_KEY` 则是在百度地图开放平台申请到的应用密钥[^1]。 返回的数据是一个JSON对象,包含了详细的地理位置信息,例如经度和纬度字段分别为 `lng` 和 `lat`。 示例代码: ```python import requests def get_location(address, ak): url = f"http://api.map.baidu.com/geocoder/v2/" params = { "address": address, "output": "json", "ak": ak } response = requests.get(url, params=params).json() if response['status'] == 0: location = response['result']['location'] return location['lng'], location['lat'] else: raise Exception(f"Error: {response['msg']}") # 示例调用 ak = 'your_api_key_here' print(get_location('北京市海淀区中关村', ak)) ``` #### 2. 地理逆编码(Reverse Geocoding) 逆地理编码则是指由经纬度反向查询具体地址的服务。其请求URL结构类似于正向地理编码,只是参数略有差异。 请求URL格式如下: ```plaintext http://api.map.baidu.com/geocoder/v2/?location=LATITUDE,LONGITUDE&output=json&ak=YOUR_API_KEY ``` 这里的 `LATITUDE` 表示纬度值,`LONGITUDE` 表示经度值。 #### 3. 坐标转换服务 由于不同的地图服务商可能采用各自的坐标体系,因此在跨平台应用时往往需要进行坐标转换。百度地图也提供了相应的在线工具和服务来解决这个问题。 请求URL样例: ```plaintext http://api.map.baidu.com/geoconv/v1/?coords=x,y;x,y;&from=source_coord_type&to=target_coord_type&ak=YOUR_API_KEY ``` 在这个例子中,“x,y”代表待转换单个点或者一系列点;`from` 参数指定原始坐标类型,比如 GPS (WGS84); `to` 定义最终期望得到的目标坐标形式,通常为 BD09ll[^4]。 注意:实际开发过程中需替换占位符为自己真实有效的数据。 #### 4. 关于百度地图坐标的几种定义 除了常规理解下的经纬度外,还有其他类型的坐标表示法适用于特定场景需求。例如平面直角坐标系可用于屏幕绘制计算等方面的工作;像素级单位则更多服务于图像渲染层面的任务等等[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值