Google Map API를 사용하여 Map을 표시하는 방법 (Android)

개요



자작 Android 앱 개발에서 사용할 기회가 있었으므로 메모해 둔다.
앱의 일부에 GoogleMap을 통합하고 싶을 때 사용할 수 있습니다.

사전 준비



Google 계정으로 로그인한 것
Google 계정을 만드는 방법

Google Play 서비스 설치



AndroidStudio > Tool > SDK Manager에서 Google Play services를 설치합니다.


Google Play 서비스를 프로젝트에 연결



· build.gradle에서 Google Play 서비스를 구현합니다.

build.gradle
dependencies {
    ...
    implementation 'com.google.android.gms:play-services:+'
}

AndroidManifest에 meta-data 추가


</activity> 다음부터 </application> 사이에 다음을 추가

AndroidManifest.xml
<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

Google Map API의 키 가져오기



키 생성



1. API 라이브러리에서 Maps SDK for Android 사용


2. 대시보드 에서 프로젝트 만들기
프로젝트 이름: 모든 이름
위치 : 자작 앱이라면 "조직 없음"으로 OK


3. 그런 다음 생성한 프로젝트에서 자격 증명 만들기
·이 화면에서 API 키 선택


4. 키 제한
·이 시점에서 자신의 API 키가 생성됩니다.


이름: 어떤 이름
애플리케이션 제한: Android 앱 선택
<새 아이템>
패키지 이름: 대상 앱의 패키지 이름 입력
SHA-1:★나중에 설명한다★


5.SHA-1(샤완)의 확인
MacOS에서 터미널을 열고 다음 명령을 실행합니다.
※JAVA JDK가 인스톨되어 있지 않으면 실행할 수 없습니다. 오류에 따라 설치합시다.

터미널
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

· 실행 결과 (예)

터미널
SHA1: 0R:B9:4Z:33:22:33:AA:BB:CC:55:66:77:GG:88:77:12:34:AB:CD:PP

편차 ~로 표시된 부분에 SHA-1 지문이 있습니다.
"0R:B9:4Z:33:22:33:AA:BB:CC:55:66:77:GG:88:77:12:34:AB:CD:PP"부분 선택
4단계의 SHA-1에 붙여넣고 완료 ​​버튼을 눌러 저장합니다.



저장 후 API Key를 확인합니다. (나중에 사용)


리소스 추가



res > values에 google_map_api.xml을 만들고 추가

google_map_api.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">API Key</string>
</resources>

★API Key는 순서 5에서 취득한 것(코코라고 써 있는 부분)

Permission 추가


<manifest> 내에 다음을 기재한다(Parmission의 허가)

AndroidManifest.xm
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

OpenGL ES 사용 가능



마찬가지로 AndroidManifest에 추가 (Parmission과 같은 위치에서도 좋음)

AndroidManifest.xm
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>

meta-data 추가



초반에 추가한 meta-data 아래에 추가

AndroidManifest.xm
        </activity>
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key"/>
</application>

구현



기존 앱에 통합하는 전제로 만들었습니다.

마파 c 티비 ty. 자바



MapActivity.java
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney, Australia, and move the camera.
        LatLng sydney = new LatLng(-34, 151);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
}

activity_map.xml



activity_map.xml
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/map"
    tools:context=".MapActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment" />

실행 결과



좋은 웹페이지 즐겨찾기