GPS坐标区域判定1

文章链接:http://www.liuschen.com

相关知识因为总要用到,结果再看时却已经忘的差不多,所以这次温习,记下,备忘。

地球是一个两极稍扁,赤道略鼓的扁球体

坐标系区分

首先按坐标类型划分分为:

  • 地理坐标系(大地坐标系,球面坐标,地理坐标,4326 GCS_WGS_1984,火星坐标和百度坐标属于加偏过的地理坐标)
  • 投影坐标系(平面坐标,例:102100 WGS_1984_web_mercator_auxiliary_sphere,墨卡托投影坐标系)

    web_mercator是一个投影坐标系,其参考的基准面是WGS_1984( WGS 1984 是一个长半轴(a)为6378137,短半轴(b)为6356752.314245179 的椭球体,扁率(f)为298.257223563,f=(a-b)/a ),并不是严格意义上的墨卡托投影,
    Auxiliary Sphere 就是在告知你,这个坐标在投影过程中,将椭球体近似为正球体做投影变换,虽然基准面是WGS 1984 椭球面
    102100是Esri内部使用ID与之对应EPSG分配的坐标系ID为3857

其中地理坐标系也是一种球面坐标系,是用来定位一点在地球中的位置的。而投影坐标系则是通过点线面来计算长度测算距离面积的。

通过android手机获取的GPS坐标是经纬度坐标,一般小数位比较长,这是因为做分秒转化时没有除尽导致的,这也说明了Google取到的坐标是时分秒的形式,北京经度都是116。

时分秒坐标转经纬度坐标:

经/纬度 = 经/纬度 + 经/纬分/60 + 经/纬秒/3600

GCJ-02:火星坐标系,我国使用的,所有电子地图必须经过至少一次的加偏

谷歌地图API,高德地图API,腾讯地图API上取到的,都是GCJ-02坐标
百度API上取到的,是BD-09坐标,只适用于百度地图相关产品。
搜狗API上取到的,是搜狗坐标,只适用于搜狗地图相关产品。
谷歌地球,google earth上取到的,是GPS坐标,而且是度分秒形式的经纬度坐标,在国内不允许直接使用。
百度和goole投影选择的都是墨卡托,web_mercator(web墨卡托)是将地球模拟为球体,Spherical Mercator常规墨卡托将地球模拟为椭球体

坐标转换

坐标转换包括,GPS坐标转火星坐标(中国必须,偏移),GPS和web墨卡托互相转化(地图显示),算法,略。

地图概念区分

通常我们使用的定位坐标是GPS坐标,是一种地理坐标,即WGS_1984

应用到地图中的坐标为平面坐标,即墨卡托坐标系,与上面坐标系不同的是这种坐标系是一种平面坐标系,也就是单位是m或是km

我再用地图下载器下载的Google地图有未加偏和加偏的地图,这个加偏就是转火星坐标,也就是GCJ-02坐标,这种坐标的本质还是一种地理坐标系,所以还是用度分秒来表示

arcgis中进行图形判定时会有些转化设置,SpatialReference.create(4326), SpatialReference.create(102100),是将gps坐标转换为地图投影坐标再计算,注意,是由于是图形计算,才需要平面坐标系。

而我另一篇写的坐标区域判定并不是和arcgis一样纯图形的,是先通过gps来判断内外,然后通过各个点的距离来进行图形计算的,完美绕开了我误解的区域(我曾以为Google的偏移是由于gps转墨卡托坐标引起的)

参考:Web Mercator 公开的小秘密
参考:Calculate distance, bearing and more between Latitude/Longitude points

Loading Disqus comments...
Table of Contents