BÀI 50 - TÍCH HỢP GOOGLE MAP TRONG LẬP TRÌNH ANDROID

  • Đầu tiên, trong Android Studio: Tools >> SDK Manager >> SDK Tools >> tick vào Google Play services

  • Làm theo như hình và nếu kết quả như hình dưới thì ok.

  • Tiếp theo làm như bên dưới nè. Đây là cách để lấy API mà Google cung cấp cho dự án của bạn

  • Truy cập vào Google Cloude Platform >> truy cập vào API Library

  • Tại tab API Library, tiến hành các bước như bên dưới để tạo API Key Map cho ứng dụng

  • Tiếp theo, là bước nhập Package Name và mã SHA1 của ứng dụng.

  • Nhập xong thì nhấn Done Save lại. Vậy là xong phần tạo API Map rồi!

Tích hợp google map vào ứng dụng android

  • Mở Gradle Scripts/build.gradle (Module:app) và thêm đoạn code sau vào trong dependencies, sau đó chọn “Sync Now

implementation 'com.google.android.gms:play-services-maps:17.0.1'

  • Mở app/manifests/AndroidManifest.xml và thêm các đoạn code sau

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

  • Tiếp tục nhập đoạn code sau trước thẻ đóng </application>

<meta-data

android:name="com.google.android.maps.v2.API_KEY"

android:value="Nhập API key mà bạn đã tạo trước đó" />

  • Trong file xml mà muốn show giao diện Map. Thêm fragment bên dưới vào trong thẻ chính của xml

<fragment

android:id="@+id/map"

android:layout_width="match_parent"

android:layout_height="match_parent"

class="com.google.android.gms.maps.SupportMapFragment" />

  • Mở app/java/advanced.android/MainActivity.java cài đặt interface OnMapReadyCallback, tham chiếu SupportMapFragment, thiết lập LatLng là TP.HCM và CameraPosition. Bên dưới là full code của MainActivity.java

private void createMap() {

SupportMapFragment smf = (SupportMapFragment) getSupportFragmentManager()

.findFragmentById(R.id.map);

smf.getMapAsync(this);

}

@Override

protected void onResume() {

super.onResume();

createMap();

}

@Override

public void onMapReady(GoogleMap googleMap) {

LatLng hcm = new LatLng(10.762622, 106.660172);

gm = googleMap;

gm.addMarker(new MarkerOptions().position(hcm).title("Marker in HCM City"));

CameraPosition cp = new CameraPosition.Builder().target(hcm).zoom(13).build();

gm.animateCamera(CameraUpdateFactory.newCameraPosition(cp));

}

  • Trong onCreate() chỉ cần gọi hàm createMap() là xong.