Android百度地图API调用根据服务器发送的经纬度定义位置。

最近用到了百度地图,需要根绝服务器发送的经纬度进行定义位置。

1 申请百度开发者帐号,这个不用多收了吧

2创建应用如下  demo 如下


Android百度地图API调用根据服务器发送的经纬度定义位置。_第1张图片

3 获取 sha1 码 这个比较麻烦,这个一般需要两个 一个 是 发布版本 一个是 测试版本。如下:


Android百度地图API调用根据服务器发送的经纬度定义位置。_第2张图片

正常情况下:

一、获取开发版SHA1:

在此我直接用AndroidStudio提供的命令控制台了,毕竟做android开发几乎都是用Android Studio了。

1、打开android studio 找到Terminal并打开,或者在最下面找到Terminal 如下图:

2、 输入命令  C:    进入c盘;

3、接着 输入命令  cd Users\Administrator  其中Administrator是自己的用户名  Administrator文件下有个.adnroid文件, 输入命令  cd  .android,最后就找到了.android,如图:

4、输入命令  keytool -list -v -keystore debug.keystore  其中debug.keystore是studio默认的keystore,按回车,然后输入秘钥:android(系统默认)    回车(秘钥库口令是看不到的)如下图:

Android百度地图API调用根据服务器发送的经纬度定义位置。_第3张图片

这样就成功获取到开发版的SHA1值了,是不是很简单呀,那是当然!

二、获取发布版的SHA1:

获取发布版的SHA1,跟获取开发版的SHA1的1、2、3步骤一样,不一样的地方就是第4步稍微不同而已。

1、同上;

2、同上;

3、同上;

4、输入命令  keytool -list -v -keystore 文件目录\自己的签名文件 比如我的:keytool -list -v -keystore E:\签名文件\android.keystore ,接着按回车,然后输入秘钥:(我只知道我的,哈哈)    回车(秘钥库口令是看不到的)如下图:

Android百度地图API调用根据服务器发送的经纬度定义位置。_第4张图片

这样就成功获取到发布版的SHA1值了,是不是很简单。


4 这样得到了 ak 值 也就是 密钥,让后将他加入到项目的配置文件里放在application中:


Android百度地图API调用根据服务器发送的经纬度定义位置。_第5张图片

5 下载所需要的sdk 放入项目中,下面是只需要定位的例子:


Android百度地图API调用根据服务器发送的经纬度定义位置。_第6张图片


Android百度地图API调用根据服务器发送的经纬度定义位置。_第7张图片

记得要对jar包添加依赖哦:


还有这个


6 最后上代码了:


Android百度地图API调用根据服务器发送的经纬度定义位置。_第8张图片


Android百度地图API调用根据服务器发送的经纬度定义位置。_第9张图片


Android百度地图API调用根据服务器发送的经纬度定义位置。_第10张图片


Android百度地图API调用根据服务器发送的经纬度定义位置。_第11张图片


Android百度地图API调用根据服务器发送的经纬度定义位置。_第12张图片


Android百度地图API调用根据服务器发送的经纬度定义位置。_第13张图片

监听器 类:

importandroid.content.Context;

importandroid.hardware.Sensor;

importandroid.hardware.SensorEvent;

importandroid.hardware.SensorEventListener;

importandroid.hardware.SensorManager;

public classMyOrientationListenerimplementsSensorEventListener{

privateSensorManagermSensorManager;

privateSensormSensor;

privateContextmContext;

private floatlastX;

privateOnOrientationListenermOnOrientationListener;

publicMyOrientationListener(Contextcontext)

{

this.mContext=context;

}

public voidstart()

{

mSensorManager= (SensorManager)mContext

.getSystemService(Context.SENSOR_SERVICE);

if(mSensorManager!=null)

{

//获得方向传感器

mSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

}

//判断是否有方向传感器

if(mSensor!=null)

{

//注册监听器

mSensorManager.registerListener(this,mSensor,SensorManager.SENSOR_DELAY_UI);

}

}

public voidstop()

{

mSensorManager.unregisterListener(this);

}

//方向改变

@Override

public voidonSensorChanged(SensorEvent event) {

if(event.sensor.getType()==Sensor.TYPE_ORIENTATION)

{

floatx=event.values[SensorManager.DATA_X];

if(Math.abs(x-lastX)>1.0)

{

if(mOnOrientationListener!=null)

{

mOnOrientationListener.onOrientationChanged(x);

}

}

lastX=x;

}

}

public voidsetOnOrientationListener(OnOrientationListener listener)

{

mOnOrientationListener=listener;

}

public interfaceOnOrientationListener

{

voidonOrientationChanged(floatx);

}

@Override

public voidonAccuracyChanged(Sensor sensor,intaccuracy) {

}

}

很简单,只要沉下信,喜欢的点个赞吧 。。。

你可能感兴趣的:(Android百度地图API调用根据服务器发送的经纬度定义位置。)