Android 集成google地图
在项目中添加谷歌地图
集成前的准备工作,可看上一篇博客Android 集成google地图 准备工作
在app build.gradle中添加下面的sdk,记得启用api
implementation 'com.google.android.gms:play-services-maps:17.0.1'
implementation 'com.google.maps.android:android-maps-utils:2.2.0'
在需要显示地图的地方,在布局中添加如下代码
<fragmentandroid:id="@+id/mapview"class="com.google.android.gms.maps.SupportMapFragment"android:layout_width="match_parent"android:layout_height="match_parent"/>
这样就可以显示出google地图来了,不过效果是这样
现在添加个定位,并显示到当前定位来.
在app build.gradle中添加,记得启用这个api
implementation 'com.google.android.gms:play-services-location:15.0.1'
在AndroidManifest.xm中添加如下权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在activityd的onCreate()中添加如下代码
val mapFragment: SupportMapFragment = supportFragmentManager.findFragmentById(R.id.mapview) as SupportMapFragment
mapFragment.getMapAsync(this)
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
实现onMapReady()
override fun onMapReady(p0: GoogleMap) {mGoogleMap = p0getDeviceLocation()
}
实现获取定位,并移动地图。需要先动态获取定位权限
var locationCallback: LocationCallback? = null
@SuppressLint("MissingPermission")
private fun getDeviceLocation() {try {val locationRequest = LocationRequest().apply {interval = 5000fastestInterval = 5000priority = LocationRequest.PRIORITY_HIGH_ACCURACY}ocationCallback = object: LocationCallback() {override fun onLocationResult(p0: LocationResult?) {if (p0 != null ){//获取到当前位置,将地图移至定位处并将地图放大14倍mGoogleMap?.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(p0.lastLocation.latitude, p0.lastLocation.longitude),14f))mGoogleMap?.uiSettings?.isMyLocationButtonEnabled = false//移除callBack,不然还会继续获取定位fusedLocationProviderClient?.removeLocationUpdates(locationCallback)val bitmap = BitmapFactory.decodeResource(this@GoogleMapDemoActivity.resources,R.drawable.icon_current_location)//清空之前添加的标记mGoogleMap?.clear()//添加当前位置的标记mGoogleMap?.addMarker(MarkerOptions().position(LatLng(lat, lng)).icon(BitmapDescriptorFactory.fromBitmap(bitmap)))} }override fun onLocationAvailability(p0: LocationAvailability?) {//当前定位不可用if (p0?.isLocationAvailable != true){}fusedLocationProviderClient?.removeLocationUpdates(locationCallback)}}fusedLocationProviderClient?.requestLocationUpdates(locationRequest,locationCallback,Looper.myLooper())}catch (e: Exception){}
}
运行效果如下
使用Geocoder反向地理编码
private fun latlngToAddress(lat: Double,lng: Double){val geocoder = Geocoder(this)try {val result = geocoder.getFromLocation(lat,lng,1)if (result != null && result.isNotEmpty()){val addressName = result[0].featureName}}catch (e: Exception){}
}
Android 集成google地图相关推荐
- android百度导航实现,Android 集成百度地图实现设备定位
Android 集成百度地图实现设备定位 步骤1: 申请android 端SDK : http://lbsyun.baidu.com/ 步骤2: 下载基础版SDK 步骤3: 下载示例程序 步骤4: 开 ...
- Android 集成百度地图之申请TTS授权最新版
Android 集成百度地图之申请TTS授权最新版. 前提:登录百度地图开放平台,且已创建好应用. 开发文档-Android 导航SDK-TTS授权申请. 这里有个坑,简单说下,进入http://yu ...
- Android 集成google map,Markers ,定位,聚合
集成谷歌地图 前期准备 1.注册谷歌账号,然后再开发者平台登录 开发者平台传送门(需翻墙) 谷歌地图的文档 2.进入控制台,新建项目 3.此时成功创建项目,接下来是添加API,因为谷歌将谷歌地图的功能 ...
- Android 集成 google 登录并获取 性别等隐私信息
前言 公司做海外产品的,集成的是 google 账号登录,账号信息.邮箱等这些不涉及隐私的按 google 的正常登录流程可以轻松实现 .但是一旦需要获取涉及隐私的信息就比较麻烦,文档也不是十分清晰, ...
- Android的Google地图开发
编写这个程序之前需要有一个Google 地图 扩展库在SDK中,一般来说,android 1.5中就已经有了.如果没有的话可以在这里下载: http://code.google.com/android ...
- 项目记录——为沙特客户Android开发Google地图应用
最近在给沙特客户所做的应用中需要用到地图,所以原来常用的百度地图就不能使用了,只好换成了Google地图.结果在开发过程中遇到了很多坑,折腾了不少时间终于搞定.这里特记录下之中的几个要点,让同学们有个 ...
- Android 集成百度地图AR识别SDK(二)
废话 今天我们开始集成百度地图AR识别SDK(后面简称AR SDK)的第二章,这一章我们主要讲Android Studio如何配置AR SDK 我们如果单单只看文档的话,很难看懂如何集成,我们需要结合 ...
- Android 集成google 和 facebook 登录
最近公司项目刚好集成了google 和 facebook 登录,中间遇到了一些问题,所以记录下来. 主要问题如下: 1)如何集成google 和 facebook 登录,主要参考官方文档. 2)应用上 ...
- Android 集成高德地图
需要完成效果:集成高德地图,实现定位功能,并且实时刷新位置,每25秒自动刷新位置. 布局: <?xml version="1.0" encoding="utf-8& ...
- android开发google地图
最近学习android的开发,在学习google地图开发的时候遇见一些问题,在此特地记录一下开发学习的步骤,也希望能帮助和我一样遇见问题的朋友.因为市面上的很多学习视频和博客 文章对这个的介绍很多都是 ...
最新文章
- 趋势畅想-搭载android系统的智能数码相机
- C/C++之Gcc常用参数
- 由动态分配和静态分配的数据在内存组成区别
- 开车走吗?朋友......
- idea 线程内存_Java线程池系列之-Java线程池底层源码分析系列(二)
- 协同过滤推荐算法-----向量之间的相似度
- 【HTML超浪漫的表白网页代码】不会编程也能制作送给女朋友的表白网站
- BeyondCompare4破解最佳实践
- Vivado时钟之间的三种关系
- P1116 车厢重组
- 康考迪亚计算机科学需要gre吗,康考迪亚大学研究生院化学工具专业录取条件
- photoshop 裁剪_如何在Photoshop中裁剪图像
- 《iOS防护02》破解ptrace防护
- 高速数字电路AC耦合电容HFSS仿真
- C 宇恒棋 大力猜想 神奇数学
- 制作适应手机网页、平板电脑(iPad)、电脑网页的三种方法
- c语言实现词法分析器+文法分析器(全代码)
- AI为职业病做了啥贡献,了解一下
- 会计 复式记账 财务会计 系统设计 数据库建模(待翻译)
- python 脚本退出
热门文章
- python opencv双目测距_使用OpenCV/python进行双目测距
- 解决VirtualBox无法安装增强工具
- PDF编辑技巧2:删除页面和添加页面
- 如何提高思考能力,(一个绝对能帮到你的科普)取自《思维混乱:是因为大脑没有结构》谢春霖
- VOIP Codec 三剑客之 ISAC/ILBC -- ISAC (6) Spectrum Encode 模块
- 购买计算机相关配件的会计分录,购买电脑配件自己组装电脑怎么写会计分录
- 安得一颗光明心——《王阳明大传》的读后感作文4100字
- java使用poi制作的ppt被损坏_poi操作ppt创建表格,结果却是这样?
- 在IT呆了好久了,给大家科普下这个行业的行话
- 记一次外接键盘win键失灵