본문 바로가기
안드로이드 코틀린

[Kotlin][Android] API 키 없이 지도 사용하기 - Osmdroid

by teamnova 2022. 5. 14.
728x90

이번시간에는 api없이 무료로 사용할 수 있는, 오픈소스 osmdroid를 사용해서 지도를 띄워보겠습니다.

osmdroid에 대한 자세한 정보는 깃허브에 가시면 확인하실 수 있습니다.

https://github.com/osmdroid/osmdroid

 

 

 

1. build.gradle에 선언해줍니다. 

+ Manifest에서 인터넷 사용 설정을 해둡니다.

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

 

 

2.  XML 레이아웃에 사용할 mapview를 표시해줍니다.

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <org.osmdroid.views.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

 

3. mapView에서 사용할 위도와 경도를 입력해준다.

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val mapView = findViewById<MapView>(R.id.mapView)
        val mapController = mapView.controller
        mapController.setZoom(15.0)
        val startPoint = GeoPoint(37.5665, 126.9780); // 여기에 위도와 경도를 입력하면 됩니다.
        mapController.setCenter(startPoint);
        Configuration.getInstance().userAgentValue = BuildConfig.APPLICATION_ID
        mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE)
    }

 

결과