地图坐标算法
A. 地图学的坐标量算怎么做
地图量算的具体内容有:1. 测量点位的地理坐标、平面直角坐标和高程;2. 量算线状要素的长度、方向、曲率、挠率等;3. 量算地表面积、坡度、坡向等地形参数。
建议你可以去咨询一下你的老师,这个算法到底是怎么算的呢?老师会给你讲一下详细的解答过程
B. 地理坐标的计算方法
子午面与地球椭球面的交线,称为子午线或经线。所有通过地轴的平面,都和地球表面相交而成为(椭)圆,这就是经线圈。一条经线是一个半(椭)圆弧。所有垂直于地轴的平面与地球椭球面的交线,称为纬线。纬线是半径不同的圆,其中半径最大的纬线称为赤道。在地球仪上,通过伦敦格林威治天文台原址的那条经线称为0度经线,也叫本初子午线。在地球仪上,同赤道平行的线叫纬线,纬线指示东西方向,所有纬线长度不相等,纬线标注的度数就是纬度;赤道纬度为零,赤道以北为北纬,以南为南纬。在地球仪上,经纬线相互交织构成经纬网,用经度、纬度表示地面上点的位置叫地理坐标。例如:我国首都北京位于北纬40度和东经116度的交点附近,昆明位于北纬25度和东经103度的交点附近。纬度是地理坐标中的横坐标,经度是纵坐标。
由地球椭球体上任一点M,引一垂直于点M地平线的直线,其与赤道面相交所构成的夹角称地理纬度。以赤道为0°,向北、南两极各以90°计算,向北称北纬,向南称南纬。M点经线面与起始经线面间的夹角称为地理经度。以起始经线为0°,国际上统一规定以通过英国伦敦格林威治天文台的经线为起始经线,向东、西各以180°计算,向东称东经,向西称西经。地球上或地图上的点位表示为M(,λ)。在地图上以内图廓和经纬线网(或分度带)形式表示。在>1∶10万地形图上,地理坐标网以图廓形式表现,图廓四角注记经纬度数值,内外图廓间绘有分度带。在小比例尺地图上和<1∶2O万地形图上,一般都直接绘有地理坐标网,并注有相应的经纬度数值。以此确定地区或地面点的地理位置。
C. 在百度地图api,经纬度怎么转换成百度坐标
坐标转换服务
坐标转换接口说明
将其他坐标系转换到网络坐标系。接口样例如下:
http://api.map..com/ag/coord/con...
参数说明:
x/y:经纬度坐标
from/to:决定转换效果,具体参数天填充如下:
坐标系 参数
WGS-84坐标系(GPS) from=0,to=4
GCJ-02坐标系(谷歌、soso、搜狗) from=2,to=4
51地图坐标系 (需要先将51地图坐标除10000)from=2,to=4
mapbar坐标系 需要先调用后面的转换算法,得到WGS84坐标,再使用:from=0,to=4
返回结果:
json数组,error表明错误号,x、y是经过base64加密的字符串,需要自反解
附:mapbar坐标转换算法,输入为mapbar坐标,输出为gps坐标(js代码描述)
function mapBar2WGS84(x,y){
x = parseFloat(x)*100000%36000000;
y = parseFloat(y)*100000%36000000;
x1 = parseInt(-(((Math.cos(y/100000))*(x/18000))+((Math.sin(x/100000))*(y/9000)))+x);
y1 = parseInt(-(((Math.sin(y/100000))*(x/18000))+((Math.cos(x/100000))*(y/9000)))+y);
x2 = parseInt(-(((Math.cos(y1/100000))*(x1/18000))+((Math.sin(x1/100000))*(y1/9000)))+x+((x>0)?1:-1));
y2 = parseInt(-(((Math.sin(y1/100000))*(x1/18000))+((Math.cos(x1/100000))*(y1/9000)))+y+((y>0)?1:-1));
return [x2/100000.0,y2/100000.0];
}
限制 每秒访问少于50次
示例
利用JSONP的方式,进行跨域访问。示例链接:
http://dev..com/wiki/static/map/...
批量坐标转换接口(高级)
接口参数说明:
1.单组坐标转换与以前请求的url格式不变
2.批量坐标转换请求url多加一个参数‘mode’,当mode=1时请求批量坐标转换接口,当mode为其他值时请求单组坐标转换接口。
参数中每组x坐标间以逗号分隔,每组y坐标间以逗号分隔。如:
http://api.map..com/ag/coord/con...
3.批量坐标转换坐标组数上限为20个,超过20个则只返回20个结果
返回结果说明:
1.数据以json格式返回
2.单组坐标转换返回格式与之前相同
3.批量坐标转换返回格式:
[{"error":0,"x":"NDAuMDA2NjY4MzUzNTg3","y":"MTE2LjAwNTkyMzYyNTU1"},{"error":0,"x":"NTAuMDA2Njc1NDk5OTY3","y":"MTE3LjAwNTkyNDk5OTg1"}]
批量转换限制
每秒访问少于50次,一次20个。
批量示例
利用JSONP的方式,进行跨域访问。示例链接:
http://dev..com/wiki/static/map/...
D. GIS中坐标系与偏移算法总结
一 大地坐标系
1.1 概念
大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系。
大地坐标系根据其原点的位置不同,分为地心坐标系和参心坐标系。地心坐标系的原点与地球质心重合,参心坐标系的原点与某一地区或国家所采用的参考椭球中心重合,通常与地球质心不重合。
1.2 常用的参心坐标系与地心坐标系
北京54 参心坐标系(参心坐标系)
西安80 参心坐标系(参心坐标系)
cgcs2000 地心坐标系(地心坐标系)
wgs84 地心坐标系(地心坐标系)
我国先后建立的1954年北京坐标系、1980西安坐标系和新1954年北京坐标系,都是参心坐标系。这些坐标系为我国经济社会发展和国防建设作出了重要贡献。
但是,随着现代科技的发展,特别是全球卫星定位技术的发展和应用,世界上许多发达国家和中等发达国家都已在多年前就开始使用地心坐标系。
国务院批准自2008年7月1日启用我国的地心坐标系——2000国家大地坐标系(CGCS-2000),同时要求用8-10年的时间,完成现行国家大地坐标系向20000国家大地坐标系的过渡和转换。过渡期结束,将停止提供现行国家大地坐标系下的测绘成果。
参考:
2018年7月1日起全面使用2000国家大地坐标系,西安80和北京54坐标系正式退出历史舞台
wgs84是为GPS全球定位系统使用而建立的坐标系统;gps设备采集的数据均为wgs84坐标系。
1.3 不同坐标系之间的转换
arcgis 软件中计算完成,参考:[arcgis坐标转换与投影]( https://www.jianshu.com/p/5c437696be06 )
二 坐标投影
2.1 投影后的坐标形式
原始经纬度:120.0397529296875,30.229220825195313
墨卡托投影后:13362764.171082955,3533048.2025558753
参考: arcgis js api:web墨卡托(3857)转经纬度坐标(4326)
2.2 投影的目的
方便工程测量、二维图展示便于理解。
2.3 根据不同需求使用不同的投影算法
例如: 墨卡托投影后的二维图导致了地球两极被拉宽,不适用于工程测量,但适合用作普通二维图的展示。而大比例尺的工程测量图对局部区域内精度要求高,而采用高斯克里格投影。
三 gcj02偏移算法(国家测绘局,被戏称为火星坐标)
注意 这是偏移算法,而不是单独的一个坐标系。习惯上人们将加了偏移算法的坐标称为gcj02坐标。经偏移算法处理的地图数据偏差一般为 300~500 米。
3.1 在我们国家发布的互联网地图按法律规定需要经过偏移算法加偏移。
例如高德地图、腾讯地图。
3.2 网络地图在gcj02基础上进行了二次加偏移,称为bd09坐标
3.3 天地图是否加偏移?
天地图采用cgcs2000坐标。
发布在互联网上的天地图并不一定都是加偏移,未加偏移的地图做了特殊处理,很多涉密地理信息在地图上找不到。
3.4 使用了加偏移的地图如何进行gis开发
对叠加到地图上的数据同样加偏移,实现与底图吻合。
参考: WGS84坐标与不同加密算法之间转换
更多参考:
你必须知道的地理坐标系和投影坐标系
arcgis坐标转换与投影变换
E. 经纬度算法
经纬度的来历:为了精确地表明各地在地球上的位置,人们给地球表面假设了一个坐标系,这就是经纬度线。那么,最初的经纬度线是怎么产生?又是如何测定的呢?公元344年,亚历山大渡海南侵,继而东征,随军地理学家尼尔库斯沿途搜索资料,准备绘一幅“世界地图”。他发现沿着亚历山大东征的路线,由西向东,无论季节变换与日照长短都很相仿。于是做出了一个重要贡献——第一次在地球上划出了一条纬线,这条线从直布罗陀海峡起,沿着托鲁斯和喜马拉雅山脉一直到太平洋。
亚历山大帝国昙花一现,不久就瓦解了。但以亚历山大为名的那座埃及城里,出现了一个着名图书馆,多年担任馆长的埃拉托斯特尼博学多才,精通数学、天文、地理。他计算出地球的圆周是46250千米,画了一张有7条经线和6条纬线的世界地图。
公元120年,一位青年也在这座古老的图书馆里研究天文学、地理学。他就是克罗狄斯·托勒密。托勒密综合前人的研究成果,认为绘制地图应根据已知经纬度的定点做根据,提出地图上绘制经纬度线网的概念。为此,托勒密测量了地中海一带重要城市和据点的经纬度,编写了8卷地理学着作。其中包括8000个地方的经纬度。为使地球上的经纬线能在平面上描绘出来,他设法把经纬线绘成简单的扇形,从而绘制出一幅着名的“托勒密地图”。15世纪初,航海家亨利开始把“托勒密地图”付诸实践。但是,经过反复考察,却发现这幅地图并不实用。亨利手下的一些船长遗憾地说:“尽管我们对有名的托勒密十分敬仰,但我们发现事实都与他说的相反。”
正确地测定经纬度,关键需要有“标准钟”。制造准确的钟表在海上计时,显然比依靠天体计时要方便,实用得多。18世纪机械工艺的进步,终于为解决这个长久的难题创造了条件。英国约克郡有位钟表匠哈里森,他用42年的时间,连续制造了5台计时器,一台比一台精确、完美,精确度也越来越高。第五台只有怀表那么大小,测定经度时引起的误差只有1/3英里。差不多同时,法国制钟匠皮埃尔·勒鲁瓦设计制造的一种海上计时器也投入了使用。至此,海上测定经度的问题,终于初步得到了解决。 经纬度计算方法经纬线的座标点可以确定地图上的任何位置,掌握经纬度和测定方法就能知道自己的所在地在地图上的相应位置。
经线是指穿过南北极的子午线,它们把地球的圆周分成360度。你可以用时间推算出所在地的经度。例如,当格林威治时间为零点时,你所在地的当地时间 正是8 点20分,两地之间时差为8小时20分。由此,你所在地的经度为15×8+20÷4=125即东经125度,即地图上的纵座标。在远程旅游时,只要旅游者 带着两块表,一块是格林威治的时间,另一块是当地时间,就能推算出所在地的经度。
纬度是与赤道平行的座标线,它把南北半球各分成90度,与经线垂直相交,1纬度约跨越110公里距离。测定纬度的方法很简单,在能见到北极星的夜晚,只要在所在位置用量角器测量一个水平线与北极星连线之间的夹角的度数就可以,这个度数就是纬度。
掌握经纬度的测定方法是一个旅游者最基本的技能。这种技能在荒野、戈壁、沙漠、海洋中是最重要的定位方法。