精华内容
下载资源
问答
  • 一、坐标分类 地图坐标大致分为几种:  1、GPS、WGS84,也就是原始坐标体系,这是国际公认的世界标准...二、坐标转换 1、使用高德地图sdk转换 public AMapLocation fromGpsToAmap(Location location) { AMapLoc
  • 支持GPS/Mapbar/Baidu等多种类型坐标高德地图上使用。参见类CoordinateConverter。 CoordinateConverter converter = new CoordinateConverter(); // CoordType.GPS 待转换坐标类型 converter.from(CoordType....

     

    1、其他坐标系转到高德坐标系

    支持GPS/Mapbar/Baidu等多种类型坐标在高德地图上使用。参见类CoordinateConverter。

    CoordinateConverter converter  = new CoordinateConverter(); 
    // CoordType.GPS 待转换坐标类型
    converter.from(CoordType.GPS); 
    // sourceLatLng待转换坐标点 LatLng类型
    converter.coord(sourceLatLng); 
    // 执行转换操作
    LatLng desLatLng = converter.convert();

    2、经纬度坐标与屏幕像素坐标互转

    支持经纬度坐标与屏幕像素坐标互转。具体用法为:

    用法列表

    名称

    说明

    AMap.getProjection().fromScreenLocation(android.graphics.Point paramPoint)

    根据转入的屏幕位置返回一个地图位置(经纬度)

    AMap.getProjection().toScreenLocation(LatLng paramLatLng)

    返回一个从地图位置转换来的屏幕位置

    AMap.getProjection().toOpenGLWidth(int screenWidth)

    返回一个屏幕宽度转换来的openGL 需要的宽度

    AMap.getProjection().toOpenGLLocation(LatLng paramLatLng)

    返回一个从经纬度坐标转换来的opengles 需要的坐标

    3、CoordType属性

    名称

    说明

    CoordType.ALIYUN

    阿里云

    CoordType.BAIDU

    百度

    CoordType.GOOGLE

    谷歌

    CoordType.MAPABC

    MapABC(图盟科技)

    CoordType.MAPBAR图吧地图
    CoordType.SOSOMAP搜搜地图

    4、举例:给marker添加新坐标值

     LatLng desLatLng = converter.convert();
                markerOption = new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.ic)))
                        .position(desLatLng)
                        .draggable(true);
                markerOption.title(bean.getFeatures().get(i).getProperties().getSb_id());
                aMap.addMarker(markerOption);
    展开全文
  • java版GPS坐标转换高德地图坐标

    热门讨论 2015-12-25 14:03:24
    此文件为纯java编写的GPS坐标转换高德地图坐标,直接将文件添加到工程目录,调用转换函数即可,输入是double类型,输出是double数组,注意:输入输出数据的单位都是度。
  • 高德地图坐标转换

    千次阅读 2016-03-01 10:58:21
    我们还提供,如何将基站cell_id转换为GPS坐标? ----------------------------------------------------------------------------------------- 第一部分 各种坐标系详解 1、大地坐标系统 WGS-84 用来表述地球上...

    m

    摘要:如何从GPS转到谷歌?如何从百度转到高德?这些都是小case。我们还提供,如何将基站cell_id转换为GPS坐标?

    -----------------------------------------------------------------------------------------

    第一部分 各种坐标系详解

    1、大地坐标系统 WGS-84

    用来表述地球上点的位置的一种地区坐标系统。它采用一个十分近似于地球自然形状的参考椭球作为描述和推算地面点位置和相互关系的基准面。一个大地坐标系统必须明确定义其三个坐标轴的方向和其中心的位置。通常人们用旋转椭球的短轴与某一规定的起始子午面分别平行干地球某时刻的平均自转轴和相应的真起始子午面来确定坐标轴的方向。若使参考椭球中心与地球平均质心重合,则定义和建立了地心大地坐标系。它是航天与远程武器和空间科学中各种定位测控测轨的依据。若椭球表面与一个或几个国家的局部大地水准面吻合最好,则建立了一个国家或区域的局部大地坐标系。大地坐标系中点的位置是以其大地坐标表示的,大地坐标均以椭球面的法线来定义。其中,过某点的椭球面法线与椭球赤道面的交角为大地纬度;包含该法线和大地子午面与起始大地子午面的二面角为该点的大地经度;沿法线至椭球面的距离为该点的大地高。大地纬度、大地经度和大地高分别用大写英文字母B、L、H表示。

    国内的互联网公司,都不会使用GPS坐标,因为这不符合国家政策。所以大家都会使用GCJ-02坐标系。

     

    2、火星坐标系统 GCJ-02

    国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照几行代码的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。

    目前使用火星坐标系的地图商:

    • 腾讯搜搜地图
    • 搜狐搜狗地图
    • 阿里云地图
    • 高德MapABC地图
    • 灵图51ditu地图

    所有的电子地图所有的导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送 到国家测绘局,将真实坐标的电子地图,加密成“火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有的GPS公司,只要需要汽车导航的,需要用到导航电子地图的,统统需要在软件中加入国家保密算法,将COM口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标,这样,GPS导航仪和导航电子地图就可以完全匹配,GPS也就可以正常工作。

    国内互联网公司,都必须使用GCJ-02坐标系。

     

     

    3、百度坐标系统 BD-09

    百度坐标对火星坐标系进行了一次加密,形成了百度坐标系.

    目前使用百度坐标系的地图商:

    • 百度Baidu地图

    少部分公司会在GCJ-02的基础上再进行一次加密,但这样的坐标不通用,只适于特定公司的地图。

     

    4、图吧

    图吧是百度坐标乘以10000的结果。

    目前使用图吧坐标系的地图商:

    • 图吧MapBar地图

    少部分公司会在GCJ-02的基础上再进行一次加密,但这样的坐标不通用,只适于特定公司的地图。

     

    5、移动联通基站

    移动基站采用小区制,覆盖范围几KM;而联通基站采用大区制,可以覆盖几十KM;辐射的频率大小和能量决定覆盖范围。从另一角度来看,从能量守恒的角度来分析:手机辐射大的其基站辐射小(GSM),反之手机辐射小的其基站辐射大(CDMA) 。

    联通联通基站格式 MNC MCC LAC CELLID

    MNC(Mobile Network Code,移动网络号码),用于识别移动客户所属的移动网络。

    MCC(Mobile Country Code,移动国家号码),用于唯一地标识移动客户属于的国家。它由三位十进制数组成(000-999),例如我国的MCC为460。

    LAC(Location Area Code, 移动位置区码),是为寻呼而设置的一个区域,覆盖一片地理区域,初期一般按行政区域划分(一个县或一个区),现在很灵活了,按寻呼量划分。当一个LAC下的寻呼量达到一个预警门限,就必须拆分。 为了确定移动台的位置,每个GSMPLMN的覆盖区都被划分成许多位置区,位置区码(LAC)则用于标识不同的位置区。 位置区码(LAC)包含于LAI中,由两个字节组成,采用16进制编码。可用范围为0x0000-0xFFFF,码组0x0000和0xFFFE不可以使用(参见GSM规范03.03、04.08和11.11)。一个位置区可以包含一个或多个小区。

    CELLID(Cell Tower ID,移动基站号),单元是指一个DVB-T信号覆盖的地理区域,这个信号是由一个或者多个发射机使用单一频率传输的,每个发射机可以发射特定的传输流。单元也可以包括中继器所覆盖的区域。两个相邻的单元之间可以有重叠的区域。在一个用原始网络标识符(original_network_id)标识的网络里面,标识一个单元的单元标识符(cell_id)是唯一的。

     

    6、电信基站格式

    SID NID BID

    SID和NID确定你现在使用的那里的网络,看你是否漫游,BID主要是确定你是用的哪个基站。

     

    二、坐标如何转换

    • GPS转谷歌地图 http://ditujiupian.com/service/api.ashx?key=您的KEY& 功能手机
        type=wgs2gcj&lng=116.420817&lat=39.906987
    • GPS转到高德地图:同上
    • GPS转百度地图 http://ditujiupian.com/service/api.ashx?key=您的KEY&type=wgs2bd&lng=116.420817&lat=39.906987
    • GPS转图吧地图 http://ditujiupian.com/service/api.ashx?key=您的KEY&type=wgs2mb&lng=116.420817&lat=39.906987
    • 谷歌地图转GPS http://ditujiupian.com/service/api.ashx?key=您的KEY&type=gcj2wgs&lng=116.420817&lat=39.906987
    • 谷歌地图转百度地图 http://ditujiupian.com/service/api.ashx?key=您的KEY&type=gcj2bd&lng=116.420817&lat=39.906987
    • 百度地图转GPS http://ditujiupian.com/service/api.ashx?key=您的KEY&type=bd2wgs&lng=116.420817&lat=39.906987
    • 百度地图转谷歌地图 http://ditujiupian.com/service/api.ashx?key=您的KEY&type=bd2gcj&lng=116.420817&lat=39.906987
    • 百度地图转高德地图:同上
    • 图吧地图转GPS http://ditujiupian.com/service/api.ashx?key=您的KEY&type=mb2wgs&lng=116.420817&lat=39.906987
    • 基站转GPS http://ditujiupian.com/service/api.ashx?key=您的KEY&type=cellid2wgs&lac=4340&cellid=13178
    • 基站转谷歌地图 http://ditujiupian.com/service/api.ashx?key=您的KEY&type=cellid2gcj&lac=4340&cellid=13178
    • 基站转到高德地图:同上
    • 基站转百度地图 http://ditujiupian.com/service/api.ashx?key=您的KEY&type=cellid2bd&lac=4340&cellid=13178
    • 经纬度转地址(大地:lnglat2address-wgs,火星:lnglat2address-gcj,百度:lnglat2address-bd) http://ditujiupian.com/service/api.ashx?key=您的KEY&type=lnglat2address-wgs&lng=116.420817&lat=39.906987

    以上服务由坐标纠偏网站提供,更多细节可以访问网站,申请key。http://ditujiupian.com/

    我申请了一个试用key:08145a5c5d2b487db7adeeac4a90f12a

     

    三、百度坐标转到高德坐标的算法

    1、线性转换

    var TO_GLNG = function(lng){return lng-0.0065;};
    var TO_GLAT = function(lat){return lat-0.0060;};

     

    2、球面坐标转换

    复制代码
    #include <math.h>    
    const double x_pi = 3.14159265358979324 * 3000.0 / 180.0;  
    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);  
    }  
    复制代码

     

    3、网络接口

    http://ditujiupian.com/service/api.ashx?key=您的KEY&type=bd2gcj&lng=116.420817&lat=39.906987

     


    展开全文
  • java 高德地图坐标转换为具体地址 /** * 通过经纬度查询地址 查询不出来 结果返回空字符串 * * @param longitude 经度 大于180 * @param latitude 纬度 * @return */ public static String getLocation(String ...

    java 高德地图坐标转换为具体地址

    /**
    * 通过经纬度查询地址 查询不出来 结果返回空字符串
    *
    * @param longitude 经度 大于180
    * @param latitude 纬度
    * @return
    */
    public static String getLocation(String longitude, String latitude) {

    	String location = longitude + "," + latitude;
    
    	String str = "https://restapi.amap.com/v3/geocode/regeo?location=" + location + "&key=" + key;
    	String res = getResponse(str);
    
    	String formattedAddress = "";
    	JSONObject jaon = JSONObject.parseObject(res);
    	if (jaon.getInteger("status") == 1) {
    		JSONObject regeocode = jaon.getJSONObject("regeocode");
    		formattedAddress = regeocode.getString("formatted_address");
    	}
    
    	return formattedAddress;
    }
    
    public static String getResponse(String serverUrl) {
    	
    	StringBuffer result = new StringBuffer();
    	try {
    		URL url = new URL(serverUrl);
    		URLConnection conn = url.openConnection();
    		BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    		String line;
    		while ((line = in.readLine()) != null) {
    			result.append(line);
    		}
    		in.close();
    	} catch (MalformedURLException e) {
    		e.printStackTrace();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    	return result.toString();
    }
    
    展开全文
  • 百度地图坐标和高德地图坐标转换

    千次阅读 2017-12-14 17:09:05
    不同坐标转换偏移

    网上解决该类问题的帖子很多,但是这里还需记录下自己解决问题的过程。

    需求背景

    项目中使用的都是百度坐标系BD-09,当APP跳转到高德地图APP时,虽然坐标经过了转换,但在高德地图上显示仍有偏移。因此问题:解决坐标偏移问题。

    解决思路

    从以下几方面入手:
    1、原始坐标系弄错,比如以为自己是GPS坐标,但其实已经是GCJ-02坐标。
    解决方案:请确保采集到的数据是哪个坐标体系,需要转换到哪个坐标系,再进行坐标转换。
    2、原始坐标准确度不够
    解决方案:如果您是GPS坐标,请确保采集GPS数据时,搜到至少4颗以上的卫星。并且GPS数据准不准,还取决于周围建筑物的高度,越高越不准,因为有遮挡。
    如果本来就是GCJ-02坐标,在不同地图放大级别的时候,看到的地方可能不一样。比如你在地图级别4(国家)取到的坐标,放大到地图12级(街道)时,坐标就偏了。请确保在地图最大放大级别时,拾取坐标。
    3、度分秒的概念混淆
    比如,在google earth上采集到的是39°31’20.51,那么应该这样换算,31分就是31/60度,20.51秒就是20.51/3600度,结果就是39 + 31/60 + 20.51/3600 度。
    4、经纬度顺序写反了
    有些公司(比如高德,百度,腾讯)是先经度,再纬度,即Point(lng lat)。但谷歌坐标的顺序恰好相反,是(lat lng)。

    方案实施

    1.在程序中打印log得到百度坐标系、通过转换后的火星坐标系,校验转换后的结果是否正确,校验工具:百度坐标拾取器(http://api.map.baidu.com/lbsapi/getpoint/index.html)、高德坐标拾取器(http://lbs.amap.com/console/show/picker)。
    此处就发现转换算法有问题,转换结果有偏差。算法应采用:http://blog.csdn.net/w605283073/article/details/64906518

    2.从百度坐标系转换得到正确的火星坐标系,从自己的APP跳转到高德地图发现仍有偏移。那么问题一定出在APP跳转的过程。因此排查到跳转代码有问题,以下直接贴出正确跳转代码:

    // viewMap-服务类型,
    // sourceApplication-第三方调用应用名称,
    // poiname-POI名称,
    // lat-经纬度参数,lon-经纬度参数,
    // dev-起终点是否偏移(0:lat和lon是已经加密后的,不需要国测加密;1:需要国测加密)
    Intent intent = new Intent("android.intent.action.VIEW",                  android.net.Uri.parse("androidamap://navi?sourceApplication=我的应用&poiname=应用&lat="
    + loc.getLat() + "&lon=" + loc.getLng()
    + + "&dev=0"));
    intent.setPackage("com.autonavi.minimap");
    context.startActivity(intent);

    注意:这里的dev参数,一般要写dev=0,即通过步骤1中的转换算法就已经是国测加密后的坐标,无需在进行国测加密了,否则得到的结果在地图上显示是一定有偏移的。这里参考的(http://blog.csdn.net/u010998327/article/details/71515147)

    综上,经过上述步骤将坐标转换偏移问题修复。举一反三,其他坐标系的转换偏移问题解决思路应如上,如:火星坐标系转换到百度坐标系、WGS-84坐标系与百度互相转换等。

    参考文献

    https://segmentfault.com/a/1190000000498434
    http://blog.csdn.net/u010998327/article/details/71515147
    http://blog.csdn.net/w605283073/article/details/64906518

    展开全文
  • 高德地图坐标转换为百度地图坐标

    千次阅读 2016-09-24 09:15:45
    业务是用户点击APP中的导航按钮,会根据用户当前手机安装地图APP进行导航,顺序是 1高德 2百度,如果用户没有安装高德地图APP则判断是否有百度地图APP因为APP是用的高德SDK所以在导航上没有任何问题,跳转百度后 ...
  • 本工具能够将BD地图坐标实时转换为高德地图坐标,由于高德坐标是由BD坐标使用高德官方接口转换而成,由于官方坐标转换准确及稳定性存在问题,因此定位可能存在一定的偏差,建议打开程序前将屏幕分辨率调至1024x768...
  • 高德地图坐标转换问题

    千次阅读 2015-12-08 16:45:30
    最近项目中要继承高德地图,我是根据官方的开发指南配置的,使用CocoaPods自动配置,然后使用基本地图功能时没有问题,但当做到坐标转换的时候,问题就出现了,根据开发指南,坐标转换方法如下: //将GPS转成...
  • 最近做项目需要百度地图坐标转换高德地图坐标,高德官方也给出了转换接口(百度地图也给出了转换接口) http://lbs.amap.com/api/javascript-api/reference/lnglat-to-address#t1 但是还想想直接通过后台一次性...
  • public static Map bd_encrypt(double gg_lat, double gg_lon) { double x = gg_lon, y = gg_lat; double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * Math.PI); double theta = Math.atan2(y,
  • 本软件为博主本人开发,转换精度已验证,目前仅支持百度、高德火星坐标与CGCS2000、WGS84之间的互相转换,可以实现单点转换和批量转换
  • 来自:https://blog.csdn.net/wang415229224ye/article/details/79207791 侵删//百度坐标高德(传入经度、纬度) function bd_decrypt(bd_lng, bd_lat) { var X_PI = Math.PI * 3000.0 / 180.0; var x = bd_...
  • 百度坐标拾取并可自动转换为高德坐标工具,程序有交期到2020年1月1日,支持每分钟最多2万次高德坐标转换
  • 高德地图坐标转换接口

    千次阅读 2015-11-06 16:24:40
    苦苦纠结于如何将GPS、mapbar、baidu坐标转换高德坐标系的开发者们。 二.转换方法: 1. 首先当然还是需要人手一个的百宝key。注意:权限君升级权限系统后,调用坐标转换接口的童鞋们需要重新申请。注意:绑定...
  • 今天项目中遇到了服务端发的是百度地图的坐标,显示在高德地图上,在地图上位置偏差太大,就要把百度地图的坐标转换成高德的地图坐标,就在高德API官网搜到了,自己写出来记录一下,各位大神勿喷,下面上代码。...
  • 主要实现百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换纠偏的JS实现
  • 项目中实验数据点取自高德地图,它是火星坐标系统(下面会有解释),而现在希望用百度地图的SDK进行开发,两套不同的规范自然需要进行转换。如何解决这个问题呢?参考了网上很多人的博客和资料。
  • 根据高德地图js代码翻译而成,废话不多说直接上代码 const double VV = 0.15915494309189535; const double kW = 0.5; const double yW = -0.15915494309189535; const double WW = 0.5; /// <...
  • 1.获取真实坐标GPS wgs84转为gcj编码方式 positiontransform(array,manual){ //定义常量 var GPS = { PI : 3.14159265358979324, x_pi : 3.141592...
  • refs: 1) ... 2) https://www.jianshu.com/p/39e283f7979e ...要点微信获取的实时地理坐标gps是硬件坐标,而相关地图商家给出的坐标是依赖各自系统的,通过地图选择的坐标是有一定偏差的。 ...
  • excel中高德与天地图坐标转换,可使用内部定义的函数实现批量转换
  • GPS坐标高德坐标相互转换

    万次阅读 2017-07-04 10:57:11
    GPS坐标高德坐标: GPS转高德坐标方法高德API已经提供。 导包: import com.amap.api.maps.model.LatLng; import com.amap.api.maps.CoordinateConverter; import ...
  • 在项目开发中,车机使用了百度地图传高德GPS坐标,web使用了高德地图,问题就来了:在ios10版本以上,高德定位API调用失败。换成百度地图就可以,换成百度地图,那么久需要进行坐标转换,网上找的转换方法 电子地图...
  • 高德地图demo,通过高德地图选择位置获取经纬度,并把经纬度转换为中文详细地址,详细地址包括省市区县乡镇街道门牌号,在代码中需要替换自己的key,必须是js web key奥。
  • 高德坐标系转天地图坐标系(GCJ02转WGS坐标系) private static double PI = 3.14159265358979324; public static double[] gcj02ToWgs(double lng, double lat) { double a = 6378245.0; // a: 卫星椭球坐标...
  • 高德转百度(火星坐标gcj02ll–&gt;百度坐标bd09ll)private double[] gaoDeToBaidu(double gd_lon, double gd_lat) { double[] bd_lat_lon = new double[2]; double PI = 3.14159265358979324 * 3000.0 / 180...
  • 高德地图搜索获取坐标转换地图添加标记 记得换成自己申请的KEY值。
  • 高德API坐标转换

    2021-10-06 00:42:37
    高德API里可以进行坐标转换。 步骤(取自高德API开发指南): 第一步,申请”Web服务API”密钥(Key); 第二步,拼接HTTP请求URL,第一步申请的Key需作为必填参数一同发送; 第三步,接收HTTP请求返回的数据(JSON...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,596
精华内容 1,438
关键字:

高德地图坐标转换