本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtube 频道。另外,想追踪更多相关技术资讯,欢迎到 脸书粉丝专页 按赞追踪喔~
今天我们来看看,在昨天 Google Map 范本范例当中,被加入了哪些程序,即可以快速完成地图标示的 APP。到时我们口罩地图专案,要加入 Google Map 地图应用,如法炮制即可。
昨天我们是透过范本的范例连结过来设定申请金钥,今天我们自己前往 Google API Console,登入 Google 帐号,选择新建专案或选旧有专案 → 凭证 → API 。即可以产生新的 key。
产生新的金钥後,可以点击金钥名,即可以进入该笔金钥进行设定,可以更改金钥名称、绑定APP套件名称与 SHA1 凭证指纹,防止别人冒用。
快速取得 SHA1 凭证指纹方法,可以点击 Android Studio 右侧的 Gradle 视窗,展开後可以找到 app -> Tasks -> android -> signingReport,直接执行此脚本,即可以取得本机正式、测试 keystore 等相关凭证指纹。
implementation 'com.google.android.gms:play-services-maps:17.0.0'
在 AndroidManifest.xml ,加入在 Google API Console 申请到的金钥。 需加入在 里面子项目中。
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
在 activity_maps.xml 加入 fragment 标签,最关键是 android:name 需要设定为:「com.google.android.gms.maps.SupportMapFragment」
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity" />
onCreate 起来获取 map 的 View 为 mapFragment,然後呼叫 getMapAsync 初始化地图。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_maps)
val mapFragment = supportFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
}
MapsActivity 实作 OnMapReadyCallback ,当 Map 准备好,则会回呼(CallBack) onMapReady,我们在里面透过地图提供的 addMarker 方法,加入一个雪梨的图钉座标。并透过 moveCamera 方法,将手机地图画面移动到此处。
class MapsActivity : AppCompatActivity(), OnMapReadyCallback {
...
...
...
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap
// Add a marker in Sydney and move the camera
val sydney = LatLng(-34.0, 151.0)
mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
}
}
HKT 线上教室
https://tw-hkt.blogspot.com/
Freepik
https://www.freepik.com/
地图物件
https://developers.google.com/maps/documentation/android-sdk/map?hl=zh-tw
那今天【iThome 铁人赛】就介绍到这边罗~
顺带一提,KT 线上教室,脸书粉丝团,会不定期发布相关资讯,不想错过最新资讯,不要忘记来按赞,追踪喔!也欢迎大家将这篇文章分享给更多人喔。
我们明天再见罗!!!掰掰~
<<: Day 27 - 成本估计与 Amazon DynamoDB
>>: [Day-27] R语言 - 分群应用(五) 分群预测 - 建模与诊断 ( Modeling and Diagnosis in R.Studio )
前言 目前标签页面的画面及功能已经完成,接下来继续新增「重复」页面,算是再熟悉一下TableView...
还记得第2天在做专案规划时,有提到一个目标「加密敏感资料实现资安管理」吗? 目前我们的密码还是一样...
昨天我们安装了Tenable Nessus 今天要来使用 首先打开我们的浏览器登入 https://...
从前几回的研究中,我已经学会 Lua 的函数宣告,也只是一个 function 变数,以及相关的语法...
内插搜寻法(Interpolation Search ),又称插补搜寻法,是二分搜寻法的改良版,二...