Constructor 링크 복사
KNMapView
클래스는 KNSDK
를 통해 생성되어야 합니다.
KNMapView
에 랜더러를 바인딩합니다. 제공되는 랜더러는 디바이스 환경에 따라 Opengles 2.0 혹은 Opengles 3.0을 사용합니다.
KNSDK.bindingMapView(mapView: KNMapView, theme: KNMapTheme, completion: ((KNError?) → Unit)?)
KNSDK.bindingMapView(mapView: KNMapView, theme: KNMapTheme, completion: ((KNError?) → Unit)?)
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
함수 링크 복사
지도에 경로를 설정합니다.
fun setRoute( | route: | KNRoute | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun routeWithMapView(route: KNRoute) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.setRoute(route)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun routeWithMapView(route: KNRoute) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.setRoute(route)
}
- route
- 경로
경로 리스트를 전달받아 지도에 경로를 설정합니다.
fun setRoutes( | routes: | List<KNRoute> | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun routeListWithMapView(routes: List<KNRoute>) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.setRoutes(routes)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun routeListWithMapView(routes: List<KNRoute>) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.setRoutes(routes)
}
- routes
- 경로 리스트
지도에 설정된 모든 경로 리스트를 반환합니다.
fun getRoutes(): | List<KNRoute> |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getRouteWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getRoutes()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getRouteWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getRoutes()
}
지도에 등록된 모든 경로를 삭제합니다.
단순히 이전 경로에서 새로운 경로로 교체하는 경우 이 함수를 호출하지 않아도 됩니다.
fun removeRoutesAll() |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeRouteAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removeRoutesAll()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeRouteAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removeRoutesAll()
}
지도의 줌 레벨 최소, 최댓값을 설정하여 범위를 제한합니다. 범위는 서버 설정에 따라 0.1에서 9999.0까지 지정할 수 있으며 이 범위를 벗어나는 설정은 무시됩니다.
fun setZoomRange( | min: | Float, | |
max: | Float | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun setZoomRangeWithMapView(min: Float, max: Float) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.setZoomRange(min, max)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun setZoomRangeWithMapView(min: Float, max: Float) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.setZoomRange(min, max)
}
- min
- 줌 레벨 최솟값(0.1)
- max
- 줌 레벨 최댓값(9999.0)
입력받은 사용자의 위치 정보를 통해 사용자가 지나간 경로 부분을 자릅니다. isAnimate
가 활성화(true
)된 경우, 500 ms를 기준으로 서서히 경로가 잘리게 되며 비활성화(false
)된 경우 즉시 잘립니다. 경로의 시작 위치는 KNLocation
을 기준으로 합니다.
fun cullPassedRoute( | guideLocation: | KNLocation, | |
isAnimate: | Boolean | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun cullingRouteWithMapView(location: KNLocation, isAnimate: Boolean) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.cullPassedRoute(location, isAnimate)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun cullingRouteWithMapView(location: KNLocation, isAnimate: Boolean) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.cullPassedRoute(location, isAnimate)
}
- guideLocation
- 위치 정보
- isAnimate
- 경로를 자르는 애니메이션 사용 여부
지도에 마커를 추가합니다.
fun addMarker( | marker: | KNMapMarker | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addMarkerWithMapView(marker: KNMapMarker) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addMarker(marker)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addMarkerWithMapView(marker: KNMapMarker) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addMarker(marker)
}
- marker
- 마커
지도에 마커 리스트를 추가합니다.
fun addMarkers( | markers: | List<KNMapMarker> | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addMarkerListWithMapView(markers: List<KNMapMarker>) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addMarkers(markers)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addMarkerListWithMapView(markers: List<KNMapMarker>) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addMarkers(markers)
}
- markers
- 마커 리스트
지도에서 마커를 제거합니다.
fun removeMarker( | marker: | KNMapMarker | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeMarkerWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getMarkers().filter { it.tag == 24 }.firstOrNull()?.apply {
mapview.removeMarker(this)
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeMarkerWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getMarkers().filter { it.tag == 24 }.firstOrNull()?.apply {
mapview.removeMarker(this)
}
}
- marker
- 마커
지도에 추가된 모든 마커를 제거합니다.
fun removeMarkersAll() |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeMarkersAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removeMarkersAll()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeMarkersAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removeMarkersAll()
}
지도에 추가된 마커 리스트를 반환합니다. 추가된 마커가 없을 경우 빈 리스트를 반환합니다.
fun getMarkers(): | List<KNMapMarker> |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getMarkerListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getMarkers()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getMarkerListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getMarkers()
}
지도에 원을 추가합니다.
fun addCircle( | circle: | KNMapCircle | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addCircleWithMapView(circle: KNMapCircle) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addCircle(circle)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addCircleWithMapView(circle: KNMapCircle) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addCircle(circle)
}
- circle
- 원
지도에서 원을 제거합니다.
fun removeCircle( | circle: | KNMapCircle | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeCircleWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getCircles().filter { it.tag == 14 }.firstOrNull()?.apply {
mapview.removeCircle(this)
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeCircleWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getCircles().filter { it.tag == 14 }.firstOrNull()?.apply {
mapview.removeCircle(this)
}
}
- circle
- 원
지도에 추가된 모든 원을 제거합니다.
fun removeCirclesAll() |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeCirclesAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removeCirclesAll()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removeCirclesAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removeCirclesAll()
}
지도에 추가된 원 리스트를 반환합니다. 추가된 원이 없을 경우 빈 리스트를 반환합니다.
fun getCircles(): | List<KNMapCircle> |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getCircleListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getCircles()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getCircleListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getCircles()
}
지도에 폴리라인을 추가합니다.
fun addPolyline( | polyline: | KNMapPolyline | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addPolylineWithMapView(polyline: KNMapPolyline) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addPolyline(polyline)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addPolylineWithMapView(polyline: KNMapPolyline) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addPolyline(polyline)
}
- polyline
- 폴리라인
지도에서 폴리라인을 제거합니다.
fun removePolyline( | polyline: | KNMapPolyline | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolylineWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getPolylines().filter { it.tag == 4 }.firstOrNull()?.apply {
mapview.removePolyline(this)
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolylineWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getPolylines().filter { it.tag == 4 }.firstOrNull()?.apply {
mapview.removePolyline(this)
}
}
- polyline
- 폴리라인
지도에 추가된 모든 폴리라인을 제거합니다.
fun removePolylinesAll() |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolylinesAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removePolylinesAll()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolylinesAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removePolylinesAll()
}
지도에 추가된 폴리라인 리스트를 반환합니다. 추가된 폴리라인이 없을 경우 빈 리스트를 반환합니다.
fun getPolylines(): | List<KNMapPolyline> |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getPolylineListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getPolyline()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getPolylineListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getPolyline()
}
지도에 폴리곤(다각형)을 추가합니다.
fun addPolygon( | polygon: | KNMapPolygon | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addPolygonWithMapView(polygon: KNMapPolygon) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addPolygon(polygon)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun addPolygonWithMapView(polygon: KNMapPolygon) {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.addPolygon(polygon)
}
- polygon
- 폴리곤
지도에서 폴리곤(다각형)을 제거합니다.
fun removePolygon( | polygon: | KNMapPolygon | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolygonWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getPolygons().filter { it.tag == 4 }.firstOrNull()?.apply {
mapview.removePolygon(this)
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolygonWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.getPolygons().filter { it.tag == 4 }.firstOrNull()?.apply {
mapview.removePolygon(this)
}
}
- polygon
- 폴리곤
지도에 추가된 모든 폴리곤(다각형)을 제거합니다.
fun removePolygonsAll() |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolygonsAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removePolygonsAll()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun removePolygonsAllWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.removePolygonsAll()
}
지도에 추가된 폴리곤(다각형) 리스트를 반환합니다. 추가된 폴리곤이 없을 경우 빈 리스트를 반환합니다.
fun getPolygons(): | List<KNMapPolygon> |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getPolygonListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getPolygons()
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun getPolygonListWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
bindingMapView()?.getPolygons()
}
KNMapCoordinateRegion
을 감싸는 화면의 사각 영역(RectF
)을 반환합니다.
fun getScreenRect( | region: | KNMapCoordinateRegion | ): RectF |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun regionRectWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.apply {
val region = KNMapCoordinateRegion.initWithRoute(getRoutes())
region.mergeWithMarkers(getMarkers())
// 계산 시 영역이 현재 화면에서 넘어가는 경우 -값을 가질 수 있음.
val screenRectF = getScreenRect(region)
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun regionRectWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.apply {
val region = KNMapCoordinateRegion.initWithRoute(getRoutes())
region.mergeWithMarkers(getMarkers())
// 계산 시 영역이 현재 화면에서 넘어가는 경우 -값을 가질 수 있음.
val screenRectF = getScreenRect(region)
}
}
- region
- 입력받은 좌표 영역
화면의 사각 영역(RectF
)이 KNMapCoordinateRegion
과 겹치는지 여부를 반환합니다.
fun isOverlappedWithScreenRect( | screenRect: | RectF, | |
region: | KNMapCoordinateRegion | ): Boolean |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun areaCollisionWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.apply {
val region = KNMapCoordinateRegion.initWithRoute(getRoutes())
region.mergeWithMarkers(getMarkers())
val center = WGS84ToKATEC(127.11019081347423,37.3941851228957)
val screenPoint = katecToScreen(center)
val screeRectF = RectF(screenPoint.x - 50f, screenPoint.y - 50f, screenPoint.x + 50f, screenPoint.y + 50f)
val collision = isOverlappedWithScreenRect(screeRectF, region)
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun areaCollisionWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.apply {
val region = KNMapCoordinateRegion.initWithRoute(getRoutes())
region.mergeWithMarkers(getMarkers())
val center = WGS84ToKATEC(127.11019081347423,37.3941851228957)
val screenPoint = katecToScreen(center)
val screeRectF = RectF(screenPoint.x - 50f, screenPoint.y - 50f, screenPoint.x + 50f, screenPoint.y + 50f)
val collision = isOverlappedWithScreenRect(screeRectF, region)
}
}
- screenRect
- 화면의 사각 영역(RectF)
- region
- 입력받은 좌표 영역
화면의 좌표(FloatPoint
)가 KNMapCoordinateRegion
과 겹치는지 여부를 반환합니다.
fun isOverlappedWithScreenPoint( | screenPoint: | FloatPoint, | |
region: | KNMapCoordinateRegion | ): Boolean |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun pointCollisionWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.apply {
val region = KNMapCoordinateRegion.initWithRoute(getRoutes())
region.mergeWithMarkers(getMarkers())
val center = WGS84ToKATEC(127.11019081347423,37.3941851228957)
val screenPoint = katecToScreen(center)
val collision = isOverlappedWithScreenPoint(screePoint, region)
}
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun pointCollisionWithMapView() {
bindMapView {
if (it == null) return@bindMapView
}
mapView.apply {
val region = KNMapCoordinateRegion.initWithRoute(getRoutes())
region.mergeWithMarkers(getMarkers())
val center = WGS84ToKATEC(127.11019081347423,37.3941851228957)
val screenPoint = katecToScreen(center)
val collision = isOverlappedWithScreenPoint(screePoint, region)
}
}
- screenPoint
- 화면의 좌표(FloatPoint)
- region
- 입력받은 좌표 영역
KNMapCameraUpdate
의 설정값으로 지도의 카메라 위치를 업데이트합니다.
fun moveCamera( | cameraUpdate: | KNMapCameraUpdate, | |
withUserLocation: | Boolean | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun moveMap(withUserLocation: Boolean) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.moveCamera(KNMapCameraUpdate.targetTo(FloatPoint(321408f, 532832f)), withUserLocation)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun moveMap(withUserLocation: Boolean) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.moveCamera(KNMapCameraUpdate.targetTo(FloatPoint(321408f, 532832f)), withUserLocation)
}
- cameraUpdate
- KNMapCameraUpdate의 설정값
- withUserLocation
- 사용자 위치 동기화 여부
KNMapCameraUpdate
에서 설정된 정보로 현재 지도상 위치와 줌, 각도를 duration
에 입력된 시간동안 변경합니다. (단위: ms)
fun animateCamera( | cameraUpdate: | KNMapCameraUpdate, | |
duration: | Long, | ||
withUserLocation: | Boolean | ) |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun moveMap(withUserLocation: Boolean) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.animateCamera(KNMapCameraUpdate.targetTo(FloatPoint(321408f, 532832f)),1000L, withUserLocation)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun moveMap(withUserLocation: Boolean) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.animateCamera(KNMapCameraUpdate.targetTo(FloatPoint(321408f, 532832f)),1000L, withUserLocation)
}
- cameraUpdate
- KNMapCameraUpdate의 설정값
- duraton
- 애니메이션 동작 시간(단위: ms)
- withUserLocation
- 사용자 위치 동기화 여부
입력된 카텍(KATEC) 좌표를 화면 좌표로 변환하여 반환합니다.
fun katecToScreen( | katec: | FloatPoint | ): FloatPoint |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun katecToScreenWithMapView(katec: FloatPoint) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.katecToScreen(katec)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun katecToScreenWithMapView(katec: FloatPoint) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.katecToScreen(katec)
}
- katec
- 카텍 좌표
입력된 화면 좌표를 카텍(KATEC) 좌표로 변환하여 반환합니다.
fun screenToKatec( | screen: | FloatPoint | ): FloatPoint |
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun screenToKatecWithMapView(screen: FloatPoint) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.screenToKatec(screen)
}
fun bindMapView(completion: ((KNError?) -> Unit)?) {
KNSDK.bindingMapView(
mapView,
KNMapTheme.driveDay()) { error ->
completion?.invoke(error)
if (error != null) {
Toast.makeText(context, "맵 초기화 작업이 실패하였습니다. \n[${error.code}] : ${error.msg}",Toast.LENGTH_LONG).show()
return@bindingMapView
}
}
}
fun screenToKatecWithMapView(screen: FloatPoint) {
bindMapView {
if (it == null) return@bindMapView
}
mapView.screenToKatec(screen)
}
- screen
- 화면 좌표
지도에 색분할 라인을 추가합니다.
open override fun addSegmentPolyline( | segmentPolyline: | KNMapSegmentPolyline | ) |
- segmentPolyline
- 색분할 라인
지도에서 색분할 라인을 제거합니다.
open override fun removeSegmentPolyline( | segmentPolyline: | KNMapSegmentPolyline | ) |
- segmentPolyline
- 색분할 라인
지도에 추가된 모든 색분할 라인을 제거합니다.
open override fun removeSegmentPolylinesAll() |
지도에 추가된 색분할 라인 리스트를 반환합니다. 추가된 색분할 라인이 없을 경우 빈 리스트를 반환합니다.
open override fun getSegmentPolylines(): | List<KNMapSegmentPolyline> |