百度地图

来源:互联网 发布:速卖通辅助软件 编辑:程序博客网 时间:2024/05/04 04:56


//MyApp

import com.baidu.mapapi.SDKInitializer;

import android.app.Application;

public class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        SDKInitializer.initialize(getApplicationContext());
    }
    
}

//setContentView(R.layout.activity_main);上加

SDKInitializer.initialize(getApplicationContext());







//以下是绘制一张简单的地图

public class Myfragment1 extends Fragment{

    private MapView mMapView;
    private BaiduMap bm;    
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        
        View view=inflater.inflate(R.layout.frag3, null);
        mMapView = (MapView)view.findViewById(R.id.mapView);
        bm = mMapView.getMap();
        bm.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        return view;
        
    }    
    
    

    @Override
    public void onResume() {
        mMapView.onResume();
        super.onResume();
    }
    
    @Override
    public void onPause() {
        mMapView.onPause();
        super.onPause();
    }
    
    @Override
    public void onDestroy() {
        mMapView.onDestroy();
        super.onDestroy();
    }

 






 

//以下是绘制带定位的地图

package com.bd.fragment;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
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;
import com.example.daohang.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Myfragment2 extends Fragment{
    private MapView mapView;
    private BaiduMap map;
    private LocationClient loc;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v=inflater.inflate(R.layout.fragment2, null);
        mapView = (MapView) v.findViewById(R.id.map);
        map = mapView.getMap();
        map.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        //开启定位图层
        map.setMyLocationEnabled(true);
        //开启定位方法
        getLoc();
        return v;
    }
    private void getLoc() {
        //获得定位对象
        loc = new LocationClient(getActivity());
        //设置定位监听
        loc.registerLocationListener(new MyLocListener());
        //设置定位参数
        LocationClientOption option = new LocationClientOption();
        option.setOpenGps(true);
        option.setCoorType("bd0911");
        option.setScanSpan(1000);
        loc.setLocOption(option);
        loc.start();
    }
    
    private class MyLocListener implements BDLocationListener{
        @Override
        public void onReceiveLocation(BDLocation arg0) {
            if(arg0 == null || map == null){
                return;
            }
            //设置定位数据
            MyLocationData data = new MyLocationData.Builder()
                .accuracy(1000)
                .direction(100)
                .latitude(arg0.getLatitude())
                .longitude(arg0.getLongitude())
                .build();
            //加载数据
            map.setMyLocationData(data);
            //创建点坐标
            LatLng ll = new LatLng(arg0.getLatitude(), arg0.getLongitude());
            //更新地图状态
            MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
            map.setMapStatus(update);
        }
    }
    
    @Override
    public void onResume() {
        mapView.onResume();
        super.onResume();
    }
    
    @Override
    public void onPause() {
        mapView.onPause();
        super.onPause();
    }
    
    @Override
    public void onDestroy() {
        mapView.onDestroy();
        super.onDestroy();
    }
}


//布局文件

<com.baidu.mapapi.map.MapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true"
        />





//权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.map_dingweis"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <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.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_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <!-- 这个权限用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>
    <!-- 这个权限用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>
    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
    </uses-permission>
    <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
    </uses-permission>
    <!-- 用于读取手机当前的状态 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>
    <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <!-- 访问网络,网络定位需要上网 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- SD卡读取权限,用户写入离线定位数据 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    
    <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="DD279b2a90afdf0ae7a3796787a0742e" />
        <activity
            android:name="com.example.map_dingweis.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>
        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
        </service>
    </application>

</manifest>


0 0
原创粉丝点击