Android实验十之百度地图
来源:互联网 发布:免费的淘宝客助手 编辑:程序博客网 时间:2024/06/07 07:17
实验结果:
代码:
MainActivity.java
package com.example.baidumaptest;import java.util.List;import android.app.Activity;import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.view.Menu;import android.widget.Toast;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.MapStatusUpdate;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.model.LatLng;public class MainActivity extends Activity{private MapView mapView;private BaiduMap baiduMap;private LocationManager locationManager;private String provider;private boolean isFirstLocate = true;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);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.GPS_PROVIDER)){provider = locationManager.GPS_PROVIDER;}else if(providerList.contains(locationManager.NETWORK_PROVIDER)){provider = locationManager.NETWORK_PROVIDER;}else {//当没有可用位置服务器时,弹出Toast提示用户Toast.makeText(this, "No location provider to use", Toast.LENGTH_LONG).show();return ;}Location location = locationManager.getLastKnownLocation(provider);if(location != null){navigateTo(location);}locationManager.requestLocationUpdates(provider, 5000, 1, locationListener);}private void navigateTo(Location location) {// TODO Auto-generated method stubif(isFirstLocate){LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);baiduMap.animateMapStatus(update);update = MapStatusUpdateFactory.zoomTo(16f);baiduMap.animateMapStatus(update);isFirstLocate = false;}MyLocationData.Builder locationBuilder = new MyLocationData.Builder();locationBuilder.latitude(location.getLatitude());locationBuilder.longitude(location.getLongitude());MyLocationData locationData = locationBuilder.build();baiduMap.setMyLocationData(locationData);}LocationListener locationListener = new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stub}@Overridepublic void onLocationChanged(Location location) {// TODO Auto-generated method stub//更新当前设备的位置信息if(location != null){navigateTo(location);}}};protected void onDestroy(){super.onDestroy();mapView.onDestroy();baiduMap.setMyLocationEnabled(false);if(locationManager != null){//关闭程序时将监听移除locationManager.removeUpdates(locationListener);}}protected void onPause(){super.onPause();mapView.onPause();}protected void onResume(){super.onResume();mapView.onResume();}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" > <com.baidu.mapapi.map.MapView android:id="@+id/map_view" android:layout_height="match_parent" android:layout_width="match_parent" android:clickable="true" /> </LinearLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.baidumaptest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <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.perimission.READ_ETTINGS"/> <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.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.BROADCAST_STICKY"/> <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.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.baidumaptest.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> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="MPvHOsVXiNi2OSCNUkne35x61yBgCbAZ"/> </application></manifest>
总结:
在使用baiduMap时需要特别注意,要申请API Key,如下图:SHA1要与eclipse中的相同,否则不可用。
我在教室申请的API Key,在教室中可以成功运行。但把文件包复制到自己电脑上时,出现了一下错误:
解决方法 :重新申请ak,注意变更SHA1,更发fest文件中的对应key,便可以直接运行。
0 0
- Android实验十之百度地图
- android 之 百度地图
- Android开发之百度地图
- Android百度地图之定位
- Android之百度地图问题
- Android百度地图之显示地图
- Android 百度地图开发之地图初始化
- Android 百度地图开发之地图定位
- [Android]百度地图之地图标注
- Android百度地图之定位功能(结合百度地图API)
- android地图系列之 Android百度地图系列教程
- Android学习笔记之百度地图基础知识
- Android学习笔记之百度地图Overlay
- Android学习笔记之百度地图基础知识
- Android之百度地图 前期实现
- android百度地图开发之完善版
- Android之百度地图GPS定位
- Android百度地图之定位图层
- redis bind多个ip
- 使用session技术来实现网上商城购物车的功能
- linux ll- cmos driver
- 搭建Spark2.0源码研读和代码调试的开发环境
- Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解
- Android实验十之百度地图
- 关于安卓View中onMeasure的详细分析
- 直线拟合 矩阵实现
- SSM+Maven整合
- Linux系统调用--fcntl函数详解
- Python 使用requests发送POST请求
- [LeetCode]Reverse Linked List
- 全氢聚硅氮烷液体涂料材料IOTA-PHPS
- 快速排序的非递归形式