天地图 android studio,AndroidStudio 加载 天地图 (2019年后开发授权申请)
本文主要内容讲述从申请天地图开发授权到AndroidStudio3.0加载天地图官网快速入门Demo的整个过程。对于刚出入AndroidStudio和天地图开发的小白有一定的帮助。
1.申请天地图密钥Key
天地图官网(http://lbs.tianditu.gov.cn/)注册,申请个人开发者,登录控制台,创建Android应用程序。
1.1获取发布版SHA1
首先你要知道自己的AndroidStudio安装路径下的keytool.exe工具在哪,比如我的路径E:\Android\Android Studio\jre\bin\keytool.exe
之后Win+R →cmd→打开控制台,进入到E:\Android\Android Studio\jre\bin路径下
输入以下代码
keytool.exe -list -v -keystore [路径]
注意上述代码中间的空格,最后的路径是你的debug.keystore所在路径,windows系统,路径一般在
C:\Users\Administrator\.android\debug.keystore
完整代码:keytool.exe -list -v -keystore C:\Users\Administrator\.android\debug.keystore
回车
输入密钥:android
把SHA1中的内容写进1.1中。
1.2获取开发版SHA1
首先你要有一个安卓软件签名文件,AndroidStudio如何生成签名文件自行百度(给个链接),将生成的*****.jks文件路径记录下来。
还在刚才的控制台窗口,写以下代码:
keytool.exe -list -v -keystore [.jks路径]
比如我的路径这样写:
keytool.exe -list -v -keystore C:\Users\Administrator\AndroidStudioProjects\bdhapk.jks
输入密钥:你设置签名文件时的密码
回车
将此处的SHA1写在1.2处
1.3获取包名
这里指的是你用AndroidStudio创建的项目的包,可再项目配置文件AndroidManifest.xml中看到package="包名",复制过去写进1.3即可,比如
package="com.example.administrator.tiandituaddmap1">,此处的包名为com.example.administrator.tiandituaddmap1
2.添加天地图API包
下载API
解压以后,AndroidStudio切换Project目录,把.jar文件复制到项目的app\libs文件下,在app\src\main文件夹下新建jniLibs文件夹,必须是这个名字,要注意。将剩余的四个文件夹复制到jniLibs文件夹下,菜单栏-build-rebuild project。等待
如果你用的AndroidStudio编译版本在23以下,此时按照官网快速入门Demo即可实现天地图加载。
如果你的编译版本在23以上,需要再做一下处理。
3.动态获取权限
编译版本在23以上后,不仅要在AndroidManifest.xml文件中写入需要权限外,还需要再java代码中获取权限(敏感权限,在此不做区别,将权限在java中重新获取一遍),直接放代码,可对照自行修改。
package com.example.administrator.tiandituaddmap1;
import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.tianditu.android.maps.GeoPoint;
import com.tianditu.android.maps.MapController;
import com.tianditu.android.maps.MapView;
public class MainActivity extends AppCompatActivity {
private MapView mapView;
//在API23+以上,不仅要在AndroidManifest.xml里面添加权限 还要在JAVA代码中请求权限:
// Storage Permissions
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.INTERNET,
Manifest.permission.CALL_PHONE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在加载布局之前获取所需权限
addpermission();
setContentView(R.layout.activity_main);
init();
}
public void addpermission(){
int permission = ActivityCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE);
}
}
public void init(){
new Thread(){
@Override
public void run() {
mapView=(MapView)findViewById(R.id.main_mapview);
//启用内置的地图缩放按钮
mapView.setBuiltInZoomControls(true);
//得到mapview的控制权,可以用它控制和驱动平移和缩放
MapController mapController=mapView.getController();
//用给定的经纬度构造一个GeoPoint,单位是微度(度*1E6)
GeoPoint point=new GeoPoint((int)(39.915*1E6),(int)(116.404*1E6));
//设置地图中心点
mapController.setCenter(point);
//设置地图等级
mapController.setZoom(12);;
}
}.start();
}
}
需要注意的一点是,权限的获取要放在加载布局文件之前。
至此,问题已被解决。可以运行程序,加载天地图。
结果如下图
天地图 android studio,AndroidStudio 加载 天地图 (2019年后开发授权申请)相关推荐
- Android studio 使用心得(六)---android studio 如何加载.so文件
2019独角兽企业重金招聘Python工程师标准>>> 之前一直没怎么注意,以为.so文件android为像eclipse一样直接加载,但是直到昨天我在android studio上 ...
- arcgis android 天地图,Arcgis runtime for Android 100.5 加载天地图
说明一下,什么时候加载高德地图,什么时候加载天地图 使用原生定位或者使用arcgis提供的LocationDisplay的定位时,需要加载天地图,因为原生定位返回的坐标是wgs84的坐标,而高德地图是 ...
- 天地图专题一:加载天地图
最近公司的项目到了尾声.总结一下项目中的一些技术.其中有涉及到天地图的部分. 类似百度地图,google地图. 我们要用一些它的公共接口,实现一些我们的效果. 比如在地图上显示我们的设备的位置,范围 ...
- ol xyz 加载天地图_OpenLayer学习之加载天地图
一.OpenLayers 3 中有一个对应的数据源(ol.source)类 – ol.source.TileImage,但是天地图的切片方式和google地图的切片的方式一样, OpenLayer定义 ...
- Android Studio Webview加载assets本地文件
1.新建assets资源文件 右键单击main目录,选择New>Folder>Assets Folder. 勾选Change Folder Location可改变其默认路径 在Assets ...
- android开发中dx.jar,Android Studio:无法加载dx.jar
当我在Android Studio中运行我的模块时,我收到此错误: 错误:Android Dex:[GradleDevBuild]无法加载dx.jar 我已经无休止地搜索了一个在线解决方案,但一切都与 ...
- Vue项目嵌入天地图专题一:加载天地图
公司近期的项目有用到天地图,之前接触过百度地图没有接触过天地图.所以根据项目的要求写一个专题来记录下 1.我们用的是南京天地图,首先是引入天地图所需的各种文件,因为我们的项目是vue的项目所以,引入的 ...
- android studio日历小程序,android studio无法加载日历界面
LayoutInflater inflater= (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_S ...
- Android动态替换dex,Android DexClassLoader动态加载与插件化开发
参考链接: 一. 基本概念和注意点 1.1 首先需要了解一点:在Android中可以动态加载,但无法像Java中那样方便动态加载jar 原因:Android的虚拟机(Dalvik VM)是不认识Jav ...
最新文章
- Nginx对某个文件夹或整个站点进行登录认证的方法
- C 编程异常 — /usr/bin/ld: 找不到 -lm
- [转载] NumPy Beginner‘s Guide 2e 带注释源码 七、NumPy 特殊例程
- Android Studio中R无法找到res/raw文件夹
- 数模笔记:蒙特卡洛模型
- web前端开发常用的几种图片格式及其使用规范
- oracle dbf文件读取,读取oracle数据表,导出到DBF文件。
- OpenLayers 3实践与原理探究3-ol3一个完整的例子
- 【react+umi】国际化配置:浏览器默认英文,如何让工程默认语言为中文?
- DayDayUp:佛说:有果必有因。 黑格尔说:世界上没有无缘无故的爱,也没有无缘无故的恨。
- 小米9卡刷Android 11开发版并安装系统证书抓包
- 域名证书到期监控告知
- might和could的区别用法_cancould和maymight的用法有什么区别?
- jeeplus2.0 ani 版 定时任务的创建
- SpringCloud | 第二章: 注册中心 Eureka
- yum 私有仓库搭建
- Vscode extensions开发
- 中国健康与营养调查数据(chns)
- 如何进行Modbus 通讯测试
- 三容水箱液位控制系统_三容水箱液位控制系统的设计与仿真
热门文章
- 一周年感谢信 | 黑萤科技赖志宇:志同者将道合一处
- 快速学习正则表达式,不用死记硬背,示例让你通透(上篇)
- 嵌入式linux进行视频监控,嵌入式Linux下的视频监控解决方案
- vertical-align详解
- 广东迅视资管 长沙青年创客推荐“励”字为2020湖南年度字
- 关机切换用户后显示远程计算机,系统远程关机权限的设置
- 事件抽取与事理图谱(一)
- 以马原的视角浅谈IP地址的发展——IPv4、IPv6、NAT
- Android 模拟一个电子画板同屏的效果
- layout_weight 小白的理解之我的地盘听我的!(二)