[Android] ์๋ฐ๋ก ์๋๋ก์ด๋ ์ฑ ๋ค์ ์ง๋ API์ฌ์ฉํ์ฌ ์ง๋ ๋์๋ณด๊ธฐ
๋ค์์ง๋ API ํค ๋ฐ๊ธ 1. ์ง๋ API์ ๋ฐ๊ธ ๋ฐ๊ธฐ ์ํด์๋ Kakao Developers(https://developers.kakao.com/)์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ์ฌ ๊ฐ๋ฐ์ ๋ฑ๋ก์ ํํ ์ฑ ๋ฑ๋ก์ ํ์ฌ์ผ ํ๋ค. 2. ์ฑ SDK์ ์ฌ์ฉํ๊ธฐ์ํด์๋ ํ๋ซํผ..
sungmin.dev
3ํ๋ 2ํ๊ธฐ(2019) ์์ ์ค ๋ชจ๋ฐ์ผSWํ๋ก์ ํธ ์์ ์ ๋ค์ผ๋ฉด์ ํ๋ก์ ํธ ์ฃผ์ ๋ฅผ ๊ฐ๋ฐ ํ๋ ๊ณผ์ ์์ ์ง๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํด์ผํ๋ค.
์ฐ๋ฆฌ ๋๋ผ์๋ ๋ง์ ์ง๋์๋น์ค๊ฐ ์๋ค.
๊ทธ์ค ๋ํ์ ์ผ๋ก ์นด์นด์ค๋งต๊ณผ T-Map์ ๋ง์ด ์ฌ์ฉํ๋๋ฐ ์๋ก ๋ชฉ์ ์ด ๋ง์ด ๋ค๋ฅด๊ณ , ์ฑํฅ๋ ๋ง์ด ๋ค๋ฅด๋ค.
๋๋ ๊ธฐ์กด์ ๋ด์ฅ๋์ด ์๋ ๊ตฌ๊ธ ์ง๋๋ ์ ํ ์ง๋๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์
์ฅ์์
๋ง์ด ์ฌ์ฉํ์ง ์๋ ์นด์นด์ค๋งต์ ํ๊ตญ์์ ์์น๋ฅผ ์์๋ณด๊ธฐ ์ํด์ ๋ณด๊ธฐ ๊ฐ์ฅ ์ ํฉํ ์ง๋์๊ณ , T-Map์ ๋ค๋น๊ฒ์ด์
์ญํ ์ ํ๋๋ฐ ๊ฐ์ฅ ์ ํฉํ ์ง๋๋ผ๊ณ ์๊ฐํ๋ค.
๋ฐ๋ผ์ 1ํ๊ธฐ ์์ ์์ ๋ค์์ง๋ API์ ์ฌ์ฉํ์ฌ ์ง๋๋ฅผ ๋์ ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ฉด ์ด๋ฒ์๋ T-Map API์ ์ฌ์ฉํ์ฌ ์ง๋๋ฅผ ๊ตฌํํด๋ณผ๋ ค๊ณ ํ๋ค.
์ฐ์ T-Map์ SKT์์ ๊ฐ์ด๋๋ผ์ธ์ด ์์ฑ ๋์ด์๋ค.
(http://tmapapi.sktelecom.com/index.html)
๋ฐ๋ผ์ ์ง๋๋ฅผ ํ์ํ๋๋ฐ์๋ ํฐ ์ด๋ ค์์ด ์์๋ค.
1. APIํค ๋ฐ๊ธ ๋ฐ ์์ SDK ๋ค์ด๋ฐ๊ธฐ
์ด๋ ์ง๋๋ฅผ ์ฌ์ฉํ๋ ๊ฐ ํ์ฌ์ ์ง๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์์ SDK์ APIํค๋ฅผ ์ด์ฉํด์ผํ๋ค.
์์ SDK๋ ๊ฐ์ด๋๋ผ์ธ์ด ์ ํ์๋ ์ฌ์ดํธ์ ๋ค์ด๊ฐ์ ๋ค์ด์ ๋ฐ์์ ์๋ค.
APIํค์ ๊ฒฝ์ฐ (https://openapi.sk.com/)์ ๋ฐฉ๋ฌธํ์ฌ ํ์๊ฐ์ ์ ํ๋ฉด ๋ฐ๊ธ์ ๋ฐ์์ ์๋ค.
T-Map์ ๊ฒฝ์ฐ ํธ๋ํฝ๋์ ๋ฐ๋ผ ๊ณผ๊ธ์ด ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ํ์ธ์ ๊ผญ ํด์ผํ๋ค.
2. jarํ์ผ ์ถ๊ฐํ๊ธฐ
T-Map์ ์ฌ์ฉํ๊ธฐ ์ํด์ T-Map Class์ ์ฌ์ฉํด์ผ ํ๋๋ฐ Java ๊ธฐ๋ณธ jar์ ๊ฒฝ์ฐ ์ง์์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
jarํ์ผ์ ๊ฒฝ์ฐ ์์ SDK์ ๋ค์ด ๋ฐ์ผ๋ฉด libsํด๋์ ์์นํด ์๋ค.
Android Studio์์ ํ๋ก์ ํธ๋ฅผ Android๋ก ๋์ด์๋๊ฒ์ Project๋ก ๋ฐ๊พผํ T-Map jarํ์ผ์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ฃ์ด์ค๋ค.
์์ ๋ฐฉ๋ฒ์ด ์ด๋ ต๋ค๋ฉด ์๋์ ์ผ๋ก ํ๋ก์ ํธ ํด๋์ app-libs ํด๋์ ๋ฃ๊ณ Android Studio์ ์ฌ์คํ ํ์ฌ๋ ๋ฌด๊ดํ๋ค.
3. ๊ถํ ๋ถ์ฌ
์ง๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธํฐ๋ท๊ณผ GPS๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ AndroidMainfest.xmlํ์ผ์ ๊ถํ์ ๋ถ์ฌํด์ฃผ์ด์ผ ํ๋ค.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
4. ๋ ์ด์์ ์ค์
ํด๋น ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๋ฐฉ๋ฒ์ด ์์ง๋ง ๊ฐ์ด๋๋ผ์ธ์ ๋์์๋ ๋ฐฉ๋ฒ์ค LinearLayout์ ์ฌ์ฉํ์ฌ ๊ตฌํ์ ํด๋ณด์๋ค.
<?xml version="1.0" encoding="utf-8"?>
<android.widget.LinearLayout
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:orientation="vertical">
<LinearLayout
android:id="@+id/linearLayoutTmap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</android.widget.LinearLayout>
5. ๋ฐ์ธ๋ฉ ๋ฐ Java ์ฝ๋ ์์ฑ
์ฐ์ T-Map์ ์ฌ์ฉํ๊ธฐ ์ํด์ jarํ์ผ์์์ ํ์ํ Class๋ค์ import ํด์ฃผ์ด์ผ ํ๋ค.
import com.skt.Tmap.TMapView;
๊ทธ ์ดํ MainActivuty Class์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout linearLayoutTmap = (LinearLayout) findViewById(R.id.linearLayoutTmap);
TMapView tmapview = new TMapView(this);
tmapview.setSKTMapApiKey("APIํค"); //์ด๋ถ๋ถ์ ์๊น ๋ฐ๊ธ ๋ฐ์ T-Map API๋ฅผ ์
๋ ฅํ๋ฉด ๋๋ค.
linearLayoutTmap.addView(tmapview);
}
}
Comments