新建文本文档
2016-07-10 09:31
302 查看
使用百度地图,定位你当前位置并显示
1、准备
注册百度开发者账号到百度地图开放平台创建应用(as获取SHA1值)
2、将sdk整到你的项目中去
- 在你app的gradle.build中添加
dependencies { ...... compile files('libs/baidumapapi_base_v4_0_0.jar') compile files('libs/baidumapapi_cloud_v4_0_0.jar') compile files('libs/baidumapapi_map_v4_0_0.jar') compile files('libs/baidumapapi_radar_v4_0_0.jar') compile files('libs/baidumapapi_search_v4_0_0.jar') compile files('libs/baidumapapi_util_v4_0_0.jar') compile files('libs/locSDK_6.13.jar') } android { ...... sourceSets { main { jniLibs.srcDir 'libs' } } }
3、在AndroidManifest.xml中配置
<!--baiduMap--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="百度key" />
<!--百度地图定位监听服务--> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" > </service>
4、在activity中
oncreate中地图初始化
mBaiduMap = mMapView.getMap(); // 开启定位图层 mBaiduMap.setMyLocationEnabled(true); // 定位初始化 mLocClient = new LocationClient(getActivity()); mLocClient.registerLocationListener(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); // 打开gps option.setCoorType("bd09ll"); // 设置坐标类型 option.setScanSpan(1000); mLocClient.setLocOption(option); mLocClient.start(); LatLng ll = new LatLng(100, 100); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
内部类监听
public class MyLocationListenner implements BDLocationListener {
@Override public void onReceiveLocation(BDLocation location) { // map view 销毁后不在处理新接收的位置 if (location == null || mMapView == null) { return; } mBaiduMap.clear(); MyLocationData locData = new MyLocationData.Builder() .accuracy(location.getRadius()) // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(location.getLatitude()) .longitude(location.getLongitude()).build(); mBaiduMap.setMyLocationData(locData); LatLng llA=new LatLng(location.getLatitude(),location.getLongitude()); MarkerOptions ooA = new MarkerOptions().position(llA).icon(bdA) .zIndex(9).draggable(true); mBaiduMap.addOverlay(ooA); if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); } } public void onReceivePoi(BDLocation poiLocation) { }
}
5、在布局文件中
<com.baidu.mapapi.map.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="match_parent" />
6、到此应该可以显示地图了,手机开wifi,开gsp试一试吧!
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories