iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
Mobile Development

iOS Developer Learning Android系列 第 22

iOS Developer Learning Android. Lesson 22 - Google Map (讀萬卷書、行萬里路)

  • 分享至 

  • xImage
  •  

⚠️⚠️⚠️跟MKMapView最大的不同就是,Google Map不是想用就可以用的,必須去申請金鑰

本日效果

實作步驟

  1. 去Gallery生一個Map Activity
  2. AS就會自動幫你加權限
  3. 然後google_maps_api.xml就會要求你去生KEY
    1. 把xml裡面的網址貼到瀏覽器
    2. 一直下一步就好了
    3. 再把key貼回來XML(debug跟release是不一樣的XML)
  4. 畫面:自動生成一個com.google.android.gms.maps.SupportMapFragment
    (另外還有一種元件是com.google.android.gms.maps.MapView)
  5. 程式碼
    1. 先啟用:mMap.setMyLocationEnabled(true);
    2. 然後AS就會逼你檢查有沒有申請權限(很合理)
    3. 但是每個用到定位的地方都要我加這個判斷,就有點變態了吧
      if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
      (其實只要在func的前一行加@SuppressLint("MissingPermission")就可以不用)
    4. getSystemService(Context.LOCATION_SERVICE)取得locationManager
    5. 用locationManager.requestLocationUpdates去定位
    6. 用locationManager.removeUpdates(this)停止定位
    7. 移動到想去的經緯度
    LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 12);
    mMap.animateCamera(cameraUpdate);
  1. 補充,我的模擬器是不能測的

掃雷大隊

當你看到這個畫面,恭喜你,卡關了

卡超久才發現
AS在google_maps_api.xml幫你生的網址所帶的Package name不一定正確....
在金鑰設定裡補上正確的就好了(同理多module要設應該也是在這邊)

如果有人想看怎麼在安卓裡找出你附近有哪些滷肉飯的請留言XD

呼應30天30碗平民魯肉飯完食! 系列(人家都完賽了說...)

參考資料

今天的範例程式

可以去 https://github.com/mark33699/IDLA 看一下順便給顆⭐️


如果你喜歡我的影片別忘了按讚分享加訂閱,開啟紅色的小鈴鐺,我們明天見~


上一篇
iOS Developer Learning Android. Lesson 21 - 指紋辨識 (不能靠臉我靠雙手可以吧)
下一篇
iOS Developer Learning Android. Lesson 23 - 本地儲存 (可以不要用SQL嗎?)
系列文
iOS Developer Learning Android30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言