낭만 IT

반응형

이 시리즈는 간단한 기능 구현에 대한 글이며

Kotlin을 통해 개발하였고 결과물은 구글 플레이스토어에 등록하였다.
다운 받으러 가기

실제 구현 사진

 

관련 글 보러가기

안드로이드 마스크 앱 만들기 (1) - 공적 마스크 api와 네이버 지도 api

안드로이드 마스크 앱 만들기 (2) - GPS로 현 위치 좌표 알아내기

안드로이드 마스크 앱 만들기 (3) - 공적 마스크 api 사용하기

안드로이드 마스크 앱 만들기 (4) - 네이버 지도에 표시하기 (완결)

 

코드 다운

https://github.com/Junhwan26/MaskApp

 

Junhwan26/MaskApp

Contribute to Junhwan26/MaskApp development by creating an account on GitHub.

github.com

 


 

 

 

구현하고자 하는 기능은 내 위치로 부터 1km이내의 마스크 판매소와 재고량이기 때문에 현재의 위도, 경도, 반경을 파라미터로 넘겨줘야 한다.

https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/storesByGeo/json?lat=$위도&lng=$경도&m=$반경 다음과 같은 형태로 넘겨주면 된다.

 

 

본격적으로 코드를 작성해 보자. 우선 위치에 대한 접근이 가능하도록 권한을 부여해야한다.

FINE_LOCATION : 정확한 위치에 접근할 수 있는 권한
COARSE_LOCATION : 대략적인 위치에 접근할 수 있는 권한

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

 

 

GPS 좌표를 가져오는 코드는 현재 위치 주소 가져오기 :: 멈춤보단 천천히라도 블로그를 참고하였다.
GPS 퍼미션 확인과 GpsTracker 부분은 위 블로그에서 가져오면 된다.

class MainActivity : AppCompatActivity() {
    var flag: Boolean = true
    private var gpsTracker: GpsTracker? = null
    val pharmacy = ArrayList<Pharmacy>()
    var REQUIRED_PERMISSIONS = arrayOf(
        Manifest.permission.ACCESS_FINE_LOCATION,
        Manifest.permission.ACCESS_COARSE_LOCATION
    )

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        if (!checkLocationServicesStatus()) {
            showDialogForLocationServiceSetting()
        } else {
            checkRunTimePermission()
        }

        gpsTracker = GpsTracker(this@MainActivity)
        var latitude: Double = gpsTracker!!.latitude
        var longitude: Double = gpsTracker!!.longitude


        Toast.makeText(
            this@MainActivity,
            "현재위치 \n위도 $latitude\n경도 $longitude",
            Toast.LENGTH_LONG
        ).show()


    }
}

 


이제 현 위치의 좌표를 알았으니 다음 글에서는 Json을 파싱하는 법에 대해 다뤄보도록 하겠다.

 

 

 

 

 

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band