본문 바로가기

Android/EveryLaundry

2 - retrofit을 사용한 데이터 가져오기, 지도에 마커 표시하기

 

 

어제 포스팅하려했는데

왜인지 포스팅에 실패하게 되어서 하루 지난 오늘쓰게되었다

 

어제 한 일은

1. retrofit을 사용하여 데이터베이스에서 데이터 가져오기

2. 지도에 마커 표시하기

 

 

[ retrofit을 사용해서 데이터 가져오기 ]

 

/**
* database에서 세탁소 정보 불러오기
*/
private fun getLaundryList() {
  val retrofit = RetrofitBuilder.getClient()
  val laundryAPI = retrofit?.create(LaundryAPI::class.java)

  Thread(Runnable {
    laundryList = laundryAPI?.getLaundryList()?.execute()?.body()!!
  }).start()

  try {
    Thread.sleep(1000)
  } catch (e: Exception) {
    Timber.d("ERROR : getLaundryList() - ${e.message}")
  }
}

 

 

[ 지도에 마커 표시하기 ]

 

/**
* 지도에 마커(세탁소 위치) 표시
*/
private fun setLaundryMarker() {
  for (laundry in laundryList) {
    val marker = MapPOIItem()
    val point = MapPoint.mapPointWithGeoCoord(laundry.laundryCoordsX, laundry.laundryCoordsY)
    marker.itemName = laundry.laundryName
    marker.tag = laundry.laundryKey.toInt()
    marker.mapPoint = point

    // Type : 0(코인세탁소), 1(일반세탁소)
    if (laundry.laundryType == '0') {
      marker.markerType = MapPOIItem.MarkerType.YellowPin
    } else if (laundry.laundryType == '1') {
      marker.markerType = MapPOIItem.MarkerType.BluePin
    }
    mapView.addPOIItem(marker)
  }
}