Baidu Map定位显示
来源:互联网 发布:手机程序加密软件 编辑:程序博客网 时间:2024/04/20 21:57
Location(位置):
百度地图接口的使用:
首先要到百度开发者申请一个密匙
密匙一般为:
k5N**********************8E 和 包名com.example.baidumaptest
在新建工程的时候要和在注册的时候对上,否则就会出现错误
在application中加上(最后面有,可以看看)
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="k5***************fE" />
其次将其完整包下载下来
将jar文件和armebi文件夹等复制到libs下然后把jar文件Build path —add to path
main_activity.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.baidu.mapapi.map.MapView android:id="@+id/map_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /></LinearLayout>
//MainActivitypublic class MainActivity extends Activity { private MapView mapView; private BaiduMap baiduMap; private LocationManager locationManager; private String provider; private boolean isFirstLocate = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.main_activity); mapView = (MapView) findViewById(R.id.map_view); baiduMap = mapView.getMap(); baiduMap.setMyLocationEnabled(true);// 设置位置可见 //位置管理器 locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 获取所有的位置提供器 List<String> providerList = locationManager.getProviders(true); if(providerList.contains(LocationManager.NETWORK_PROVIDER)){ provider = LocationManager.NETWORK_PROVIDER; }else if(providerList.contains(LocationManager.GPS_PROVIDER)){ provider = LocationManager.GPS_PROVIDER; }else{ Toast.makeText(this, "No location provider for use", Toast.LENGTH_SHORT).show(); return; } // location对象,包含各种位置信息 Location location = locationManager.getLastKnownLocation(provider); if (location != null) { navigateTo(location); } //1m 每2s 更新一次位置信息 locationManager.requestLocationUpdates(provider, 2000, 1, locationListener); } //位置监听 LocationListener locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub //位置刷新 if (location != null) { navigateTo(location); } } }; //调用BaiduMap的接口 protected void navigateTo(Location location) { // TODO Auto-generated method stub if (isFirstLocate) { LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll); baiduMap.animateMapStatus(update); update = MapStatusUpdateFactory.zoomTo(16f);// 缩放级别16 baiduMap.animateMapStatus(update); isFirstLocate = false; } MyLocationData.Builder locaBuilder = new MyLocationData.Builder(); locaBuilder.latitude(location.getLatitude()); locaBuilder.longitude(location.getLongitude()); MyLocationData locationData = locaBuilder.build(); baiduMap.setMyLocationData(locationData); } // 实现对生命周期的管理 @Override protected void onDestroy() { super.onDestroy(); baiduMap.setMyLocationEnabled(false); mapView.onDestroy(); // 关闭时关闭监听器 if (locationManager != null) { locationManager.removeUpdates(locationListener); } } @Override protected void onResume() { super.onResume(); mapView.onResume(); } @Override protected void onPause() { super.onPause(); mapView.onPause(); }}
需要很多权限,能想到的基本可以写上:
<uses-permission android:name="android.permission.GET_ACCOUNTS"/> <uses-permission android:name="android.permission.USE_CREDENTIALS"/> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> <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.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.BROADCAST_STICKY"/> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!--注意这个不可少--> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="k5***************fE" /> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
0 0
- Baidu Map定位显示
- Baidu Map 自动定位
- baidu map
- Baidu Map SDK 地图显示不出来的原因
- Android用户定位Google Map显示地图
- baidu地图定位
- Android 笔记38: BAIDU MAP API GPS数据定位偏移校正
- baidu map API 小结
- baidu map develop
- baidu map 学习
- Hello Baidu Map
- Baidu Map开发示例
- Baidu Map API 1
- baidu-map-api
- Hello Baidu Map
- Baidu Map 周边雷达
- Baidu Map BuslineSearch
- 关于android baidu map不显示地图,只显示网格的问题
- Java中自定义注解
- 使用cJSON创建JSON字符串
- 常用鼠标手势总结
- 【LaTeX】E喵的LaTeX新手入门教程(5)参考文献、文档组织
- Git 的常用命令
- Baidu Map定位显示
- Android面试点总结
- HDU 3308LCIS 线段树维护区间lcs
- 转载:java反射机制详解
- C++中特别的函数和变量
- java的单例设计模式
- 【LaTeX】E喵的LaTeX新手入门教程(6)中文
- QT invalid application of 'sizeof' to incomplete type 错误解决
- 如何对测试过程进行可见的有效的管理?