iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
Mobile Development

Google Maps SDK for Android 與 GIS App 開發筆記系列 第 19

Day 19: Maps SDK for Android Utility Library 介紹與環境建置

  • 分享至 

  • xImage
  •  

到昨天為止,我們已經大致上把 Google Maps SDK for Android 的主要功能看完了。

在接下來幾天的文章中,我們會把重心放在 Maps SDK for Android Utility Library

主要功能

簡單來說,Maps SDK for Android Utility Library 像是一個巨大的工具包,裡面提供許多常見的工具,讓我們在實作 Google Maps 的相關功能時,能夠不用重複造輪子。

像是在 Day 13: Google Maps SDK for Android–自訂 Marker 外觀 中,我們就有使用 Library 裡的 IconGenerator 這個類別,來產生客製化的 Marker Icon。

而主要幾個核心的功能有

  • GeoJSON 解析
    • 將 GeoJSON 的資料轉換成易於操作的物件 GeoJsonLayer,並快速的加入到 GoogleMap 中。
  • KML 解析
    • KML 是一種基於 XML 的格式,跟 GeoJSON 一樣,是常見的 GIS 資料格式。而 Utility 中也有提供對應的 KmlLayer 物件,讓我們可以方便的將空間資料加入到地圖上。
  • HeatMap 熱視圖
    • 以顏色深淺漸層來表現資料分佈與強度的一種地圖。
    • 透過 Utility HeatmapTileProvider 類別可以輕鬆地呈現。
  • Cluster 標記叢集
    • 這個大概是最常見的一種應用功能,它可以讓位置相鄰的 Marker 自動聚合。當圖面需要展示大量的 Marker時,這是一個很好的呈現方式。

以上就是 Utility Library 中常使用的功能,這些功能也會在後續幾天的文章中跟大家介紹。

套件引用

這部分其實在 Day 13 時有稍微提過,不過在這裡還是再次說明一下。

Utility Library 的引用,原則上只需要在 Module Level 的 build.gradledependency,加入下面這些就可以了。

// Utilities for Maps SDK for Android 
implementation 'com.google.maps.android:android-maps-utils:3.5.3'

// 最新版本的 Maps SDK for Android
implementation 'com.google.android.gms:play-services-maps:<latest-version>'

另外其實還需要 Google Play Service ,但用這個 Library 都會跟 Google Maps SDK for Android 一起使用,所以應該是不會忘了加上它。

如果是 Kotlin 的專案,官方也建議加入以下的 Kotlin Extensions 以解放 Kotlin 的語法糖。

// 可加可不加的 Kotlin 語言擴充支援
implementation 'com.google.maps.android:maps-utils-ktx:<latest-version>'

KTX 的最新版本可看這裡

開源社群

Utility Library 是開源的專案,所有的 Source Code 都在 Github 上,如果使用上有問題,除了上 StackOverflow 找答案外,也可以發 Issue 向上面的大神們求助。當然,如果你有發現 bug 或是其他想調整的,也可以嘗試發發 request 造福社群~

小結

以上就是今天對 Utility Library 的簡短介紹,後續幾天將會分別針對功能,提供更詳細的說明與範例,還請大家多多賜教。

那就先這樣啦~ 明天見!!/images/emoticon/emoticon12.gif


上一篇
Day 18: Google Maps SDK for Android–相機視角 Camera
下一篇
Day 20: Maps SDK for Android Utility–GeoJSON 套疊
系列文
Google Maps SDK for Android 與 GIS App 開發筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言