百度地图api怎么获取经纬度?百度地图api获取经纬度教程

2022-03-31 22:14 来源:网络转载 作者:佚名

百度地图api怎么获取经纬度?百度地图api获取经纬度教程

百度地图api怎么获取经纬度?大部人在使用百度地图只是查看地点的位置,但是有些小伙伴在处理数据的时候需要使用经纬度坐标,但是直接打开地图,我们鼠标放上去也看不到任何坐标信息,那么要如何才能使用百度地图上指定位置的经纬度坐标呢?下面小编就来告诉你~

百度地图api获取经纬度

第一步,准备工作

在使用定位SDK进行具体开发工作之前,需获取密钥(AK),并对开发工程进行环境配置工作。详细介绍请参考项目创建部分的说明。 此外,Google在Android 6.0中引入了动态权限获取机制,开发者在使用定位SDK之前,请详细了解关于Android 6.0系统开发须知。

2第二步,初始化LocationClient类

请在主线程中声明LocationClient类对象,该对象初始化需传入Context类型参数。推荐使用getApplicationConext()方法获取全进程有效的Context。

核心代码段如下:

public LocationClient mLocationClient = null;
private MyLocationListener myListener = new MyLocationListener();
//BDAbstractLocationListener为7.2版本新增的Abstract类型的监听接口
//原有BDLocationListener接口暂时同步保留。具体介绍请参考后文第四步的说明
public void onCreate() {
    mLocationClient = new LocationClient(getApplicationContext());     
    //声明LocationClient类
    mLocationClient.registerLocationListener(myListener);    
    //注册监听函数
}

3第三步,配置定位SDK参数

通过参数配置,可选择定位模式、可设定返回经纬度坐标类型、可设定是单次定位还是连续定位。

定位SDK所提供的定位模式包括三种:高精度、低功耗和仅用设备定位。开发者请根据自己的实际使用需求进行选择。

定位SDK能够返回三种坐标类型的经纬度(国内),分别是GCJ02(国测局坐标)、BD09(百度墨卡托坐标)和BD09ll(百度经纬度坐标)。如果开发者想利用定位SDK获得的经纬度直接在百度地图上标注,请选择坐标类型BD09ll。

定位SDK自V6.2.3版本起,全新升级了全球定位能力,在海外地区定位所获得的经纬度,坐标类型默认、且只能是WGS84类型。

利用LocationClientOption类配置定位SDK参数。核心代码及注释说明如下:

LocationClientOption option = new LocationClientOption();

option.setLocationMode(LocationMode.Hight_Accuracy);
//可选,设置定位模式,默认高精度
//LocationMode.Hight_Accuracy:高精度;
//LocationMode. Battery_Saving:低功耗;
//LocationMode. Device_Sensors:仅使用设备;
	
option.setCoorType("bd09ll");
//可选,设置返回经纬度坐标类型,默认GCJ02
//GCJ02:国测局坐标;
//BD09ll:百度经纬度坐标;
//BD09:百度墨卡托坐标;
//海外地区定位,无需设置坐标类型,统一返回WGS84类型坐标
 	
option.setScanSpan(1000);
//可选,设置发起定位请求的间隔,int类型,单位ms
//如果设置为0,则代表单次定位,即仅定位一次,默认为0
//如果设置非0,需设置1000ms以上才有效
	
option.setOpenGps(true);
//可选,设置是否使用gps,默认false
//使用高精度和仅用设备两种定位模式的,参数必须设置为true
	
option.setLocationNotify(true);
//可选,设置是否当GPS有效时按照1S/1次频率输出GPS结果,默认false
	
option.setIgnoreKillProcess(false);
//可选,定位SDK内部是一个service,并放到了独立进程。
//设置是否在stop的时候杀死这个进程,默认(建议)不杀死,即setIgnoreKillProcess(true)
	
option.SetIgnoreCacheException(false);
//可选,设置是否收集Crash信息,默认收集,即参数为false

option.setWifiCacheTimeOut(5*60*1000);
//可选,V7.2版本新增能力
//如果设置了该接口,首次启动定位时,会先判断当前Wi-Fi是否超出有效期,若超出有效期,会先重新扫描Wi-Fi,然后定位
	
option.setEnableSimulateGps(false);
//可选,设置是否需要过滤GPS仿真结果,默认需要,即参数为false

option.setNeedNewVersionRgc(true);
//可选,设置是否需要最新版本的地址信息。默认需要,即参数为true
	
mLocationClient.setLocOption(option);
//mLocationClient为第二步初始化过的LocationClient对象
//需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用
//更多LocationClientOption的配置,请参照类参考中LocationClientOption类的详细说明

4第四步,实现BDAbstractLocationListener接口

Android定位SDK自V7.2版本起,对外提供了Abstract类型的监听接口BDAbstractLocationListener,用于实现定位监听。原有BDLocationListener暂时保留,推荐开发者升级到Abstract类型的新监听接口使用,该接口会异步获取定位结果,核心代码如下:

public class MyLocationListener extends BDAbstractLocationListener{
    @Override
    public void onReceiveLocation(BDLocation location){
        //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
        //以下只列举部分获取经纬度相关(常用)的结果信息
        //更多结果信息获取说明,请参照类参考中BDLocation类中的说明
			
        double latitude = location.getLatitude();    //获取纬度信息
        double longitude = location.getLongitude();    //获取经度信息
        float radius = location.getRadius();    //获取定位精度,默认值为0.0f
			
        String coorType = location.getCoorType();
        //获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准
			
        int errorCode = location.getLocType();
        //获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明
    }
}

5第五步,获取定位经纬度

最后,只需发起定位,便能够从BDAbstractLocationListener监听接口中获取定位结果信息。核心代码如下:

mLocationClient.start();

//mLocationClient为第二步初始化过的LocationClient对象
//调用LocationClient的start()方法,便可发起定位请求

start():启动定位SDK;stop():关闭定位SDK。调用start()之后只需要等待定位结果自动回调即可。

开发者定位场景如果是单次定位的场景,在收到定位结果之后直接调用stop()函数即可。

如果stop()之后仍然想进行定位,可以再次start()等待定位结果回调即可。

自V7.2版本起,新增LocationClient.reStart()方法,用于在某些特定的异常环境下重启定位。

如果开发者想按照自己逻辑请求定位,可以在start()之后按照自己的逻辑请求LocationClient.requestLocation()函数,会主动触发定位SDK内部定位逻辑,等待定位回调即可。

以上就是百度地图api怎么获取经纬度?的相关内容了,希望能帮到小伙伴们,另外欢迎小伙伴们收藏网页游戏开服表、网页游戏大全、手游排行榜以便实时关注更多新的软件教程!

*免责声明: 文章图文均来源于网络转载,如有版权问题请联系作者删除!Email:3053479945#qq.com

相关阅读

相关标签

    降龙之刃-屠龙版新区战神荣耀破解版欢乐园大侠传傲视千雄鬼服村服平台_超变态公益服_高返传奇来了h5超变版_页游升级_新服开启全萌宠西游H5超变版_网页游戏SF_高返利新热血屠龙怀旧版页游梦幻西游sf公益服完美红颜游戏_超变态公益服_高返利新区开魔龙诀页游_网页游戏公益服_新服开服时间神话西游页游_爆率100_福利逆天_霸服热血争宝平台_网页游戏公益服_新服开服时烈焰战歌网络版_高爆率高福利_今日开服表大圣捉妖H5首服_超好玩的网页游戏_高返手游公益服群暗夜西游变态版敬请期待哦。极限竞速地平线5少女前线索米无双三国志新服开服表_页游升级_新服开启卡酷岛激活码_变态版游戏平台_今日开服表开服时间表网页游戏深渊预言福利服_变态版游戏平台_今日开服传奇盛世2(送V3)无限元宝服_传奇盛世神王王者之心公益服热血联盟SF_各种最新游戏版本_高返利新弑天三国网页版_爆率100_福利逆天_霸妲己传H5鬼服村服平台_VIP特权_劲爆贪玩刺沙鬼服村服暗黑皇朝开服表英雄纷争开服表猎魔人H5新服开服表_爆率100_福利逆神之封印激活码_最新开服表_今日新服攻铩开服表新雄霸九州超变版_装备全靠打_高返利新区御龙在天美破解版_超好玩的网页游戏_高返西游之路页游_爆率100_福利逆天_霸服大剑传奇2变态版刀刀战神公益服页游神座破解版那么下面就让小编来为大家分享一下详细的解支付宝生肖卡怎么换烈焰游戏_网页变态版_新服开服时间表君王之路游戏_极品装备_暴打全服_不牛X格斗机器人变态版赤壁神魔传变态版霸将三国2新区开服表剑灵洪门崛起公益服花千骨公益服_今日新服表_高返利新区开服古风官斗手游虎啸龙吟首服_装备全靠打_高返利新区开服萌战三国超变版_怀旧版公益服_新服开服时

猜你喜欢

雷霆之怒

雷霆之怒 评分:9.7 上线福利:

试玩

梦幻之城

梦幻之城 评分:9.5 上线福利:

试玩

霸将三国

霸将三国 评分:9.5 上线福利:

试玩

七战

七战 评分:9.3 上线福利:

试玩

莽荒纪2

莽荒纪2 评分:9.5 上线福利:

试玩

大唐盛世

大唐盛世 评分:9.5 上线福利:

试玩

裁决战歌

裁决战歌 评分:9.5 上线福利:

试玩

神魔传说

神魔传说 评分:9.3 上线福利:特权大礼包

试玩

传奇国度

传奇国度 评分:9.3 上线福利:送30元充值

试玩

BT手游盒子下载
包服网页游戏推荐