900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 借助百度地图api实现显示地图 自动定位功能

借助百度地图api实现显示地图 自动定位功能

时间:2023-02-17 17:07:44

相关推荐

借助百度地图api实现显示地图 自动定位功能

1.首先copy三个文件

libBaiduMapSDK_v3_3_0_15.so

liblocSDK5.so

点击打开链接

这两个放在libs下边新建的armeabi文件夹中.

BaiduLBS_Android.jar放在libs下。

2.在layout.xml增加com.baidu.mapapi.map.MapView标签

3.添加权限

<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" ></uses-permission><uses-permission android:name="android.permission.CALL_PHONE" ></uses-permission><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" ></uses-permission><uses-permission android:name="android.permission.INTERNET" ></uses-permission><uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" ></uses-permission><!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK" ></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_GPS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.CALL_PHONE" /><uses-permission android:name="android.permission.READ_SMS" /><uses-permission android:name="android.permission.SEND_SMS" /><!-- SDK1.5闂団偓鐟曚工ndroid.permission.GET_TASKS閺夊啴妾洪崚銈嗘焽閺堫剛鈻兼惔蹇旀Ц閸氾缚璐熻ぐ鎾冲鏉╂劘顢戦惃鍕安閻? --><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.CAMERA" ></uses-permission><uses-permission android:name="android.permission.RECORD_AUDIO" ></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.BROADCAST_STICKY" /><uses-permission android:name="android.permission.WRITE_SETTINGS" /><!-- 閺夈儳鏁稿☉鍫ョ叾 --><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" ></uses-permission><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><!-- 鏈夌背浼犲獟 Android SDK 鎵€闇€鏉冮檺 --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 鍙€? --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.GET_TASKS" />

4.添加service及meta

<serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote" ></service>

<meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="你自己应用的key" />

关于这个key,你需要百度上进行注册:

注册地址:点击打开链接

注册号:你电脑eclipse的SHA1值+“;”+packagename;

成功后就会有一个apk值,你可以填在这里

5.在你的Application的oncreate()方法中对地图初始化,SDKInitializer.initialize(this);

这时百度地图应该就可以显示在你的界面了,下面来讲定位

6.声明一些控件 及类

MapView 控件

BaiduMap ,LocationClient类

7.写BDLocationListener的实现类,重写onReceiveLocation()方法,在此方法中获得经纬度。

新建一个封装经纬度的类LatLng(这个类是地图的中心点),新建一个地图显示级别的类MapStatusUpdate类,用来控制地图显示的级别(即大小);

最后baiduMap.animateMapStatus()即可定位到你现在所在的位置了。

8.接下来我们需要在oncreate方法中设定一些配置了

baiduMap=mapView.getMap();//注册定位的实现类MyBdLocationListener myBdlocationlistener=new MyBdLocationListener();locationClient=new LocationClient(this);locationClient.registerLocationListener(myBdlocationlistener);//设置定位的参数LocationClientOption option=new LocationClientOption();option.setOpenGps(true);//坐标类型option.setCoorType("bd0911");//每隔2秒得一次坐标 少于1000,只得一次option.setScanSpan(1);locationClient.setLocOption(option);locationClient.start();

9.最好我们还是在地图上添加一张图片,这样才可以明确表明我们所在的位置。

public void addImage(LatLng currentPosition) {//在地图上添加一个图MarkerOptions markeroptions=new MarkerOptions();//设置坐标markeroptions.position(currentPosition);//设置图片markeroptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_overlay_blue));//添加到地图上baiduMap.addOverlay(markeroptions);}

10.如果你想可以在地图上点击添加图片可以添加baiduMap的点击事件。

baiduMap.setOnMapClickListener(new OnMapClickListener() {@Overridepublic boolean onMapPoiClick(MapPoi arg0) {// TODO Auto-generated method stubreturn false;}@Overridepublic void onMapClick(LatLng clickPosition) {//将以前的定位图片清除掉。baiduMap.clear();addImage(clickPosition);}});

11.至此,定位功能基本上就实现了。如果你想看demo,点击下边下载。

点击打开链接

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。