您的位置:首页 > 移动开发 > Android开发

通过百度地图实现点击按钮获取定位城市并赋值给这个按钮

2016-11-07 18:44 477 查看
我们经常需要一个按钮,当我们点击之后能够获取定位信息,并且在按钮上显示出来。我们可以通过百度地图来实现这个功能。当然跟显示地图一样,需要导入百度地图的包,只是可以只选择定位的服务就好了。
首先,写一个按钮,类似如下:


<Button
android:layout_width="110dp"
android:layout_height="40dp"
android:text="城市"
android:textSize="18sp"
android:id="@+id/citylocation"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
/>


一些定位相关的属性:

Button citySearch;
public LocationClient mLocationClient = null;
public MyLocationListenner myListener = new MyLocationListenner();


找控件,然后设置按钮的点击事件:

citylocation.setText("定位中...");
mLocationClient = new LocationClient( this );
mLocationClient.registerLocationListener(myListener);
setLocationOption();
mLocationClient.start();


//设置相关参数
private void setLocationOption() {
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); //打开gps
option.setServiceName("com.baidu.location.service_v2.9");
option.setAddrType("all");
option.setPriority(LocationClientOption.NetWorkFirst);
option.setPriority(LocationClientOption.GpsFirst); //gps
option.disableCache(true);
mLocationClient.setLocOption(option);
}


获取定位的城市,并赋值给控件,如果没定位出来可以设置按钮显示“定位失败”:

public class MyLocationListenner implements BDLocationListener {

@Override
public void onReceiveLocation(BDLocation bdLocation) {
if (bdLocation.getCity() != null) {
citylocation.setText(bdLocation.getCity());
Log.i("location", bdLocation.getCity());
} else {
citylocation.setText("定位失败");
}

}
}


别忘记了要关闭服务:

@Override
public void onDestroy() {
if(mLocationClient!=null){
mLocationClient.stop();
}
super.onDestroy();
}


如果你还遇到没定位出来的问题,你有可能忘记在配置清单添加服务了。

<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
<intent-filter>
<action android:name="com.baidu.location.service_v2.9" />
</intent-filter>
</service>


效果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 百度地图
相关文章推荐