iOS SDK

iOS 어플리케이션에서 routo 지도를 활용할 수 있도록 제공되는 소프트웨어 개발 도구 입니다.

iOS SDK Examples

컨트롤 위치 변경

축척바, 로고, 나침반 표시 위치를 설정합니다.

예제코드

public func onClickControls() {
    self.mapView?.setScaleBarPosition(margin: CGPoint(x: 20, y: 40), position: .LeftTop)
    self.mapView?.setLogoPosition(margin: CGPoint(x: 20, y: 40), position: .RightTop)
    self.mapView?.setCompassPosition(margin: CGPoint(x: 20, y: 40), position: .LeftBottom)
}

iOS SDK 사용자 메뉴얼

func setScaleBarPosition(margin:CGPoint, position:MapControlPosition)
Description
    축척바의 위치를 설정합니다.
Parameters
    margin – 해당 위치에서부터의 거리
    position – 위치(좌상단, 우상단, 좌하단, 우하단)

func setLogoPosition(margin:CGPoint, position:MapControlPosition)

Description
    로고이미지의 위치를 설정합니다.
Parameters
    margin – 해당 위치에서부터의 거리
    position – 위치(좌상단, 우상단, 좌하단, 우하단)

func setCompassPosition(margin:CGPoint, position:MapControlPosition)

Description
    나침반의 위치를 설정합니다.
Parameters
    margin – 해당 위치에서부터의 거리
    position – 위치(좌상단, 우상단, 좌하단, 우하단)

예제 실행 결과 화면

화면이동

해당 위치로 지도 화면을 이동합니다.

예제코드

public func onClickMove(){
    let mPosition: CLLocationCoordinate2D = CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851)
    self.mapView?.animateTo(location: mPosition)
}

iOS SDK 사용자 메뉴얼

func animateTo(location:CLLocationCoordinate2D)
Parameters
    location – 이동시킬 지도상의 좌표    

예제 실행 결과 화면

줌 레벨 및 화면 이동

설정한 줌레벨 및 위치로 지도 화면을 이동합니다.

예제코드

public func onClickMoveZoom(){
    let mPosition: CLLocationCoordinate2D = CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851)
    self.mapView?.animateTo(location: mPosition, zoom: 17)
}

iOS SDK 사용자 메뉴얼

func animateTo(location:CLLocationCoordinate2D, zoom:Int)
Parameters
    location – 이동시킬 지도상의 좌표
    zoom – 줌레벨    

예제 실행 결과 화면

레벨 선택

지도 줌레벨을 11레벨로 설정합니다.

예제코드

public func onClickZoomLevel(){
    self.mapView?.setZoom(11)
}

iOS SDK 사용자 메뉴얼

func setZoom(_ zoom:Int)
zoom – 설정할 줌레벨

예제 실행 결과 화면

확대

지도 줌레벨을 1증가하여 화면을 확대합니다.

예제코드

public func onClickZoomIn(){
    var zoom: Int = self.mapView?.getZoom() ?? 0
    zoom = zoom + 1
    self.mapView?.setZoom(zoom)
}

iOS SDK 사용자 메뉴얼

func setZoom(_ zoom:Int)
    zoom – 설정할 줌레벨

예제 실행 결과 화면

축소

지도 줌레벨을 1감소하여 화면을 축소합니다.

예제코드

public func onClickZoomOut(){
    var zoom: Int =  self.mapView?.getZoom() ?? 0
    zoom = zoom - 1
    self.mapView?.setZoom(zoom)
}

iOS SDK 사용자 메뉴얼

func setZoom(_ zoom:Int)
    zoom – 설정할 줌레벨

예제 실행 결과 화면

확대/축소 설정 on/off

지도 화면 확대/축소 기능을 on/off 합니다.

예제코드

public func onClickToggleZoom() {
    guard let mapView = self.mapView else { return }
    mapView.mapZoom = !mapView.mapZoom
}

iOS SDK 사용자 메뉴얼

mapZoom: Bool

예제 실행 결과 화면

반경설정

해당 반경의 지도가 화면에 맞춰 표시되도록 합니다.

예제코드

public func onClickFitCircle() {
    self.mapView?.fitCenter(mPosition, radius: 500)
}

iOS SDK 사용자 메뉴얼

func fitCenter(_ location:CLLocationCoordinate2D, radius:Int)
    location – 설정할 지도의 좌표
    radius – 표출될 지도의 반경

예제 실행 결과 화면

지도회전 설정 on/off

지도 회전 기능을 on/off 합니다.

예제코드

public func onClickToggleRotate() {
    guard let mapView = self.mapView else { return }
    mapView.mapRotation = !mapView.mapRotation
}

iOS SDK 사용자 메뉴얼

mapRotation: Bool

예제 실행 결과 화면

지도방향 설정

설정한 각도로 지도 방향을 설정합니다.

예제코드

public func onClickSetHeading() {
    self.mapView?.heading = 180
}

iOS SDK 사용자 메뉴얼

heading: CLLocationDirection

예제 실행 결과 화면

패닝 설정 on/off

지도 화면 이동 기능을 on/off합니다.

예제코드

public func onClickTogglePan() {
    guard let mapView = self.mapView else { return }
    mapView.mapScroll = !mapView.mapScroll
}

iOS SDK 사용자 메뉴얼

mapScroll: Bool

예제 실행 결과 화면

나침반 모드설정

나침반 기능을 on/off 합니다.

예제코드

public func onClickCompassMode() {
    guard let mapView = self.mapView else { return }
    mapView.compassMode = !mapView.compassMode
}

iOS SDK 사용자 메뉴얼

compassMode: Bool

예제 실행 결과 화면

트레킹 모드설정

GPS 좌표에 따라 화면을 표시 하는 트래킹 기능을 on/off 합니다.

예제코드

public func onClickMarkerTracking() {
    self.mapView?.trackingMode = .followWithHeading
}

iOS SDK 사용자 메뉴얼

trackingMode: Bool

예제 실행 결과 화면

텍스트 그리기

지도 화면에 텍스트를 표시합니다.

예제코드

public func onClickText() {
    let position = self.mapView?.getCenter()
    if let position = position {
        let text = PlayMapText(position: position, text: "Hello!")
        text.fontSize = 18
        text.fontColor = .red
        text.backgroundColor = .clear
        text.borderWidth = 0
        text.borderColor = .brown
        self.mapView?.addText(text)
    }
}

iOS SDK 사용자 메뉴얼

func addText(_ text:PlayMapText)
    text - PlayMapText 객체

예제 실행 결과 화면

텍스트 지우기

지도 화면의 텍스트를 삭제합니다.

예제코드

public func onClickTextClear() {
    self.mapView?.removeAllTexts()
}

iOS SDK 사용자 메뉴얼

func removeAllTexts()

마커 그리기

지도 화면에 마커를 표시합니다.

예제코드

public func onClickMarker() {
    let position = self.mapView?.getCenter()
    if let position = position {
        let marker = PlayMapMarker(position: position)
        marker.title = "제목없음"
        marker.subTitle = "내용없음"
        marker.draggable = true
        let label = UILabel(frame: CGRect(x: 0, y: 0, width: 30, height: 50))
        label.text = "좌측"
        marker.leftCalloutView = label
        let label2 = UILabel(frame: CGRect(x: 0, y: 0, width: 30, height: 50))
        label2.text = "우측"
        marker.rightCalloutView = label2
        self.marker = marker
        self.mapView?.addMarker(marker)
    }
}

iOS SDK 사용자 메뉴얼

func addMarker(_ marker:PlayMapMarker)
    marker – 추가할 PlayMapMarker 객체

예제 실행 결과 화면

마커 지우기

지도 화면의 마커를 삭제합니다.

예제코드

public func onClickMarkerClear(){
    self.mapView?.removeAllMarkers()
}

iOS SDK 사용자 메뉴얼

func removeAllMarkers()

마커 fit

지도에 표시된 모든 마커가 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

public func onClickMarkerFit(){
    self.mapView?.fitMapBoundsToShowAllMarkers()
}

iOS SDK 사용자 메뉴얼

func fitMapBoundsToShowAllMarkers()

예제 실행 결과 화면

서클 그리기

지도 화면에 원을 표시합니다.

예제코드

public func onClickCircle(){
    let position = self.mapView?.getCenter()
    let circle = PlayMapCircle(position: position!, radius: 100)
    circle.fillColor = .cyan
    circle.strokeColor = .red
    circle.opacity = 0.5
    self.mapView?.addCircle(circle)
}

iOS SDK 사용자 메뉴얼

func addCircle(_ circle:PlayMapCircle)
    circle – 추가할 원 객체

예제 실행 결과 화면

서클 지우기

지도 화면의 원을 삭제합니다.

예제코드

public func onClickCircleClear(){
    self.mapView?.removeAllCircles()
}

iOS SDK 사용자 메뉴얼

func removeAllCircles()

서클 fit

지도에 표시된 모든 원이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

public func onClickCircleFit(){
    self.mapView?.fitMapBoundsToShowAllCircles()
}

iOS SDK 사용자 메뉴얼

func fitMapBoundsToShowAllCircles()

예제 실행 결과 화면

사각형 그리기

지도 화면에 사각형을 표시합니다.

예제코드

public func onClickRectangle(){
    let position = self.mapView?.getCenter()
    let sw = CLLocationCoordinate2D(latitude: position!.latitude - 0.001, longitude: position!.longitude - 0.001)
    let ne = CLLocationCoordinate2D(latitude: position!.latitude + 0.001, longitude: position!.longitude + 0.001)
    let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
    rectangle.fillColor = .cyan
    rectangle.strokeColor = .red
    rectangle.opacity = 0.5
    self.mapView?.addRectangle(rectangle)
}

iOS SDK 사용자 메뉴얼

func addRectangle(_ rectangle:PlayMapRectangle)
    rectangle – 추가할 사각형 객체

예제 실행 결과 화면

사각형 지우기

지도 화면의 사각형을 삭제합니다.

예제코드

public func onClickRectangleClear(){
    self.mapView?.removeAllRectangles()
}

iOS SDK 사용자 메뉴얼

func removeAllRectangles()

사각형 fit

지도에 표시된 모든 사각형이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

public func onClickRectangleFit(){
    self.mapView?.fitMapBoundsToShowAllRectangles()
}

iOS SDK 사용자 메뉴얼

func fitMapBoundsToShowAllRectangles()

예제 실행 결과 화면

직선 그리기

지도 화면에 선을 표시합니다.

예제코드

public func onClickLine(){
    let position = self.mapView?.getCenter()
    
    if let position = position {
        var path = Array<CLLocationCoordinate2D>()
        path.append(CLLocationCoordinate2D(latitude: position.latitude - 0.001, longitude: position.longitude - 0.001))
        path.append(CLLocationCoordinate2D(latitude: position.latitude + 0.001, longitude: position.longitude - 0.0005))
        path.append(CLLocationCoordinate2D(latitude: position.latitude, longitude: position.longitude))
        path.append(CLLocationCoordinate2D(latitude: position.latitude + 0.001, longitude: position.longitude + 0.0005))
        path.append(CLLocationCoordinate2D(latitude: position.latitude - 0.001, longitude: position.longitude + 0.001))
        
        let polyline = PlayMapPolyline(coordinates: path)
        polyline.strokeWidth = 4
        polyline.strokeColor = .red
        self.mapView?.addPolyline(polyline)
    }
}

iOS SDK 사용자 메뉴얼

func addPolyline(_ polyline:PlayMapPolyline)
    polyline – 추가할 폴리라인 객체

예제 실행 결과 화면

직선 지우기

지도 화면의 선을 삭제합니다.

예제코드

public func onClickLineClear(){
    self.mapView?.removeAllPolylines()
}

iOS SDK 사용자 메뉴얼

func removeAllPolylines()

직선 fit

지도에 표시된 모든 선이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

public func onClickLineFit(){
    self.mapView?.fitMapBoundsToShowAllPolylines()
}

iOS SDK 사용자 메뉴얼

func fitMapBoundsToShowAllPolylines()

예제 실행 결과 화면

폴리곤 그리기

지도 화면에 폴리곤을 표시합니다.

예제코드

public func onClickPoly(){
    let position = self.mapView?.getCenter()
    
    if let position = position {
        var path = Array<CLLocationCoordinate2D>()
        path.append(CLLocationCoordinate2D(latitude: position.latitude - 0.001, longitude: position.longitude - 0.001))
        path.append(CLLocationCoordinate2D(latitude: position.latitude + 0.001, longitude: position.longitude - 0.0005))
        path.append(CLLocationCoordinate2D(latitude: position.latitude, longitude: position.longitude))
        path.append(CLLocationCoordinate2D(latitude: position.latitude + 0.001, longitude: position.longitude + 0.0005))
        path.append(CLLocationCoordinate2D(latitude: position.latitude - 0.001, longitude: position.longitude + 0.001))
        
        let polygon = PlayMapPolygon(coordinates: path)
        polygon.opacity = 0.8
        polygon.fillColor = .brown
        polygon.strokeColor = .red
        self.mapView?.addPolygon(polygon)
    }
}

iOS SDK 사용자 메뉴얼

func addPolygon(_ polygon:PlayMapPolygon)
    polygon – 추가할 폴리곤 객체

예제 실행 결과 화면

폴리곤 지우기

지도 화면의 폴리곤을 삭제합니다.

예제코드

public func onClickPolyClear(){
    self.mapView?.removeAllPolygons()
}

iOS SDK 사용자 메뉴얼

func removeAllPolygons()

폴리곤 fit

지도에 표시된 모든 폴리곤이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

public func onClickPolyFit(){
    self.mapView?.fitMapBoundsToShowAllPolygons()
}

iOS SDK 사용자 메뉴얼

func fitMapBoundsToShowAllPolygons()

예제 실행 결과 화면

그라운드이미지 추가

지도 화면에 이미지를 표시합니다.

예제코드

public func onClickGroundImage() {
    let bounds = MapBounds(sw: CLLocationCoordinate2D(latitude: 37.566115, longitude: 126.977378), ne: CLLocationCoordinate2D(latitude: 37.566997, longitude: 126.979071))
    let cityhallImage = UIImage(named: "cityhall")
    let groundImage = PlayMapGroundImage(bounds: bounds, image: cityhallImage!)
    self.mapView?.addGroundImage(groundImage)
}

iOS SDK 사용자 메뉴얼

func addGroundImage(_ groundImage:PlayMapGroundImage)
    groundImage – 그라운드 이미지 객체

예제 실행 결과 화면

그라운드이미지 제거

지도 화면의 이미지를 삭제합니다.

예제코드

public func onClickRemoveGroundImage() {
    self.mapView?.removeAllGroundImages()
}

iOS SDK 사용자 메뉴얼

func removeAllGroundImages()

거리측정

지도 화면 위에서 거리를 측정 합니다.

예제코드

public func onClickMeasureDistance() {
    self.mapView?.measureDistance()
}

iOS SDK 사용자 메뉴얼

func measureDistance()

예제 실행 결과 화면

거리지우기

지도 화면 위의 거리 측정 선을 삭제 합니다.

예제코드

public func onClickClearMeasureDistance() {
    self.mapView?.exitMeasureDistance()
}

iOS SDK 사용자 메뉴얼

func exitMeasureDistance()

면적측정

지도 화면 위에서 면적을 측정 합니다.

예제코드

public func onClickMeasureArea() {
    self.mapView?.measureArea()
}

iOS SDK 사용자 메뉴얼

func measureArea()

예제 실행 결과 화면

면적지우기

지도 화면 위의 면적 측정 폴리곤을 삭제 합니다.

예제코드

public func onClickClearMeasureArea() {
    self.mapView?.exitMeasureArea()
}

iOS SDK 사용자 메뉴얼

func exitMeasureArea()

마커클러스터 등록

지도 화면 위에 마커 클러스터를 표시 합니다.

예제코드

public func onClickMarkerCluster() {
    var markerArray:Array = []
    for i in 0 ..< 10 {
        for j in 0 ..< 20 {
            let lat = 37.570841 + (Double(i) * 0.0005)
            let lng = 126.985302 + (Double(j) * 0.0005)
            
            let marker = PlayMapMarker(position: CLLocationCoordinate2D(latitude: lat, longitude: lng))
            self.mapView?.addMarker(marker)
            markerArray.append(marker)
        }
    }
    
    let markerCluster = MarkerCluster(markerArray)
    markerCluster.setStep([50, 100, 150, 200])
    markerCluster.setStepColor([.yellow, .systemPink, .orange, .red])
    self.mapView?.setMarkerCluster(markerCluster)
    self.mapView?.fitMapBoundsToShowAllMarkers()
}

iOS SDK 사용자 메뉴얼

func setMarkerCluster(_ markerCluster:MarkerCluster)
    markerCluster – 추가할 마커클러스터 객체

func fitMapBoundsToShowAllMarkers()
Description
지도에 추가한 모든 마커가 보이도록 지도 영역을 변경합니다.

예제 실행 결과 화면

마커클러스터 제거

지도 화면의 마커 클러스터를 삭제 합니다.

예제코드

public func onClickRemoveMarkerCluster() {
    self.mapView?.removeMarkerCluster()
}

iOS SDK 사용자 메뉴얼

func removeMarkerCluster()