百度定位到经纬度,地址
来源:互联网 发布:淘宝店怎么设置类目 编辑:程序博客网 时间:2024/05/16 12:46
package com.example.lenovo.maptest;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
public class LocatActivity extends Activity {
public static final String TAG = LocatActivity.class.getSimpleName();
private TextView locationInfoTextView = null;
private Button startButton = null;
private LocationClient locationClient = null;
private static final int UPDATE_TIME = 5000;
private static int LOCATION_COUTNS = 0;
@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_location); locationInfoTextView = (TextView) this.findViewById(R.id.tv_loc_info); startButton = (Button) this.findViewById(R.id.btn_start); locationClient = new LocationClient(this); //设置定位条件 LocationClientOption mOption = new LocationClientOption(); mOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备 mOption.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll; mOption.setScanSpan(0);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的 mOption.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要 mOption.setIsNeedLocationDescribe(true);//可选,设置是否需要地址描述 mOption.setNeedDeviceDirect(false);//可选,设置是否需要设备方向结果 mOption.setLocationNotify(false);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果 mOption.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死 mOption.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近” mOption.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到 mOption.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集 locationClient.setLocOption(mOption); //注册位置监听器 locationClient.registerLocationListener(new BDLocationListener() { @Override public void onReceiveLocation(BDLocation location) { // TODO Auto-generated method stub Log.d(TAG, "onReceiveLocation: " + location.toString()); if (location == null) { return; } final StringBuffer sb = new StringBuffer(256); sb.append("Time : "); sb.append(location.getTime()); sb.append("\nError code : "); sb.append(location.getLocType()); sb.append("\n纬度 : "); sb.append(location.getLatitude()); sb.append("\n经度 : "); sb.append(location.getLongitude()); sb.append("\nRadius : "); sb.append(location.getRadius()); if (location.getLocType() == BDLocation.TypeGpsLocation) { sb.append("\nSpeed : "); sb.append(location.getSpeed()); sb.append("\nSatellite : "); sb.append(location.getSatelliteNumber()); } else if ( location.getLocType() == BDLocation.TypeNetWorkLocation) { sb.append("\n地址 : "); sb.append(location.getAddrStr()); } /*LOCATION_COUTNS++; sb.append("\n检查位置更新次数:"); sb.append(String.valueOf(LOCATION_COUTNS));
*/
runOnUiThread(new Runnable() {
@Override
public void run() {
locationInfoTextView.setText(sb.toString());
}
});
Log.d(TAG, “onReceiveLocation: “+sb.toString());
}
@Override public void onConnectHotSpotMessage(String s, int i) { } }); startButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (locationClient == null) { return; } if (locationClient.isStarted()) { startButton.setText("开始定位"); locationClient.stop(); Log.i("111111", "onClick: "); } else { startButton.setText("停止定位");
// attemptBDLocation();
locationClient.start();
/*
*当所设的整数值大于等于1000(ms)时,定位SDK内部使用定时定位模式。
*调用requestLocation( )后,每隔设定的时间,定位SDK就会进行一次定位。
*如果定位SDK根据定位依据发现位置没有发生变化,就不会发起网络请求,
*返回上一次定位的结果;如果发现位置改变,就进行网络请求进行定位,得到新的定位结果。
*定时定位时,调用一次requestLocation,会定时监听到定位结果。
*/
// locationClient.requestLocation();
}
}
});
}/** * 尝试百度定位,判断是否需要手动获取权限 */
// private void attemptBDLocation() {
// if (PermissionManager.hasPermission(this, PermissionConstant.NET_LOCATION) ||
// PermissionManager.hasPermission(this, PermissionConstant.GPS_LOCATION)) {
// locationClient.start();
// } else {
// PermissionManager.askPermission(LocatActivity.this, new String[]{PermissionConstant.NET_LOCATION,
// PermissionConstant.GPS_LOCATION}, new PermissionCallback() {
// @Override
// public void onPermissionGranted() {
// locationClient.start();
// }
//
// @Override
// public void onPermissionRefused() {
// Log.d(TAG, “cannot start location”);
//// getDefaultCenter();
// }
// });
// }
// }
@Override
protected void onDestroy() {
super.onDestroy();
if (locationClient != null && locationClient.isStarted()) {
locationClient.stop();
locationClient = null;
}
}
}感谢大神的帮忙
- 百度定位到经纬度,地址
- 百度地图定位到某个经纬度
- 百度地图API: 通过经纬度定位到百度地图位置
- 百度地图定位经纬度
- 百度获取地址经纬度
- 百度定位到, 还没有取地址
- 百度地图可以根据地址获取到经纬度吗
- 百度地图--根据经纬度定位
- Android百度定位获取经纬度
- ios 定位经纬度 地址解析
- 百度通过经纬度获取地址
- android使用百度地图定位(获取当前经纬度和地址信息)
- android使用百度地图定位(获取当前经纬度和地址信息)
- js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
- 百度地图根据省市县定位,经纬度和地址信息互相转化JS示例
- Android使用百度地图定位(获取当前经纬度和地址信息)
- ios系统经纬度转百度经纬度及经纬度转地址
- 百度ip地址定位
- lvm 创建、扩充 、缩减 逻辑磁盘大小,以及相应的文件系统大小
- 数据库Sharding的基本思想和切分策略
- java多线程学习之死锁的模拟和避免
- 对JS关于对象创建的几种方式的整理
- Android开发之CoordinatorLayoutAppBarLayoutViewPagerTabLayout实现顶部伸缩效果
- 百度定位到经纬度,地址
- mybatis链接数据库出错
- 设计模式 适配器模式 以手机充电器为例
- 自定义View进阶-Canvas之绘制图形
- 二叉树的遍历-先序中序后序层次(java实现)
- Mac上传.a静态库到服务器(图文教程)
- WARNING POSSIBLE DNS SPOOFING DETECTED
- JAVA代理模式
- Lua中的基本函数库