android定位得到城市
16lz
2021-01-23
android通过百度地图获取经纬度和具体地址。
官方网站上就有Demo,http://developer.baidu.com/map/index.php?title=androidsdk
可以参考,打开定位的demo,把它的
1.jar包导入,
2.在AndroidManifest中
a.把uses-permission复制进去,
b.申请key~并复制<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="输入你的key" />
c.因为自己定义了类继承Application,所以在Application处加上
android:name="自己定义的类名~"
3.就可以写代码了。
MainActivity:
public class MainActivity extends Activity{private LocationClient mLocationClient; //显示城市private TextView LocationResult; //开始按钮private Button startLocation;public void init(){startLocation = (Button)findViewById(R.id.addfence);LocationResult = (TextView)findViewById(R.id.textView1);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.location);init();mLocationClient = ((LocationApplication)getApplication()).mLocationClient; //调用LocationApplication,获得需要的信息 ((LocationApplication)getApplication()).mLocationResult = LocationResult;startLocation.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubInitLocation();mLocationClient.start();}}});}@Overrideprotected void onStop() {mLocationClient.stop();super.onStop();}private void InitLocation(){LocationClientOption option = new LocationClientOption();option.setLocationMode(LocationMode.Hight_Accuracy);//设置定位模式//LocationMode.Hight_Accuracy 高精度定位模式下,会同时使用GPS、Wifi和基站定位,返回的是当前条件下精度最好的定位结果option.setCoorType("gcj02");//返回的定位结果是百度经纬度,默认值gcj02//可选项:"gcj02"国策局加密经纬度坐标//"bd09ll"百度加密经纬度坐标//"bd09"百度加密墨卡托坐标option.setIsNeedAddress(true);//反编译获得具体位置,只有网络定位才可以mLocationClient.setLocOption(option);}}
LocationAplication类:
public class LocationApplication extends Application {public LocationClient mLocationClient;//定位SDK的核心类public MyLocationListener mMyLocationListener;//定义监听类public TextView mLocationResult,logMsg;public static String city=null;@Overridepublic void onCreate() {super.onCreate();mLocationClient = new LocationClient(this.getApplicationContext());mMyLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(mMyLocationListener);}/** * 实现实位回调监听 */public class MyLocationListener implements BDLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {//Receive Location if(location.getCity()!=null){city=location.getCity();}StringBuffer sb = new StringBuffer(256);if (location.getLocType() == BDLocation.TypeGpsLocation){//定位结果描述:GPS定位结果sb.append(city);//地理位置} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){//定位结果描述:网络定位结果sb.append(city);}logMsg(sb.toString());}}/** * 显示请求字符串 * @param str */public void logMsg(String str) {try {if (mLocationResult != null)mLocationResult.setText(str);} catch (Exception e) {e.printStackTrace();}}}
更多相关文章
- 老罗Android视频开发教程(百度地图实战开发)十集集合
- android自APP打开高德,百度,腾讯地图APP调用(整理非原创)
- android 根据经纬度定位所在城市
- android 百度地图 画轨迹
- Android通过原生方式获取经纬度与城市信息的方法
- 百度强势介入分裂 Android