arcgis中gcj02或bd09arcgis投影坐标系转换的地图怎么用呀

public class Gps { private double wgL private double wgL public Gps(double wgLat, double wgLon) {
setWgLat(wgLat);
setWgLon(wgLon); } public double getWgLat() {
return wgL } public void setWgLat(double wgLat) {
this.wgLat = wgL } public double getWgLon() {
return wgL } public void setWgLon(double wgLon) {
this.wgLon = wgL } @Override public String toString() {
return wgLat + "," + wgL }}&&& 1&/**&&2&&*&各地图API坐标系统比较与转换;&&3&&*&WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,&&4&&*&谷歌地图采用的是WGS84地理坐标系(中国范围除外);&&5&&*&GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。&&6&&*&谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系;&BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系;&&7&&*&搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的。&chenhua&&8&&*/&&9&public&class&PositionUtil&{&10&&&&&&11&&&&&public&static&final&String&BAIDU_LBS_TYPE&=&"bd09ll";&12&&&&&&13&&&&&public&static&double&pi&=&3.;&14&&&&&public&static&double&a&=&;&15&&&&&public&static&double&ee&=&0.;&16&&17&&&&&/**&18&&&&&&*&84&to&火星坐标系&(GCJ-02)&World&Geodetic&System&==&&Mars&Geodetic&System&19&&&&&&*&&20&&&&&&*&@param&lat&21&&&&&&*&@param&lon&22&&&&&&*&@return&23&&&&&&*/&24&&&&&public&static&Gps&gps84_To_Gcj02(double&lat,&double&lon)&{&25&&&&&&&&&if&(outOfChina(lat,&lon))&{&26&&&&&&&&&&&&&return&null;&27&&&&&&&&&}&28&&&&&&&&&double&dLat&=&transformLat(lon&-&105.0,&lat&-&35.0);&29&&&&&&&&&double&dLon&=&transformLon(lon&-&105.0,&lat&-&35.0);&30&&&&&&&&&double&radLat&=&lat&/&180.0&*&&31&&&&&&&&&double&magic&=&Math.sin(radLat);&32&&&&&&&&&magic&=&1&-&ee&*&magic&*&&33&&&&&&&&&double&sqrtMagic&=&Math.sqrt(magic);&34&&&&&&&&&dLat&=&(dLat&*&180.0)&/&((a&*&(1&-&ee))&/&(magic&*&sqrtMagic)&*&pi);&35&&&&&&&&&dLon&=&(dLon&*&180.0)&/&(a&/&sqrtMagic&*&Math.cos(radLat)&*&pi);&36&&&&&&&&&double&mgLat&=&lat&+&dL&37&&&&&&&&&double&mgLon&=&lon&+&dL&38&&&&&&&&&return&new&Gps(mgLat,&mgLon);&39&&&&&}&40&&41&&&&&/**&42&&&&&&*&*&火星坐标系&(GCJ-02)&to&84&*&*&@param&lon&*&@param&lat&*&@return&43&&&&&&*&*/&44&&&&&public&static&Gps&gcj_To_Gps84(double&lat,&double&lon)&{&45&&&&&&&&&Gps&gps&=&transform(lat,&lon);&46&&&&&&&&&double&lontitude&=&lon&*&2&-&gps.getWgLon();&47&&&&&&&&&double&latitude&=&lat&*&2&-&gps.getWgLat();&48&&&&&&&&&return&new&Gps(latitude,&lontitude);&49&&&&&}&50&&51&&&&&/**&52&&&&&&*&火星坐标系&(GCJ-02)&与百度坐标系&(BD-09)&的转换算法&将&GCJ-02&坐标转换成&BD-09&坐标&53&&&&&&*&&54&&&&&&*&@param&gg_lat&55&&&&&&*&@param&gg_lon&56&&&&&&*/&57&&&&&public&static&Gps&gcj02_To_Bd09(double&gg_lat,&double&gg_lon)&{&58&&&&&&&&&double&x&=&gg_lon,&y&=&gg_&59&&&&&&&&&double&z&=&Math.sqrt(x&*&x&+&y&*&y)&+&0.00002&*&Math.sin(y&*&pi);&60&&&&&&&&&double&theta&=&Math.atan2(y,&x)&+&0.000003&*&Math.cos(x&*&pi);&61&&&&&&&&&double&bd_lon&=&z&*&Math.cos(theta)&+&0.0065;&62&&&&&&&&&double&bd_lat&=&z&*&Math.sin(theta)&+&0.006;&63&&&&&&&&&return&new&Gps(bd_lat,&bd_lon);&64&&&&&}&65&&66&&&&&/**&67&&&&&&*&*&火星坐标系&(GCJ-02)&与百度坐标系&(BD-09)&的转换算法&*&*&将&BD-09&坐标转换成GCJ-02&坐标&*&*&@param&68&&&&&&*&bd_lat&*&@param&bd_lon&*&@return&69&&&&&&*/&70&&&&&public&static&Gps&bd09_To_Gcj02(double&bd_lat,&double&bd_lon)&{&71&&&&&&&&&double&x&=&bd_lon&-&0.0065,&y&=&bd_lat&-&0.006;&72&&&&&&&&&double&z&=&Math.sqrt(x&*&x&+&y&*&y)&-&0.00002&*&Math.sin(y&*&pi);&73&&&&&&&&&double&theta&=&Math.atan2(y,&x)&-&0.000003&*&Math.cos(x&*&pi);&74&&&&&&&&&double&gg_lon&=&z&*&Math.cos(theta);&75&&&&&&&&&double&gg_lat&=&z&*&Math.sin(theta);&76&&&&&&&&&return&new&Gps(gg_lat,&gg_lon);&77&&&&&}&78&&79&&&&&/**&80&&&&&&*&(BD-09)--&84&81&&&&&&*&@param&bd_lat&82&&&&&&*&@param&bd_lon&83&&&&&&*&@return&84&&&&&&*/&85&&&&&public&static&Gps&bd09_To_Gps84(double&bd_lat,&double&bd_lon)&{&86&&87&&&&&&&&&Gps&gcj02&=&PositionUtil.bd09_To_Gcj02(bd_lat,&bd_lon);&88&&&&&&&&&Gps&map84&=&PositionUtil.gcj_To_Gps84(gcj02.getWgLat(),&89&&&&&&&&&&&&&&&&&gcj02.getWgLon());&90&&&&&&&&&return&map84;&91&&92&&&&&}&93&&94&&&&&public&static&boolean&outOfChina(double&lat,&double&lon)&{&95&&&&&&&&&if&(lon&&&72.004&||&lon&&&137.8347)&96&&&&&&&&&&&&&return&true;&97&&&&&&&&&if&(lat&&&0.8293&||&lat&&&55.8271)&98&&&&&&&&&&&&&return&true;&99&&&&&&&&&return&false;100&&&&&}101&102&&&&&public&static&Gps&transform(double&lat,&double&lon)&{103&&&&&&&&&if&(outOfChina(lat,&lon))&{104&&&&&&&&&&&&&return&new&Gps(lat,&lon);105&&&&&&&&&}106&&&&&&&&&double&dLat&=&transformLat(lon&-&105.0,&lat&-&35.0);107&&&&&&&&&double&dLon&=&transformLon(lon&-&105.0,&lat&-&35.0);108&&&&&&&&&double&radLat&=&lat&/&180.0&*&109&&&&&&&&&double&magic&=&Math.sin(radLat);110&&&&&&&&&magic&=&1&-&ee&*&magic&*&111&&&&&&&&&double&sqrtMagic&=&Math.sqrt(magic);112&&&&&&&&&dLat&=&(dLat&*&180.0)&/&((a&*&(1&-&ee))&/&(magic&*&sqrtMagic)&*&pi);113&&&&&&&&&dLon&=&(dLon&*&180.0)&/&(a&/&sqrtMagic&*&Math.cos(radLat)&*&pi);114&&&&&&&&&double&mgLat&=&lat&+&dL115&&&&&&&&&double&mgLon&=&lon&+&dL116&&&&&&&&&return&new&Gps(mgLat,&mgLon);117&&&&&}118&119&&&&&public&static&double&transformLat(double&x,&double&y)&{120&&&&&&&&&double&ret&=&-100.0&+&2.0&*&x&+&3.0&*&y&+&0.2&*&y&*&y&+&0.1&*&x&*&y121&&&&&&&&&&&&&&&&&+&0.2&*&Math.sqrt(Math.abs(x));122&&&&&&&&&ret&+=&(20.0&*&Math.sin(6.0&*&x&*&pi)&+&20.0&*&Math.sin(2.0&*&x&*&pi))&*&2.0&/&3.0;123&&&&&&&&&ret&+=&(20.0&*&Math.sin(y&*&pi)&+&40.0&*&Math.sin(y&/&3.0&*&pi))&*&2.0&/&3.0;124&&&&&&&&&ret&+=&(160.0&*&Math.sin(y&/&12.0&*&pi)&+&320&*&Math.sin(y&*&pi&/&30.0))&*&2.0&/&3.0;125&&&&&&&&&return&126&&&&&}127&128&&&&&public&static&double&transformLon(double&x,&double&y)&{129&&&&&&&&&double&ret&=&300.0&+&x&+&2.0&*&y&+&0.1&*&x&*&x&+&0.1&*&x&*&y&+&0.1130&&&&&&&&&&&&&&&&&*&Math.sqrt(Math.abs(x));131&&&&&&&&&ret&+=&(20.0&*&Math.sin(6.0&*&x&*&pi)&+&20.0&*&Math.sin(2.0&*&x&*&pi))&*&2.0&/&3.0;132&&&&&&&&&ret&+=&(20.0&*&Math.sin(x&*&pi)&+&40.0&*&Math.sin(x&/&3.0&*&pi))&*&2.0&/&3.0;133&&&&&&&&&ret&+=&(150.0&*&Math.sin(x&/&12.0&*&pi)&+&300.0&*&Math.sin(x&/&30.0134&&&&&&&&&&&&&&&&&*&pi))&*&2.0&/&3.0;135&&&&&&&&&return&136&&&&&}137&138&&&&&public&static&void&main(String[]&args)&{139&140&&&&&&&&&//&北斗芯片获取的经纬度为WGS84地理坐标&31..496145141&&&&&&&&&Gps&gps&=&new&Gps(31.426896,&119.496145);142&&&&&&&&&System.out.println("gps&:"&+&gps);143&&&&&&&&&Gps&gcj&=&gps84_To_Gcj02(gps.getWgLat(),&gps.getWgLon());144&&&&&&&&&System.out.println("gcj&:"&+&gcj);145&&&&&&&&&Gps&star&=&gcj_To_Gps84(gcj.getWgLat(),&gcj.getWgLon());146&&&&&&&&&System.out.println("star:"&+&star);147&&&&&&&&&Gps&bd&=&gcj02_To_Bd09(gcj.getWgLat(),&gcj.getWgLon());148&&&&&&&&&System.out.println("bd&&:"&+&bd);149&&&&&&&&&Gps&gcj2&=&bd09_To_Gcj02(bd.getWgLat(),&bd.getWgLon());150&&&&&&&&&System.out.println("gcj&:"&+&gcj2);151&&&&&}152&}&&
阅读(...) 评论()ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)
文章来源:
对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是以经纬度为单位的都是地理坐标系,因为它归根结底是一个椭球体,只不过各个国家为了反映该国家所在区域地球的真实形状,而采用不同的数学模型对本不是椭球体的地球进行椭球体化。而投影坐标系,是对地理坐标系按照某种方式投影到平面上的,所以可以认为它是一个平面坐标系,单位自然是米或千米。
我们在做开发的时候,尤其是web地图开发,两种坐标系至关重要4326&GCS_WGS_1984 和
102100WGS_1984_web_mercator_auxiliary_sphere
&&&&&&&&&&
&1)、4326&GCS_WGS_1984&是WGS1984,属于地理坐标系,相信大家对它都有所耳闻,他就是大名鼎鼎的gps采用的坐标系,也就是通过gps拿到的坐标信息都是按这个坐标系给我们的经度和纬度。当然,如果你是做移动平台上的gps,获得的经纬度也是按这个坐标系。
&&&&&&&&&&
2)、102100&WGS_1984_web_mercator_auxiliary_sphere则是目前在线地图采用的通用坐标系,属于投影坐标系。
如果我们采用googlemap做底图,然后想通过gps将位置在地图上显示,不经过任何转换直接在googlemap上显示是不行的,因为他们的坐标系不统一。所以在显示之前就必须将gps获取点进行坐标转换到WGS_1984_web_mercator,然后在googlemap上显示。
在我们的实际应用中,经常用到SpatialReference空间参考系,我们大都用的是WKID=4326的D_WGS_1984的地理坐标,而由于需要,向之前的一篇博文中介绍的,叠加Google
Map地图的话,就涉及到将我们现有的地图从WKID=4326的地理坐标系转换成WKID=102100的投影坐标系,怎么转换?
ArcMap中的工具箱中有这样的工具,以下截图详细说明:
1、打开已有的地图,并打开工具箱
2、按照箭头指向,依次展开节点后,选择“Project”工具,如下:
3、在打开的Project窗口中,选择输出的空间坐标系统,然后,点击“Select”,如下图:
4、选择“Projected Coordinate System”,如下图:
5、选择“World”,点击“Add”,如下图:
6、找到WGS&1984 Web Mercator.prj,点击“Add”,如下图:
7、在下拉框中,选择仅有的一项,然后点击“OK”,至此已经完成(这里请注意:请记住Output Dataset or Feature
Class中的位置,那是转换后的输出shp位置)
8、关闭ArcMap,重新打开ArcMap,并Add
Data上一步中转换后的那个图层shp文件,此时的图层已经是墨卡托坐标系了。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。GCJ-02坐标系统(火星坐标)简介:(存档:)
GCJ-02到真实坐标反向变换的理论基础:
WGS84坐标与Web墨卡托坐标互转:关于流传的 WGS-84 至 GCJ-02 转换算法:地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法:
C#代码:(注解:)Java代码:iOS代码:(存档:)
火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法:(解释:国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。)
一种根据纠偏数据对火星坐标进行完美拟合的方法:
国内各地图API坐标系统比较:
关于百度地图坐标转换接口的研究:
本文已收录于以下专栏:
相关文章推荐
一个提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换的工具模块。
python版本:/wandergis/coordT...
[转载]关于火星坐标系统  
23:11:57|  分类: 默认分类 |字号 订阅
偶然得知中国有一种火星坐标系统。其原理是这样的:保密局开发了一个系统,能将实际的坐...
国家测绘局日正式发布中国公众版国家地理信息公共服务平台“天地图”,作为中国境内数据资源最全的地理信息服务网站,“天地图”将为公众提供权威、可信、统一的地理信息资源。
最近公司的项目到了尾声。总结一下项目中的一些技术。其中有涉及到天地图的部分。 类似百度地图,google地图。 我们要用一些它的公共接口,实现一些我们的效果。  比如在地图上显示我们的设备的位置,范围...
需求:将百度坐标转换成WGS84坐标
首先介绍一下国内诸多繁杂的坐标系,众所周知,美国GPS使用的是WGS84坐标,但是在中国,国家出于安全的考虑,在地图发布和出版的时候,...
本博文为百度坐标 转 WGS84坐标 并保存到SHP图层中的实现源码,用到了坐标转换算法与ArcToolbox中的&创建XY事件图层&工具。
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)百度、谷歌高德等网络地图经纬度偏差纠正以及相关坐标系问题
根据经验得到的:
(1)百度地图的差别是(0.01185,-0.00328)
如果百度地图的经纬度是(x,y)实际的应该是(x,y)+(-0.01185,-0.00328)=(x-0.01185,y-0.00328)
(2)google Map的差别是(0.0143,-0.014)
如果用getscreen截图,如果要截的范围为(x,y),输入getscreen的为(x-0.0143,y+0.014).
后来经过自己验证,的却差不多。
下面讲一下网络发布的地图的偏差问题:
参见微信上高德LBS应用开发,原创的一篇帖子:
摘要:各种坐标体系之间如何转换?到底有哪些坐标体系?什么是火星坐标?为什么我的坐标在地图上显示会有偏移?本文详细解答以上问题。最后给出坐标拾取工具。
一、坐标体系
首先我们要明白,开发者能接触到哪些坐标体系呢?
第一种分类:
GPS,WGS-84,原始坐标体系。一般用国际标准的GPS记录仪记录下来的坐标,都是GPS的坐标。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密。GPS坐标形式如图,度分秒形式的经纬度:
GCJ-02,国测局02年发布的坐标体系。又称“火星坐标”。在中国,必须至少使用GCJ-02的坐标体系。比如谷歌,腾讯,高德都在用这个坐标体系。GCJ-02也是国内最广泛使用的坐标体系。
3、其他坐标体系。一般都是由GCJ-02进过偏移算法得到的。这种体系就根据每个公司的不同,坐标体系都不一样了。比如,百度和搜狗就使用自己的坐标体系,与其他坐标体系不兼容。
第二种分类:
首先明白,所有坐标体系的原点,都是非洲。
1、经纬度。这个是球面坐标,对于北京来说,就是(116.961)这样的坐标。比如腾讯、高德、百度都是这样的经纬度坐标。谷歌是经纬度顺序写反的经纬度坐标。
如果是度分秒坐标,需要进行转换,才能得到这样的经纬度坐标。详见坐标转换。
2、墨卡托坐标。平面坐标,相当于是直线距离,数字一般都比较大,像这样的。(
墨卡托坐标,主要用于程序的后台计算。直线距离嘛,加加减减几乎计算方便。
搜狗地图API就是直接使用的墨卡托坐标。
二、坐标转换
在各种web端平台,或者高德、腾讯、百度上取到的坐标,都不是GPS坐标,都是GCJ-02坐标,或者自己的偏移坐标系。
比如,你在谷歌地图API,高德地图API,腾讯地图API上取到的,都是GCJ-02坐标,他们三家都是通用的,也适用于大部分地图API产品,以及他们的地图产品。
例外,百度API上取到的,是BD-09坐标,只适用于百度地图相关产品。
例外,搜狗API上取到的,是搜狗坐标,只适用于搜狗地图相关产品。
例外,谷歌地球,google
earth上取到的,是GPS坐标,而且是度分秒形式的经纬度坐标。在国内不允许使用。必须转换为GCJ-02坐标。
1、度分秒坐标转换为经纬度
比如,在GPS记录仪,或者google
earth上采集到的是39°31'20.51,那么应该这样换算,31分就是31/60度,20.51秒就是20.51/3600度,结果就是39
+ 31/60 + 20.51/3600 度。
GPS转换为GCJ-02坐标
谷歌,高德,腾讯的地图API官网上,都不直接提供这样的坐标转换。如果要得到GCJ-02坐标,最好在他们的地图上直接取点,或者通过地址解析得到。(这个工具我后续会贴出来的。我就爱干这样的事情,哈哈。)
不过,在网上搜到了这样的接口,该接口的type=1就是GPS转到GCJ-02的墨卡托坐标。请大家对接口保密,哈哈。详见:
/api/documentation/javascript/api2.5/interface_translate.html#late_intro
3、GCJ-02与BD-09之间互转
国测局GCJ-02坐标体系(谷歌、高德、腾讯),与百度坐标BD-09体系的转换,在CSDN上有很详细的讲解:
转换算法如下:
不过也有更简单的算法,线性算法(lat和lng是经纬度,球面坐标):
To_B是转到百度,To_G是转到GCJ-02。
var TO_BLNG =
function(lng){return lng+0.0065;};
var TO_BLAT =
function(lat){return lat+0.0060;};
var TO_GLNG =
function(lng){return lng-0.0065;};
var TO_GLAT =
function(lat){return lat-0.0060;};
4、经纬纬度转成墨卡托
网上也有详细讲解:
内容如下:
在WebGIS的开发中经常用到的地图投影为Web墨卡托和WGS84,故歌地图,bingmaps,百度地图,mapabc,mapbar,以及ArcGIS
online上的大部分地图为Web墨卡托地图,ArcGIS online上最开始发布的地图投影为WGS84。
在开发过程中很多时候会遇到不同坐标系之间互转的问题,特别是底图使用Web墨卡托,定位(GPS,wifi等)信号坐标为WGS84坐标的时候,那么通用解决方案就是写一个坐标参考系的转换库,类似于proj4,但一般情况下很少用到那么多的参考系之间的互转,并且在客户端实现或者调用proj4都是一件很困难或者麻烦的事情,大多数情况下我们实现Web墨卡托坐标与WGS84坐标互转就可以了。
下面是使用objective-c实现的Web墨卡托坐标与WGS84坐标互转程序,当然也可以使用其他语言来实现,使用起来比较简单和方便。
//经纬度转墨卡托
-(CGPoint )lonLat2Mercator:(CGPoint ) lonLat
&&& double x =
lonLat.x */180;
&&& double y =
log(tan((90+lonLat.y)*M_PI/360))/(M_PI/180);
&&& mercator.x =
&&& mercator.y =
&&& return
//墨卡托转经纬度
-(CGPoint )Mercator2lonLat:(CGPoint ) mercator
&&& CGPoint
&&& double x =
mercator.x/*180;
&&& double y =
mercator.y/*180;
180/M_PI*(2*atan(exp(y*M_PI/180))-M_PI/2);
&&& lonLat.x =
&&& lonLat.y =
&&& return
三、坐标偏移
如果您的坐标在转换之后,还有偏移,那么考虑以下几个方面。
A、原始坐标系弄错,比如以为自己是GPS坐标,但其实已经是GCJ-02坐标。
解决方案:请确保采集到的数据是哪个坐标体系,需要转换到哪个坐标系,再进行坐标转换。
B、原始坐标准确度不够
解决方案:如果您是GPS坐标,请确保采集GPS数据时,搜到至少4颗以上的卫星。并且GPS数据准不准,还取决于周围建筑物的高度,越高越不准,因为有遮挡。
如果本来就是GCJ-02坐标,在不同地图放大级别的时候,看到的地方可能不一样。比如你在地图级别4(国家)取到的坐标,放大到地图12级(街道)时,坐标就偏了。请确保在地图最大放大级别时,拾取坐标。
C、度分秒的概念混淆
比如,在google
earth上采集到的是39°31'20.51,那么应该这样换算,31分就是31/60度,20.51秒就是20.51/3600度,结果就是39
+ 31/60 + 20.51/3600 度。
D、经纬度顺序写反了
有些公司(比如高德,百度,腾讯)是先经度,再纬度,即Point(lng lat)。但谷歌坐标的顺序恰好相反,是(lat
四、坐标拾取工具
既然在国内必须至少使用GCJ-02的坐标系,而GCJ-02,“火星坐标”是在国内最广泛使用的坐标体系。那么,我们就来看看,如何直接获取到GCJ-02坐标呗。
请大家把这段代码保存到记事本里,然后后缀名改为.html,记得用UTF-8编码来保存。然后双击这个文件,就能打开网页了。
火星坐标:&
1、鼠标滚轮可以缩放地图,拖动地图。
2、点击地图,即可获得GCJ-02的经纬度坐标,地址。
打开之后,是这样的:
点击一下地图,即可获得GCJ-02坐标,地址:
demo地址:/amap/picpoint.html
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。算法代码如下,其中 bd_encrypt 将 GCJ-02 坐标转换成 BD-09 坐标, bd_decrypt 反之。
#include &math.h&
const double x_pi = 3.79324 * 3000.0 / 180.0;
void bd_encrypt(double gg_lat, double gg_lon, double &bd_lat, double &bd_lon)
&&& double x = gg_lon, y = gg_
&&& double z = sqrt(x * x + y * y) + 0.00002 * sin(y * x_pi);
&&& double theta = atan2(y, x) + 0.000003 * cos(x * x_pi);
&&& bd_lon = z * cos(theta) + 0.0065;
&&& bd_lat = z * sin(theta) + 0.006;
void bd_decrypt(double bd_lat, double bd_lon, double &gg_lat, double &gg_lon)
&&& double x = bd_lon - 0.0065, y = bd_lat - 0.006;
&&& double z = sqrt(x * x + y * y) - 0.00002 * sin(y * x_pi);
&&& double theta = atan2(y, x) - 0.000003 * cos(x * x_pi);
&&& gg_lon = z * cos(theta);
&&& gg_lat = z * sin(theta);
本文已收录于以下专栏:
相关文章推荐
火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法
WGS84、GCJ02、BD09各坐标系之间的转换算法坐标解释
WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,谷歌地图采用的...
本文主要介绍三个内容:
1、windows下python3.5安装setuptools
2、百度坐标系(bd-09)、火星坐标系(国测局坐标系、gcj02)、WGS84坐标系之间的坐标互转pyth...
项目中用到了 北斗车辆导航,app用的高德插件,因为高德(GCj02坐标系)与北斗(WGS84 坐标系)采用的坐标系不同,就在网上找了转换方法,用PHP写了一遍
代码里面还有百度的 BD-09 坐标,...
各地图坐标系转换;
WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,谷歌地图采用的是WGS84地理坐标系(中国范围除外); ...
// Copyright (C) 1000 - 9999 Somebody Anonymous
// NO WARRANTY OR GUARANTEE
WGS-84 到 GCJ-02 的转换(即 GPS 加偏)算法是一个普通青年轻易无法接触到的“公开”的秘密。这个算法的代码在互联网上是公开的,详情请使用 Google 搜索 &wgtoch...
WGS-84 到 GCJ-02 的转换(即 GPS 加偏)算法是一个普通青年轻易无法接触到的“公开”的秘密。这个算法的代码在互联网上是公开的,详情请使用
Google 搜索 &wg...
GCJ-02火星坐标系
1  目标:将准确的坐标信息加入随机误差,从而隐藏真实坐标。
参考:/2013...
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 gcj02坐标系地图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信