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 và 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.