30.Android之百度地图简单学习

今天用了下百度地图,简单写了一个例子,记录下。

一、申请AK(API Key)

    要想使用百度地图sdk,就必须申请一个百度地图的api key。申请流程挺简单的。

    首先注册成为百度的开发者,然后打开http://lbsyun.baidu.com/apiconsole/key/create这个网址,添加应用:

至于怎样获取数字签名(SHA1)和包名,这里有详细教程http://developer.baidu.com/map/index.php?title=androidsdk/guide/key,这里就不一一详述了。

接下来就是把下载下来的开发包添加到工程里面,也就是配置下地图SDK工程:

Eclipse工程配置方法

第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;

1.JPG

第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_vX_X_X.jar,确定后返回。

通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

注意:由于adt插件升级,若您使用Eclipse adt 22的话,需要对开发环境进行相应的设置,方法如下:

1. 在Eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态;

2. Project -> clean-> clean all .

Android Studio工程配置方法

第一步:在工程app/libs目录下放入baidumapapi_vX_X_X.jar包,在src/main/目录下新建jniLibs目录,放入libBaiduMapSDK_vX_X_X_X.so如下图所示,注意jar和so的前3位版本号必须一致,并且保证使用一次下载的文件夹中的两个文件,不能不同功能组件的jar或so交叉使用。

第二步:导入jar包。菜单栏选择File->Project Structor->Modules->Dependencies,点击+号,选择File dependency,选择jar包导入。

通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

 

二、工程例子

我的开发工具是eclipse,所以接下来的代码基于eclipse工具写的,接下来就是正文。

1. 将下载下来的开发包中的jar包和so文件添加到libs文件下,如图:

2. 在AndroidManifest.xml中添加开发秘钥和所需权限:

权限:

1 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2     <uses-permission android:name="android.permission.INTERNET" />
3     <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
4     <uses-permission android:name="android.permission.WAKE_LOCK" />
5     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
6     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
7     <uses-permission android:name="android.permission.GET_TASKS" />
8     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
9     <uses-permission android:name="android.permission.WRITE_SETTINGS" />

3. 在布局文件中添加地图控件:

1  <com.baidu.mapapi.map.MapView
2         android:id="@+id/bmapview"
3         android:layout_width="fill_parent"
4         android:layout_height="fill_parent"
5         android:clickable="true" />

4.修改MainActivity.java文件:

 1 package com.example.testmap;
 2 
 3 import com.baidu.mapapi.SDKInitializer;
 4 import com.baidu.mapapi.map.BaiduMap;
 5 import com.baidu.mapapi.map.MapView;
 6 import android.app.Activity;
 7 import android.os.Bundle;
 8 import android.view.Menu;
 9 import android.view.MenuItem;
10 
11 public class MainActivity extends Activity {
12 
13     // 百度地图控件
14     private MapView mMapView = null;
15     // 百度地图对象
16     private BaiduMap mBaiduMap = null;
17     
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21 
22         // 在使用SDK各组件之前初始化context信息,传入ApplicationContext
23         // 注意该方法要再setContentView方法之前实现
24         SDKInitializer.initialize(getApplicationContext());
25         setContentView(R.layout.activity_main);
26 
27         // 获取地图控件引用
28         mMapView = (MapView) findViewById(R.id.bmapview);
29         mBaiduMap = mMapView.getMap();  
30     }
31 
32     @Override
33     protected void onResume() {
34         super.onResume();
35         mMapView.onResume();
36     }
37 
38     @Override
39     protected void onPause() {
40         super.onPause();
41         mMapView.onPause();
42     }
43 
44     @Override
45     protected void onDestroy() {
46         mMapView.onDestroy();
47         mMapView = null;
48         super.onDestroy();
49     }
50 
51     @Override
52     public boolean onCreateOptionsMenu(Menu menu) {
53         CreateMenu(menu);
54         return true;
55     }
56 
57     private void CreateMenu(Menu menu) {
58         MenuItem mnu1 = menu.add(0, 0, 0, "显示卫星地图");{
59         }
60         MenuItem mnu2 = menu.add(0, 1, 1, "实时交通地图");{         
61         }
62         MenuItem mnu3 = menu.add(0, 2, 2, "普通地图 ");{     
63         }
64     }
65 
66     @Override
67     public boolean onOptionsItemSelected(MenuItem item) {
68         // Handle action bar item clicks here. The action bar will
69         // automatically handle clicks on the Home/Up button, so long
70         // as you specify a parent activity in AndroidManifest.xml.
71         if (item.getItemId() == 0) 
72         {
73             // 显示为卫星地图
74             mBaiduMap.setBaiduHeatMapEnabled(false);
75             mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
76         } 
77         else if (item.getItemId() == 1) 
78         {
79             // 实时交通地图
80             mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); 
81             mBaiduMap.setBaiduHeatMapEnabled(true);
82         } 
83         else if (item.getItemId() == 2) 
84         {
85             // 普通地图  
86             mBaiduMap.setBaiduHeatMapEnabled(false);
87             mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); 
88         }
89         return true;
90     }
91 
92 }

 

 5.运行效果:
点击menu键,有三种地图选择:

点击显示卫星地图:

点击实时交通地图:

回到普通地图:

转载于:https://www.cnblogs.com/benchao/p/5125362.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在datatable中,在指定位置插入列

假如dataset ds 里面已经存在了数据&#xff0c;当我们想在datatable中插入一列数据&#xff0c;可以用以下方法实现&#xff1a;ds.Tables[0].Columns.Add("star");ds.Tables[0].Columns["star"].SetOrdinal(0);这样“star”列就添加到datatable的第一列了…

python爬取b站弹幕_爬取B站弹幕并且制作词云

目录 SRE实战 互联网时代守护先锋&#xff0c;助力企业售后服务体系运筹帷幄&#xff01;一键直达领取阿里云限量特价优惠。 爬取弹幕 1. 从手机端口进入网页爬取找到接口 2.代码 import requests from lxml import etree import numpy as np urlhttps://api.bilibili.com/x/v1…

myeclipse始终build workspace

之前我的myeclipse运行某个项目的时候&#xff0c;总是不停的buildworkspace&#xff0c;而且稍微改动一个(不管是java类还是jsp)都会加载接近1分钟甚至更久&#xff0c;从网上搜了好久&#xff0c;先总结下搜的多数方法 1、叫你去掉.project文件的一段话 <buildCommand>…

python控制灯_Python 控制树莓派 GPIO 输出:控制 LED 灯

树莓派 GPIO 控制输出的入门应该都是从控制 LED 灯开始的吧。 树莓派版本&#xff1a;Model 3B 树莓派系统&#xff1a;Raspbian Stretch with desktop and recommended software&#xff0c;April 2019 连接装置 准备一个 LED 灯&#xff0c;两个两头都为母的杜邦线。对照下图…

图论:弦图最小点染色

弦图的定义&#xff1a;当图中任意长度大于3的环都至少有一个弦时&#xff0c; 一个无向图称为弦图 不存在四角、五角等关系就说明这个图是一个弦图 题目问的是&#xff0c;任何一对相互认识的人不可以组一队&#xff0c;问最多可以组多少对 所有的人构成的关系图是一个弦图&am…

报错型sql注入原理分析

0x00&#xff1a;前言关于sql注入&#xff0c;经久不衰&#xff0c;现在的网站一般对sql注入的防护也相对加强了&#xff0c;2016年的***测试报告中&#xff0c;出现最多的是xss&#xff08;跨站脚本***&#xff09;和明文传输等&#xff0c;但是对sql注入的利用方式&#xff0…

matlab矩阵 0,matlab zeros初始化为0矩阵

zeros为创建一个值为零的数组&#xff1b;如matrix1zeros(4,5);%4*5的矩阵&#xff0c;矩阵中每个元素都为0matrix2zeros(4,5,3);%4*5*3的数组&#xff0c;数组中每个元素都为0下面举一个将图像存到数组的例子对RGB图片1.jpg&#xff0c;2.jpg&#xff1b;大小为700*500*3创建4…

HDU 2199

人生中第一道搜索题 精度精度、&#xff01;&#xff01;&#xff01; 1 #include<iostream>2 #include<algorithm>3 #include<cmath>4 #include<cstdio>5 using namespace std;6 double f(double x)7 {8 return 8*pow(x,4.0)7*pow(x,3.0)2*pow(x,…

python文件编译_编译Python文件

编译Python文件 一、编译Python文件 为了提高加载模块的速度&#xff0c;强调强调强调&#xff1a;提高的是加载速度而绝非运行速度。python解释器会在__pycache__目录中下缓存每个模块编译后的版本&#xff0c;格式为&#xff1a;module.version.pyc。通常会包含python的版本号…

SDN-博客收集

1、云网融合的多云网络转载于:https://www.cnblogs.com/snowwhite/p/9624404.html

php cookie 字串,php入门(字符串,cookie,session)

php入门(字符串,cookie,session)&#xff0c;有需要的朋友可以参考下。字符串获取字符串的长度: strlen()函数获取中文字长echo mb_strlen($str,”UTF8”);英文字符串截取$stri love you;复制代码//截取love这几个字母echo substr($str, 2, 4);//为什么开始位置是2呢&#xff0…

批处理命令Start

2019独角兽企业重金招聘Python工程师标准>>> 运行hello.exe&#xff08;最小化&#xff09; start /MIN hello.exe 用记事本打开readme.txt&#xff08;最大化&#xff09; start /MAX notepad readme.txt 打开网页 start http://www.baidu.com/ 调用另外一个脚本&…

vim乱码的解决

解决vim文件乱码&#xff0c;打开文件乱码&#xff0c;菜单&#xff0c;提示信息乱码&#xff1a; 有四个跟字符编码方式有关的选项&#xff0c;encoding、fileencoding、fileencodings、termencoding 在linux中修改.vimrc&#xff08;在win中是_vimrc&#xff09;A&#xff0c…

arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例

[1.rar] - QQ连连看的源码.单消秒杀挂机等功能喜欢的朋友请拿去研究 [qqCHAR.rar] - qq 验证码识别程序 可以叫准确的识别出qq登陆前的验证码 [1.rar] - 本书以Visualc作为开发语言&#xff0c;结合大量实例&#xff0c;详细介绍了利用Arcobjects组件进行GIS二次开发的方法和过…

Linux命令-自动挂载文件/etc/fstab功能详解

一、/etc/fstab文件的作用磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中&#xff0c;否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容&#xff0c;根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文…

微分方程在matlab中的实现,Matlab微分方程参数优化的Forcal实现

FCC文件缺省设置&#xff1a;(XNote请修改为X轴单位) (YNote请修改为Y轴单位)(AutoY1) (XMin0) (XMax1) (YMin0) (YMax1)(BorderPixels60) (MultiplyX1) (MultiplyY1) (Grid0) (DivideXY10) (XYNumWidth3) (DataMax2)(ForMax50) (LoadDll)[CODE]// 通用设置&#xff1a;// (XNo…

常用命令

1.在控制台下关闭Java进程&#xff1a;taskkill /f /im java.exe转载于:https://www.cnblogs.com/super90/p/5133906.html

一、在windows环境下修改pip镜像源的方法(以python3为例)

在windows环境下修改pip镜像源的方法(以python3为例) 1.在windows文件管理器中,输入 %APPDATA% 2.会定位到一个新的目录下&#xff0c;在该目录下新建pip文件夹&#xff0c;然后到pip文件夹里面去新建个pip.ini文件 3.在新建的pip.ini文件中输入以下内容&#xff0c;搞定 [glob…

得到选择框句柄 怎么操作_电脑版微信怎么多开?最简单的三种电脑版微信多开教程...

​在现实中的我们在网络上却又很多张脸&#xff0c;多开微信很多人都是需要的&#xff0c;这里就介绍3个方法给大家多开。方法1&#xff1a;BAT文件鼠标右键单击微信图标选择 属性在属性选项夹内复制 “目标”例如我的是("D:Program Files (x86)TencentWeChatWeChat.exe&q…

php起始符大全,PHP 符号大全

注解符号:// 单行注解/* */ 多行注解引号的使用’ ’ 单引号,没有任何意义,不经任何处理直接拿过来;" "双引号,php动态处理然后输出,一般用于变量.变量形态:一种是True 即 真的;另一种是False 即假的常见变量形态:string 字串(数字\汉字\等等)int…