百度地图的定位

百度地图的展示,及详细配置

官方Api

开始搭建环境
1.下载SDK
导入Jar包,这里分为2块,第一块是画圈的jar包,需要小奶瓶,第二部分是文件直接赋值即可
在这里插入图片描述

	**清单文件注册**
		<application
			.....
       			 <!--百度定位-->
        		<service android:name="com.baidu.location.f"
            			android:enabled="true"
            			android:process=":remote">
        		</service>
        		<meta-data
           			 android:name="com.baidu.lbsapi.API_KEY"
            			android:value="AK--官网申请" >
        		</meta-data>
    		</application>
**权限**
	<!-- 这个权限用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <!-- 这个权限用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <!-- 用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <!-- 访问网络,网络定位需要上网-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- SD卡读取权限,用户写入离线定位数据-->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        tools:ignore="ProtectedPermissions"></uses-permission>

还有就是build环境了,这里想吐槽下,唉,就想想吧,我给详细介绍就行了
在当前model下的build的android中添加

	android {
    		.....
		//添加
    		sourceSets {
        		main {
           			 jni.srcDirs=[]
           			 jniLibs.srcDirs = ['libs']
       				 }
    		}
 }

ok环境搭建完成,下面可以看上方官方Api扩展
这里我简单的说一下定位和经纬度

定位并展示,布局就是一个TextView,就不添加了,在主线程使用

public class MainActivity extends AppCompatActivity{
    
    private TextView text;
    public LocationClient mLocationClient = null;
    private MyLocationListener myListener = new MyLocationListener();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
		//初始化控件
		text = (TextView) findViewById(R.id.text);

		mLocationClient = new LocationClient(getApplicationContext());
        //声明LocationClient类
        mLocationClient.registerLocationListener(myListener);
        //注册监听函数
        LocationClientOption option = new LocationClientOption();
        //如果开发者需要获得当前点的位置信息,此处必须为true
        option.setIsNeedLocationDescribe(true);
        //可选,设置是否需要地址信息,默认不需要
        option.setIsNeedAddress(true);
        //可选,默认false,设置是否使用gps
        option.setOpenGps(true);
        //可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
        option.setLocationNotify(true);
//可选,是否需要地址信息,默认为不需要,即参数为false
//如果开发者需要获得当前点的地址信息,此处必须为true

        mLocationClient.setLocOption(option);
//mLocationClient为第二步初始化过的LocationClient对象
//需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用
//更多LocationClientOption的配置,请参照类参考中LocationClientOption类的详细说明
	//只有调用它才会让下面的内部类有效果
        mLocationClient.start();

        }
	
	//内部类,里面做些具体操作
	public class MyLocationListener extends BDAbstractLocationListener {
        @Override
        public void onReceiveLocation(BDLocation location){
            //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
            //以下只列举部分获取地址相关的结果信息
            //更多结果信息获取说明,请参照类参考中BDLocation类中的说明

            String addr = location.getAddrStr();    //获取详细地址信息
            String country = location.getCountry();    //获取国家
            String province = location.getProvince();    //获取省份
            String city = location.getCity();    //获取城市
            String district = location.getDistrict();    //获取区县
            String street = location.getStreet();    //获取街道信息
		//在文本中显示
            text.setText(country+province+city+district+street);
        }
    }
  }

效果
在这里插入图片描述

经纬度:和上面差不多,还有很多功能都是需要上官方上扩展的,只有会一个定位其他的定位使用才会很顺手

猜你喜欢

转载自blog.csdn.net/jiahui6666/article/details/85112696