Android App

google map api 사용하기 in Android Studio

YunSeong 2021. 9. 3. 20:13
728x90
반응형

https://youtu.be/d-Dkb2bmcQs

 

 

1. Maps SDK for Android 연동하기

https://console.cloud.google.com/

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

위 링크에 들어가서 홈 -> 대시보드에서 프로젝트를 만들고 "Maps SDK for Android"를 Api로 선택해야한다. 

그 후에 "사용자 인증 정보"에 들어가서 Api키를 얻을 수 있다.


2. AndroidManifest.xml

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.googlemapexample">
    <application
            ...
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="~~~~~~~~~~~~~~~~~~"/>
 
    </application>
</manifest>
cs

6~8 - 위에서처럼 meta-data를 등록해줘야한다. value값("~~~"부분)으로 Api키를 입력해준다.


3. build.gradle (:app)

1
2
3
4
5
6
            ...
dependencies {
            ...
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
}
cs

4~5 - 위와 같이 라이브러리를 등록해준다.


4. activity_main.xml

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ... >
    <fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment"
        android:id="@+id/googleMap"/>
</LinearLayout>
cs

3~7 - googleMap을 띄울 fragment를 만들어준다.


5. MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.example.googlemapexample;
 
import android.app.FragmentManager; //중요
import ...
 
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback { //implements 중요
 
    private FragmentManager fragmentManager;
    private MapFragment mapFragment;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        fragmentManager = getFragmentManager();
        mapFragment = (MapFragment)fragmentManager.findFragmentById(R.id.googleMap);
        mapFragment.getMapAsync(this);
    }
 
    @Override
    public void onMapReady(@NonNull @org.jetbrains.annotations.NotNull GoogleMap googleMap) { 
        LatLng location = new LatLng(35.231004129.082277); //지도에 marker을 만들기 위한 좌표
 
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.title("제6공학관");
        markerOptions.snippet("학과건물");
        markerOptions.position(location);
 
        googleMap.addMarker(markerOptions); //위에서 설정한 marker을 적용
 
        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 16)); //marker 위치로 camera를 이동하고 줌함
    }
}
cs

6 - OnMapReadyCallback을 구현상속을 해준다.

22~33 - onMapReady() 함수는 googleMap에 접근할 수 있을 때 호출되는 것 같다. 그래서 지도에 대한 기본 설정을 할 때 위 함수 안에서 하는 것이 좋을 것 같다.


6. 결과

이렇게 구현하면 위 사진과 같이 안드로이드 앱에 구글맵을 띄우고 지도에서 보이는 위치와 marker까지 설정할 수 있다.

728x90
반응형