728x90
반응형
1. Maps SDK for Android 연동하기
https://console.cloud.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.231004, 129.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
반응형
'Android App' 카테고리의 다른 글
외부저장소 동영상 플레이어 in Android Studio (0) | 2021.09.04 |
---|---|
mediaPlayer+surfaceView, 동영상 소형플레이어 기본모드 전환 in Android Studio (0) | 2021.09.04 |
더블클릭으로 앱 종료 in Android Studio (0) | 2021.08.31 |
mediaPlayer (mp3 재생) in Android Studio (0) | 2021.08.23 |
loadingAnimation (SpinKit) in Android Studio (0) | 2021.08.23 |