• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android studio 百度地图开发(2)地图定位

Android studio 百度地图开发(2)地图定位

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android studio百度云,android studio百度,android studio 地图,android studio,android studio官网等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android studio 百度地图开发(2)地图定位


Android studio 百度地图开发(2)地图定位

email:chentravelling@163.com

开发环境:win7 64位,Android Studio,请注意是Android Studio。

地图显示、工程配置请参考:Android studio 百度地图开发(1)配置工程、显示地图

一.我为百度做点事

最开始自己是从头到尾地写了一遍,但是始终不能成功定位,一直没找到原因,后来也是参考了百度官网上的Demo才弄出来,所以其中的代码,基本来自百度Demo。喜欢吐槽的朋友请键盘留情,然后悄悄飘过吧。

一直以来都是喜欢百度的,尽管百度的的确确不能和Google比。但是,在中国的科技氛围里,我觉得百度已经够好了,所以也贴一点百度地图定位SDK的产品优势。

最后,我想问问那些嘴里骂着百度心里又离不开百度的朋友:你为中国的科技、IT、社会做了什么?

\

二.定位SDK的应用

言归正传,先贴整个工程的代码,第三部分再解释说明。

(1)BaiDuMapActivity.java

package intvehapp.intvehapp;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatus;
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 android.app.Activity;
import android.os.Bundle;

public class BaiDuMapActivity extends Activity{
 /**
     * 定位SDK核心类
     */
    private LocationClient locationClient;
    /**
     * 定位监听
     */
    public MyLocationListenner myListener = new MyLocationListenner();
 /**
     * 百度地图控件
     */
    private MapView mapView;
    /**
     * 百度地图对象
     */
    private BaiduMap baiduMap;

    boolean isFirstLoc = true; // 是否首次定位

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_bai_du_map);
 /**
         * 地图初始化
         */
        //获取百度地图控件
        mapView = (MapView) findViewById(R.id.bmapView);
        //获取百度地图对象
        baiduMap = mapView.getMap();
        // 开启定位图层
        baiduMap.setMyLocationEnabled(true);
        /**
         * 定位初始化
         */
        //声明定位SDK核心类
        locationClient = new LocationClient(this);
        //注册监听
        locationClient.registerLocationListener(myListener);
        //定位配置信息
        LocationClientOption option = new LocationClientOption();
        option.setOpenGps(true); // 打开gps
        option.setCoorType("bd09ll"); // 设置坐标类型
        option.setScanSpan(1000);//定位请求时间间隔
        locationClient.setLocOption(option);
        //开启定位
        locationClient.start();
    }

    /**
     * 定位SDK监听函数
     */
    public class MyLocationListenner implements BDLocationListener {

        @Override
        public void onReceiveLocation(BDLocation location) {
            // map view 销毁后不在处理新接收的位置
            if (location == null || mapView == null) {
                return;
            }
            MyLocationData locData = new MyLocationData.Builder()
                    .accuracy(location.getRadius())
                    // 此处设置开发者获取到的方向信息,顺时针0-360
                    .direction(100).latitude(location.getLatitude())
                    .longitude(location.getLongitude()).build();
            baiduMap.setMyLocationData(locData);
            if (isFirstLoc) {
                isFirstLoc = false;
                LatLng ll = new LatLng(location.getLatitude(),
                        location.getLongitude());
                MapStatus.Builder builder = new MapStatus.Builder();
                builder.target(ll).zoom(18.0f);
                baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
            }
        }

        public void onReceivePoi(BDLocation poiLocation) {
        }
    }

    @Override
    protected void onPause() {
        mapView.onPause();
        super.onPause();
    }

    @Override
    protected void onResume() {
        mapView.onResume();
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        // 退出时销毁定位
        locationClient.stop();
        // 关闭定位图层
        baiduMap.setMyLocationEnabled(false);
        mapView.onDestroy();
        mapView = null;
        super.onDestroy();
    }

}

(2)activity_bai_du_map.xml:增加百度地图控件

 

 




    




(3)AndroidManifest.xml:增加百度地图SDK需要的权限、API_KEY和定位服务

 

 

<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="intvehapp.intvehapp">
    <!--{cke_protected}{C}%3C!%2D%2D%20%E7%99%BE%E5%BA%A6%E5%9C%B0%E5%9B%BEAPI%E6%89%80%E9%9C%80%E6%9D%83%E9%99%90%20%2D%2D%3E-->
    <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.ACCESS_COARSE_LOCATION">
    <!--{cke_protected}{C}%3C!%2D%2D%20%E8%AE%BF%E9%97%AE%E7%B2%BE%E7%A1%AE%E4%BD%8D%E7%BD%AE%E7%9A%84%E6%9D%83%E9%99%90%20%2D%2D%3E-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
    <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsrtl="true" android:theme="@style/AppTheme">
        <activity android:name=".BaiDuMapActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN">

                <category android:name=&



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android studio 百度地图开发(2)地图定位
  • Android studio 百度地图开发(1)配置工程、显示地图

相关文章

  • 2017-05-26drawable下的shape,drawableshape
  • 2017-05-26Android系统的五种数据存储形式(一),android数据存储
  • 2017-05-26安卓开源项目周报0405,安卓开源项目0405
  • 2017-05-26Activity的四种启动模式,activity四种模式
  • 2017-05-26Android之HTTP网络通信--GET传递,android--get
  • 2017-05-26Kotlin的扩展函数:扩展Android框架(KAD 08),kotlinandroid
  • 2017-05-26我的android学习经历13,android学习经历13
  • 2017-05-26React Native,reactnative
  • 2017-05-26菜鸟新闻2--设置沉浸式状态栏,新闻2--沉浸状态栏
  • 2017-05-26clipChildren属性,clipchildren

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • android:数据存贮方式-SharedPreference
    • Android Studio中找出不再使用的资源,androidstudio
    • RelativeLayout的位置属性总结,relativelayout总结
    • 初识genymotion安装遇上的VirtualBox问题,genymotionvirtualbox
    • xshell可以ping通但是不能远程服务器,putty可以远程
    • Android 工具包 xUtils 3.3.16,xutils3.3.16
    • Android实战技巧之四十九:Usb通信之USB Host
    • 手机IMEI获取,imei获取
    • Android--获取系统时间的方式介绍
    • Android studio使用gradle动态构建APP(不同的包,不同的icon、label),androidgradle

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有