android开发百度地图定位功能实现.docx

上传人:b****6 文档编号:5962255 上传时间:2023-01-02 格式:DOCX 页数:17 大小:48.01KB
下载 相关 举报
android开发百度地图定位功能实现.docx_第1页
第1页 / 共17页
android开发百度地图定位功能实现.docx_第2页
第2页 / 共17页
android开发百度地图定位功能实现.docx_第3页
第3页 / 共17页
android开发百度地图定位功能实现.docx_第4页
第4页 / 共17页
android开发百度地图定位功能实现.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

android开发百度地图定位功能实现.docx

《android开发百度地图定位功能实现.docx》由会员分享,可在线阅读,更多相关《android开发百度地图定位功能实现.docx(17页珍藏版)》请在冰豆网上搜索。

android开发百度地图定位功能实现.docx

android开发XX地图定位功能实现

androidXX地图定位功能实现

001

package com.example.foreveross.office;

002

 

003

import com.baidu.location.BDLocation;

004

import com.baidu.location.BDLocationListener;

005

import com.baidu.location.LocationClient;

006

import com.baidu.location.LocationClientOption;

007

import com.baidu.mapapi.BMapManager;

008

import com.baidu.mapapi.map.LocationData;

009

import com.baidu.mapapi.map.MKMapViewListener;

010

import com.baidu.mapapi.map.MapController;

011

import com.baidu.mapapi.map.MapPoi;

012

import com.baidu.mapapi.map.MapView;

013

import com.baidu.mapapi.map.MyLocationOverlay;

014

import api.basestruct.GeoPoint;

015

import com.example.wenandroid.R;

016

 

017

import android.app.Activity;

018

import android.content.res.Configuration;

019

import android.location.Location;

020

import android.location.LocationListener;

021

import android.location.LocationManager;

022

import android.os.Bundle;

023

import android.view.Menu;

024

import android.widget.FrameLayout;

025

import android.widget.Toast;

026

 

027

public class MapActivity extends Activity{

028

    BMapManagermBMapMan= null;

029

    MapViewmMapView= null;

030

    MapControllermMapController;

031

    MyLocationOverlaymLocationOverlay;

032

    LocationDatalocData= null;

033

    LocationClientmLocClient;

034

    public MyLocationListennermyListener= new MyLocationListenner();

035

 

036

    @Override

037

    protected void onCreate(BundlesavedInstanceState){

038

        super.onCreate(savedInstanceState);

039

        mBMapMan= new BMapManager(getApplication());

040

        mBMapMan.init("BB3299207a600b8a035b76982adde60f", null);

041

        setContentView(R.layout.activity_main);

042

        mMapView=(MapView)findViewById(R.id.bmapsView);

043

        mMapView.setBuiltInZoomControls(true);

044

        //设置启用内置的缩放控件

045

        mMapController=mMapView.getController();

046

        mMapController.setZoom(12);//设置地图zoom级别

047

         

048

        //定位初始化

049

        mLocClient= new LocationClient(this);

050

        locData= new LocationData();

051

        mLocClient.registerLocationListener(myListener);

052

        LocationClientOptionoption= new LocationClientOption();

053

        option.setOpenGps(true);//打开gps

054

        option.setCoorType("bd09ll"); //设置坐标类型

055

        option.setScanSpan(5000);

056

        mLocClient.setLocOption(option);

057

        mLocClient.start();

058

 

059

        //定位图层初始化

060

        mLocationOverlay= new MyLocationOverlay(mMapView);

061

        //设置定位数据

062

        mLocationOverlay.setData(locData);

063

        //添加定位图层

064

        mMapView.getOverlays().add(mLocationOverlay);

065

        mLocationOverlay.enableCompass();

066

        //修改定位数据后刷新图层生效

067

        mMapView.refresh();

068

 

069

    }

070

    //实现监听器

071

     public class MyLocationListenner implements BDLocationListener{

072

             

073

            @Override

074

            public void onReceiveLocation(BDLocationlocation){

075

                if (location== null)

076

                    return ;

077

                 

078

                locData.latitude=location.getLatitude();

079

                locData.longitude=location.getLongitude();

080

                //如果不显示定位精度圈,将accuracy赋值为0即可

081

                locData.accuracy=location.getRadius();

082

                locData.direction=location.getDerect();

083

                //更新定位数据

084

                mLocationOverlay.setData(locData);

085

                //更新图层数据执行刷新后生效

086

                mMapView.refresh();

087

                //是手动触发请求或首次定位时,移动到定位点

088

                 

089

                mMapController.animateTo(newGeoPoint((int)(locData.latitude*1e6),(int)(locData.longitude* 1e6)));

090

            }

091

             

092

            public void onReceivePoi(BDLocationpoiLocation){

093

                if (poiLocation== null){

094

                    return ;

095

                }

096

            }

097

        }

098

 

099

    @Override

100

    protected void onDestroy(){

101

        //TODOAuto-generatedmethodstub

102

        mMapView.destroy();

103

        if (mBMapMan!

= null){

104

            mBMapMan.destroy();

105

            mBMapMan= null;

106

        }

107

        super.onDestroy();

108

    }

109

 

110

    @Override

111

    protected void onPause(){

112

        //TODOAuto-generatedmethodstub

113

        mMapView.onPause();

114

        if (mBMapMan!

= null){

115

            mBMapMan.stop();

116

        }

117

        super.onPause();

118

    }

119

 

120

    @Override

121

    protected void onResume(){

122

        //获取位置管理者,视图根据位置监听更新位置

123

        mLocationOverlay.getMyLocation();

124

        mLocationOverlay.enableCompass();

125

        mMapView.onResume();

126

        if (mBMapMan!

= null){

127

            mBMapMan.start();

128

        }

129

        super.onResume();

130

    }

131

 

132

}

需要用到的jar包大家可以到XX地图api网站上下载。

主要依赖于下列包:

 

manifest.xml配置如下:

01

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

>

02

android="

03

    package="com.example.wenandroid"

04

    android:

versionCode="1"

05

    android:

versionName="1.0" >

06

 

07

    

largeScreens="true"

08

            android:

normalScreens="true"

09

            android:

smallScreens="true"

10

            android:

resizeable="true"

11

            android:

anyDensity="true">

12

    

13

     

14

    

15

        android:

minSdkVersion="3" />

16

 

17

    

name="android.permission.BAIDU_LOCATION_SERVICE"> 

18

    

name="android.permission.ACCESS_COARSE_LOCATION">

19

    

name="android.permission.ACCESS_FINE_LOCATION">

20

    

name="android.permission.ACCESS_WIFI_STATE">

21

    

name="android.permission.ACCESS_NETWORK_STATE">

22

    

name="android.permission.CHANGE_WIFI_STATE">

23

    

name="android.permission.READ_PHONE_STATE">

24

    

name="android.permission.WRITE_EXTERNAL_STORAGE">

25

    

name="android.permission.INTERNET" />

26

    

name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS">

27

    

name="android.permission.READ_LOGS">

28

    

name="android.permission.VIBRATE">

29

    

name="android.permission.WRITE_SETTINGS">

30

    

name="android.permission.CALL_PHONE">

31

    

name="android.permission.BAIDU_LOCATION_SERVICE">

32

    

name="android.permission.ACCESS_MOCK_LOCATION">

33

    

name="android.permission.ACCESS_GPS">

34

      

--授予设置手机屏幕权限 -->

35

    

name="android.permission.SET_WALLPAPER"/>

36

     

37

    

38

        android:

allowBackup="true"

39

        android:

icon="@drawable/first"

40

        android:

label="@string/app_name"

41

        android:

theme="@style/AppTheme" >

42

        

43

            android:

name="com.example.foreveross.office.MapActivity"

44

            android:

label="@string/app_name" >

45

            

46

                

name="android.intent.action.MAIN" />

47

 

48

                

name="android.intent.category.LAUNCHER" />

49

            

50

        

51

         

52

         

53

         

name="com.baidu.location.f" android:

enabled="true"

54

            android:

process=":

remote">

55

    

--        

56

                

name="com.baidu.location.service_v2.9">

57

            -->

58

        

59

    

60

界面只有一个mapview地图控件,在此列出activity_main.xml:

01

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

>

02

android="

03

    android:

layout_width="fill_parent"

04

    android:

layout_height="fill_parent"

05

    android:

orientation="vertical"

06

    >

07

     

08

    

id="@+id/bmapsView"

09

    android:

layout_width="fill_parent"

10

    android:

layout_height="fill_parent"

11

    android:

clickable="true" />

12

    >

13

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1