`
whl717247746
  • 浏览: 16682 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android版百度地图的移动定位开发过程

 
阅读更多

Android版百度地图的移动定位开发过程


一、准备工作

1、下载百度地图移动版API(Android版)开发包

开发包中包含两个文件:baidumapapi.jar和libBMapApiEngine.so

下载地址:http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0/%E7%9B%B8%E5%85%B3%E4%B8%8B%E8%BD%BD


2、申请BaiduMapAPI Key(访问BaiduMap密钥)

申请地址:http://dev.baidu.com/wiki/imap/index.php?title=Android%E5%B9%B3%E5%8F%B0


3、创建一个Android工程

需要注意的是,与一般Android工程创建有所不同的是,需要额外做点工作,即先创建一个libs文件夹,然后将baidumapapi.jar和libBMapApiEngine.so两个文档分别拷贝libs目录及libs/armeabi目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定baidumapapi.jar,这样就可以在应用中使用百度地图API了。工程的目录结构如下图所示:


弄完上面的基础工作,我们就可以正式开始了



二、具体实施过程

1、在布局文件中添加Map控件



<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<!-- 添加Map控件 -->
    <com.baidu.mapapi.MapView android:id="@+id/map_View"
		android:layout_width="fill_parent"
    	android:layout_height="fill_parent"
    	android:clickable="true"
    />    
</LinearLayout>



2、创建一个继承com.baidu.mapapi.MapActivity的类


package cn.whl.baidu.map;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.LocationListener;
import com.baidu.mapapi.MKLocationManager;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.MyLocationOverlay;

import android.location.Location;
import android.os.Bundle;

public class FirstActivity extends MapActivity {
	
	//属性
	
	//地图管理器对象
	private BMapManager mapManager;
	//地图控件
	private MapView mapView;
	//地图控件管理器
	private MapController mapController;
	
	//定位服务管理器对象
	private MKLocationManager mkLocationManager = null;
	//用于实时更新当前位置覆盖物
	private MyLocationOverlay myLocationOverlay;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //实例化地图管理器对象
		mapManager =new BMapManager(getApplication());
		//初始化地图管理器对象
		mapManager.init("22FCFCD052AAAE640F34D608D98CDED68B0744A5", null);
		//开启地图管理器对象
		mapManager.start();
		//初始化Activity
		super.initMapActivity(mapManager);
		
		
		//根据id值找到对应的控件
		mapView= (MapView)findViewById(R.id.map_View);
		//设置启用内置的缩放控件
		mapView.setBuiltInZoomControls(true);
		
		//构造一个经纬度点
		GeoPoint point=new GeoPoint((int)(27*1E6), (int)(100*1E6));
		
		//取得地图控制器对象,用于控制mapView
		mapController=mapView.getController();
		//设置地图的中心
		mapController.setCenter(point);
		//设置地图默认的缩放级别
		mapController.setZoom(4);
		
		//通过地图管理器对象得到定位服务管理器对象
		mkLocationManager=mapManager.getLocationManager();
		//注册位置更新事件监听器
		mkLocationManager.requestLocationUpdates(new LocationListener() {
			
			@Override
			public void onLocationChanged(Location location) {
				// TODO Auto-generated method stub
				if(location!=null){
					//将当前位置转换成经纬点位置形式表示
					GeoPoint pt=new GeoPoint((int)(location.getLatitude()*1E6), (int)(location.getLongitude()*1E6));
					//将当前位置设置为地图中心
					mapController.setCenter(pt);
				}
			}
		});
		
		//使用GPS定位
		mkLocationManager.enableProvider(MKLocationManager.MK_GPS_PROVIDER);
		//获取当前位置覆盖物
		myLocationOverlay=new MyLocationOverlay(this, mapView);
		//注册GPS位置更新事件,让地图能实时显示当前位置
		myLocationOverlay.enableMyLocation();
		//开启磁场感应传感器(指南针)
		myLocationOverlay.enableCompass();
		//获取Overlay列表(list),然后在其中加入当前位置的Overlay
		mapView.getOverlays().add(myLocationOverlay);
    }

	@Override
	protected boolean isRouteDisplayed() {
		// TODO Auto-generated method stub
		return false;
	}
	
	protected void onDestroy(){
		if(mapManager!=null){
			mapManager.destroy();
			mapManager=null;
		}
		super.onDestroy();
	}
	
	protected void onPause(){
		if(mapManager!=null){
			mapManager.stop();
		}
		super.onPause();
	}
	
	protected void onResume(){
		if(mapManager!=null){
			mapManager.start();
		}
		super.onResume();
	}
}






3、配置AndroidManifest.xml相关设置


<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.whl.baidu.map"
      android:versionCode="1"
      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".FirstActivity"
                  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>
    
    <!-- 访问网络状态的权限 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 访问精确位置的权限 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 访问网络的权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 读写存储卡的权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 访问WIFI网络状态的权限 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 改变WIFI网络状态的权限 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!-- 读取电话状态的权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
    <!-- 添加Android支持 -->
    <supports-screens android:largeScreens="true"
    android:normalScreens="true" android:smallScreens="true"
    android:resizeable="true" android:anyDensity="true"/>
	<uses-sdk android:minSdkVersion="3"></uses-sdk>
	
</manifest>

 

这样,就完成了,点击运行Android项目,发现不能显示移动定位点,这个目前还不知道其原因,不过我们可以把本项目的bin文件夹的*.apk(*代指项目名)文件安装到Android系统的手机上运行,手机上可以显示的。


  • 大小: 77.7 KB
分享到:
评论

相关推荐

    百度地图定位开发图标大全(包括定位箭头、定位圆圈)

    本压缩包文件“百度地图定位开发图标大全(包括定位箭头、定位圆圈)”就是针对这一需求,提供了一系列的定位图标,帮助开发者美化和优化地图定位功能。 首先,我们来了解一下“百度地图图标”的概念。百度地图图标是...

    基于Android的百度地图车辆定位系统设计与实现

    为了应对这一挑战,结合现代信息技术,特别是GPS定位技术和Android移动平台的发展,本文探讨了基于Android平台和百度地图API开发的车辆定位系统的设计与实现,该系统旨在提升车辆监控和调度的效率与便利性。...

    基于android的百度地图应用

    在Android平台上开发基于百度地图的应用是一项常见的任务,它涉及到Android编程、网络通信、地理信息系统(GIS)以及百度地图API的使用。本项目标题为“基于android的百度地图应用”,其描述指出该应用功能虽简单但...

    android 百度地图定位自己位置

    在Android平台上,使用百度地图API实现定位用户自身位置是一项常见的需求。这涉及到移动开发、地理信息系统(GIS)以及网络服务的集成。以下是一些关于如何在Android应用中使用百度地图API来定位用户位置的关键知识...

    android 百度地图开发

    总的来说,"android 百度地图开发"涵盖了地图显示、定位、周边搜索和驾驶导航等多个核心知识点,开发者需要熟悉Android编程,掌握百度地图API的使用,并具备良好的问题解决能力。通过实践和不断学习,才能开发出高效...

    Android 百度地图 定位Demo

    1. **百度地图API**: 百度地图API是百度提供的用于开发地图应用的接口,它包含了地图展示、定位、路线规划等多种功能。开发者可以通过注册获取API Key来使用这些服务。 2. **AndroidManifest.xml配置**: 在Android...

    百度地图android版开发指南

    ### 百度地图Android版开发指南:构建丰富的地图应用 #### 概述 百度地图移动版API(Android)为开发者提供了构建地图应用的强大工具箱,适用于Android 1.5及更高版本的设备。该API集成了多种功能,包括基本的地图...

    百度地图移动获取位置、自动定位

    以上就是使用百度地图移动获取位置和自动定位的基本流程。需要注意的是,由于定位服务可能涉及用户隐私,所以在实际开发中应遵循相关法律法规,明确告知用户并获取其同意才能使用定位服务。此外,为了提高定位精度和...

    基于Android的移动地图开发

    在Android平台上进行移动地图开发是一项综合性的技术工作,涉及到Android SDK、百度地图API以及地理位置服务等多个方面的知识。本文将深入探讨这一主题,帮助你理解如何在Android 2.3版本上构建一个功能丰富的地图...

    基于Android的百度地图的导航定位系统

    本文将深入探讨一个基于Android平台,利用百度地图API开发的导航定位系统,通过分析其核心技术和实现流程,为读者提供一份详尽的理解指南。 一、系统概述 基于Android的百度地图导航定位系统,主要由客户端应用和...

    Android 百度地图文字定位此代码可直接通过Eclipse运行

    在Android开发中,集成百度地图API是一个常见的需求,主要用于实现地图显示、定位、路线规划等功能。本项目"Android 百度地图文字定位"提供了一种简单的方法,通过Eclipse IDE可以直接运行,展示用户当前的位置信息...

    超实用的百度地图开发定位小图标分享

    这是一个强大的开发工具,允许开发者在网页或移动应用中集成百度地图的功能,如定位、导航、路线规划等。开发者可以使用JavaScript或者Android/iOS SDK来调用API接口,实现各种地图交互功能。通过API,开发者可以...

    基于Android的百度地图定位导航应用开发.doc

    在功能实现上,本软件采用了最新版的百度地图SDK V2.1.0,支持查看全国城市地图,提供了地图的放大、缩小和移动功能。此外,软件集成了GPS定位技术,用户可以实时查看自己的位置,并通过公交路线查询功能规划出行...

    基于百度地图实现的定位功能

    2. **引入SDK**:根据你的开发平台(如Android或iOS),将相应的百度地图SDK导入项目。在Android中,通常通过Gradle依赖管理引入;在iOS中,可能需要手动下载SDK并添加到Xcode项目中。 3. **初始化定位服务**:在...

    毕业答辩-基于安卓百度地图的定位开发.doc

    本文主要介绍基于安卓平台的百度地图定位开发,讨论了手机导航的重要性、百度地图的优势、Android 平台的开放性和兼容性,以及百度地图在手机导航定位服务中的应用。 首先,本文指出手机导航已经成为现代社会中不可...

    android百度地图开发实例APIjar包文档

    在Android平台上进行应用程序开发时,集成百度地图API...在开发过程中,务必遵循百度地图API的使用规范,定期更新API版本,以获取最新的功能和性能优化。同时,注意处理好用户隐私和数据安全问题,确保应用合规运营。

    Android版百度定位、腾讯定位、高德定位三者混合

    本项目"Android版百度定位、腾讯定位、高德定位三者混合"提供了一种混合定位模式,结合了百度、腾讯和高德三家主流地图服务商的定位API,旨在为开发者提供更灵活、高效的定位解决方案。 ### 1. 定位原理 定位主要...

    Android应用源码之百度地图移动获取位置,自动定位.rar

    这份"Android应用源码之百度地图移动获取位置,自动定位.rar"压缩包中包含了一个完整的示例项目,用于演示如何在Android应用中利用百度地图SDK进行定位功能的开发。 首先,我们需要了解Android定位的基本原理。在...

    android 百度定位、离线地图、测量、运动轨迹doem基于百度地图的部分功能

    在Android开发中,百度地图API提供了丰富的功能,包括定位、离线地图、测量以及运动轨迹绘制等。这些功能使得开发者可以构建出具有专业地理信息处理能力的应用。在使用百度地图API时,尤其对于Android 6.0及以上版本...

Global site tag (gtag.js) - Google Analytics