Android中使用Google Map

在app的使用过程中,我们经常会跟地图进行交互,如果是海外的应用,那选择使用Google Map 是最合适的选择。

在Android中如何使用Google Map,这里做一个简要的说明。

Google API_KEY的申请

Google Map 的使用并不是免费的,一开始的就需要申请一个 Google API_KEY,申请教程地址在这里。

start

这个过程中需要提供信用卡的信息,但是有一定的试用过程,大家可以大胆的填写。

在绑定项目的时候,需要注意的是,每一个API_KEY都跟 Package namefingerprint 签名是相关的。

如果API_KEY 和这两个不一致的话,在程序启动的时候在,logcat下就会看到错误。

拿到了API_KEY 还要注意一个问题,如果debug和release 的签名不一样的话,可以在目录下建立一个debug和release 的文件夹,

如图:

在这里插入图片描述

显示地图位置

如果上面的key已经得到,那么编写地图的显示就显得没那么复杂了。

通常来说,都是在fragment 中显示地图信息,在这里建立一个Fragment

对应的xml信息如下:

<fragmentandroid:id="@+id/map"android:name="com.google.android.gms.maps.SupportMapFragment"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"tools:context="MapsFragment" />

这个fragment和其他的不一样,在于他的name,android:name="com.google.android.gms.maps.SupportMapFragment" 表示的是使用的是谷歌地图。

fragment 中,我们可以把地图映射出来,对他进行设置:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)val mapFragment = childFragmentManager.findFragmentById(R.id.map) as SupportMapFragmentmapFragment?.getMapAsync(this)}

当地图准备好以后,会调用onMapReady(map: GoogleMap) ,这时候我们可以获取手机的地理信息,让地图显示手机的当前位置。

    override fun onMapReady(map: GoogleMap) {map.isMyLocationEnabled = truefusedLocationProviderClient.lastLocation.addOnCompleteListener {val lastKnownLocation = LatLng(it.result.latitude,it.result.longitude)map.animateCamera(CameraUpdateFactory.newCameraPosition(setCameraPosition(lastKnownLocation)))}}

在这里插入图片描述
需要demo代码的可以私信我。

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

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

相关文章

主播岗位面试

一、自我介绍 在面试的开始阶段&#xff0c;你需要准备一个简洁而有力的自我介绍。这个自我介绍应该包括你的姓名、教育背景、工作经验以及你为何对这个主播职位感兴趣。这个自我介绍应该控制在1-2分钟之内&#xff0c;避免冗长的表述。 二、主播经历和特点 在这个环节&…

javaagent字节码增强浅尝

概述 javaagent 技术广泛应用于对代码的增强&#xff0c;比如统计方法执行时间、GC 信息打印、分布式链路跟踪等&#xff1b;实现方式包括 javassist 和 bytebuddy&#xff0c;bytebuddy 是对 javassist 的改进&#xff1b;类似于 spring 中的 AOP&#xff1b; Instrumentati…

京东数据运营-京东数据平台-京东店铺数据分析-2023年10月京东烘干机品牌销售榜

鲸参谋监测的京东平台10月份烘干机市场销售数据已出炉&#xff01; 10月份&#xff0c;烘干机市场整体销售上涨。鲸参谋数据显示&#xff0c;今年10月份&#xff0c;京东平台上烘干机的销量将近5万件&#xff0c;环比增长约77%&#xff0c;同比增长约22%&#xff1b;销售额将近…

1657. 确定两个字符串是否接近 --力扣 --JAVA

题目 如果可以使用以下操作从一个字符串得到另一个字符串&#xff0c;则认为两个字符串 接近 &#xff1a; 操作 1&#xff1a;交换任意两个 现有 字符。 例如&#xff0c;abcde -> aecdb操作 2&#xff1a;将一个 现有 字符的每次出现转换为另一个 现有 字符&#xff0c;并…

我的养生指南

作为一名程序员&#xff0c;一直坐在电脑前工作对身体造成很大的负担&#xff0c;引起颈椎病、近视、肥胖等问题&#xff0c;因此养生对于程序员来说非常重要。深有体会&#xff0c;不知各位大佬是否有体会 以下是我的养生指南&#xff1a; 做一些适量运动&#xff0c;保持身体…

XUbuntu22.04之OBS强大录屏工具(一百九十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Windows——安装WSL子系统

下载及安装 教程&#xff1a;https://zhuanlan.zhihu.com/p/35801201 报错解决&#xff1a; WSL安装无法打开&#xff08;WslRegisterDistribution failed with error: 0x800701bc…&#xff09; https://www.jianshu.com/p/e2df6d091f73 环境配置 WSL2 的开发环境配置 (基…

NX/UG二次开发—踩坑(边上点与面上点)

获取视图内遮挡面时&#xff0c;特别是与视图平行的面认为是可视面&#xff0c;但NX选择认为是非可视面&#xff0c;设计方案时只检查边上的点&#xff0c;发现一些面显示干涉遮挡&#xff0c;通过打印数据发现&#xff0c;以边上点为参考&#xff0c;获取面上点&#xff0c;会…

kubernetes(K8s)(Namespace、Pod、Deployment、Service资源的基本操作)-04

Namespace Namespace是kubernetes系统中的一种非常重要资源&#xff0c;它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下&#xff0c;kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中&#xff0c;可能不想让两个Pod之间进行互相的…

leetcode 18. 四数之和(优质解法)

代码&#xff1a; class Solution {public List<List<Integer>> fourSum(int[] nums, int target) {List<List<Integer>> listsnew ArrayList<>();int lengthnums.length;Arrays.sort(nums);for(int i0;i<length-4;){for(int ji1;j<lengt…

第十五届蓝桥杯(Web 应用开发)模拟赛 2 期-大学组(详细分析解答)

目录 1.相不相等 1.1 题目要求 1.2 题目分析 1.3 源代码 2.三行情书 2.1 题目要求 2.2 题目分析 2.3 源代码 3.电影院在线订票 3.1 题目要求 3.2 题目分析 3.3 源代码 4.老虎坤&#xff08;不然违规发不出来&#xff09; 4.1 题目要求 4.2 题目分析 4.3 源代码 …

gdbus使用G_BUS_TYPE_SYSTEM做开机自启服务

我是用我自己在Glib学习&#xff08;28&#xff09; gdbus最简单的例子_gdbus 函数回调-CSDN博客中写的例程&#xff0c;运行服务端和客户端都没有问题&#xff0c;这里使用的bus type是G_BUS_TYPE_SESSION&#xff0c;会话模式。 当我把写好的程序配置成systemd自启动的服务时…

宝塔环境备份到西部数码FSS

1、登陆宝塔面板-软件商店-第三方应用&#xff0c; 搜索ftp&#xff1a;找到FTP存储空间&#xff0c;点击安装 2、在软件商城-已安装&#xff0c;找到ftp存储空间&#xff0c;点击进入选项设置. 3、按照下图填写fss相关参数.这些信息可以在fss详情中查看.目录路径如果没有请先在…

JConsole与jvisualvm都无法检测到本地的java程序的解决办法

直接在jar包启动时添加命令&#xff1a; 例如 start cmd /k "java -jar xxx.jar -XX:PerfBypassFileSystemCheck" .bat文件启动jar包命令后面添加-XX:PerfBypassFileSystemCheck 启动后&#xff0c;再打开JConsole或jvisualvm都会立马显示这个app

CSS伪类伪元素?:hover,::before,::after使用(举例)

文章目录 什么是CSS伪类&#xff1f;什么是伪元素&#xff1f;怎么用伪元素&#xff1f;可以做些什么&#xff1f;::before&#xff0c;在标签选择器之前添加内容&#xff0c;::after正好与之相反::before&#xff0c;在类选择器之前添加内容&#xff08;:制作一个悬浮提示窗 参…

Cesium中对Cesium.Cesium3DTileset模型进行偏移

Cesium中对Cesium.Cesium3DTileset模型进行偏移 3D Tiles 是将用于流式传输3D内容&#xff0c;包括建筑物&#xff0c;树木&#xff0c;点云&#xff0c;矢量数据。3DTiles 数据集以分块&#xff0c;分级渲染&#xff0c;将大数据量三维数据以分块&#xff0c;分层的形式组织起…

ROM和RAM概念

一、存储器特性 1&#xff09;易失性&#xff1a;掉电数据会丢失&#xff0c;通常指RAM&#xff1b; RAM分为SRAM、DRAM SRAM&#xff1a;静态RAM&#xff0c;只要上电数据就不会丢失&#xff1b; DRAM&#xff1a;动态RAM&#xff0c;需要每隔一段事件刷新数据&#xff0c;否…

宽量程双计数器测量方法

如要测量计数器信号的数字频率或周期&#xff0c;可使用双计数器方法测量宽量程信号。该方法适于待测量信号的范围较广且整个范围都需要较高测量精度的情况。关于使用宽量程测量方法提高测量精度的详细信息&#xff0c;见量化误差章节。也可使用该方法测量比计数器时基频率更高…

linux磁盘已满,查看哪个文件占用多

使用df -h查看磁盘空间占用情况 使用sudo du -s -h /* | sort -nr命令查看那个目录占用空间大 然后那个目录占用多 再通过sudo du -s -h /var/* | sort -nr 一层层排查&#xff0c;找到占用文件多的地方 如果通过以上方法没有找到问题所在&#xff0c;那么可以使用 lsof |…

python 实用函数——collections模块之Counter()

collections模块之Counter() Counter: 便捷快速计数&#xff08;支持所有存储结构&#xff09;,将元素计数&#xff0c;并返回一个字典&#xff0c;key为元素&#xff0c;value为该元素的数量&#xff0c;与count不同&#xff0c;count() 只会记录输入元素的数量 演示&#x…