本文主要内容讲述从申请天地图开发授权到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年后开发授权申请)相关推荐

  1. Android studio 使用心得(六)---android studio 如何加载.so文件

    2019独角兽企业重金招聘Python工程师标准>>> 之前一直没怎么注意,以为.so文件android为像eclipse一样直接加载,但是直到昨天我在android studio上 ...

  2. arcgis android 天地图,Arcgis runtime for Android 100.5 加载天地图

    说明一下,什么时候加载高德地图,什么时候加载天地图 使用原生定位或者使用arcgis提供的LocationDisplay的定位时,需要加载天地图,因为原生定位返回的坐标是wgs84的坐标,而高德地图是 ...

  3. 天地图专题一:加载天地图

    最近公司的项目到了尾声.总结一下项目中的一些技术.其中有涉及到天地图的部分. 类似百度地图,google地图. 我们要用一些它的公共接口,实现一些我们的效果.  比如在地图上显示我们的设备的位置,范围 ...

  4. ol xyz 加载天地图_OpenLayer学习之加载天地图

    一.OpenLayers 3 中有一个对应的数据源(ol.source)类 – ol.source.TileImage,但是天地图的切片方式和google地图的切片的方式一样, OpenLayer定义 ...

  5. Android Studio Webview加载assets本地文件

    1.新建assets资源文件 右键单击main目录,选择New>Folder>Assets Folder. 勾选Change Folder Location可改变其默认路径 在Assets ...

  6. android开发中dx.jar,Android Studio:无法加载dx.jar

    当我在Android Studio中运行我的模块时,我收到此错误: 错误:Android Dex:[GradleDevBuild]无法加载dx.jar 我已经无休止地搜索了一个在线解决方案,但一切都与 ...

  7. Vue项目嵌入天地图专题一:加载天地图

    公司近期的项目有用到天地图,之前接触过百度地图没有接触过天地图.所以根据项目的要求写一个专题来记录下 1.我们用的是南京天地图,首先是引入天地图所需的各种文件,因为我们的项目是vue的项目所以,引入的 ...

  8. android studio日历小程序,android studio无法加载日历界面

    LayoutInflater inflater= (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_S ...

  9. Android动态替换dex,Android DexClassLoader动态加载与插件化开发

    参考链接: 一. 基本概念和注意点 1.1 首先需要了解一点:在Android中可以动态加载,但无法像Java中那样方便动态加载jar 原因:Android的虚拟机(Dalvik VM)是不认识Jav ...

最新文章

  1. Nginx对某个文件夹或整个站点进行登录认证的方法
  2. C 编程异常 — /usr/bin/ld: 找不到 -lm
  3. [转载] NumPy Beginner‘s Guide 2e 带注释源码 七、NumPy 特殊例程
  4. Android Studio中R无法找到res/raw文件夹
  5. 数模笔记:蒙特卡洛模型
  6. web前端开发常用的几种图片格式及其使用规范
  7. oracle dbf文件读取,读取oracle数据表,导出到DBF文件。
  8. OpenLayers 3实践与原理探究3-ol3一个完整的例子
  9. 【react+umi】国际化配置:浏览器默认英文,如何让工程默认语言为中文?
  10. DayDayUp:佛说:有果必有因。 黑格尔说:世界上没有无缘无故的爱,也没有无缘无故的恨。
  11. 小米9卡刷Android 11开发版并安装系统证书抓包
  12. 域名证书到期监控告知
  13. might和could的区别用法_cancould和maymight的用法有什么区别?
  14. jeeplus2.0 ani 版 定时任务的创建
  15. SpringCloud | 第二章: 注册中心 Eureka
  16. yum 私有仓库搭建
  17. Vscode extensions开发
  18. 中国健康与营养调查数据(chns)
  19. 如何进行Modbus 通讯测试
  20. 三容水箱液位控制系统_三容水箱液位控制系统的设计与仿真

热门文章

  1. 一周年感谢信 | 黑萤科技赖志宇:志同者将道合一处
  2. 快速学习正则表达式,不用死记硬背,示例让你通透(上篇)
  3. 嵌入式linux进行视频监控,嵌入式Linux下的视频监控解决方案
  4. vertical-align详解
  5. 广东迅视资管 长沙青年创客推荐“励”字为2020湖南年度字
  6. 关机切换用户后显示远程计算机,系统远程关机权限的设置
  7. 事件抽取与事理图谱(一)
  8. 以马原的视角浅谈IP地址的发展——IPv4、IPv6、NAT
  9. Android 模拟一个电子画板同屏的效果
  10. layout_weight 小白的理解之我的地盘听我的!(二)