iOS SDK

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

PlayMapView

Description

지도데이터를 화면에 표시하는 메인 클래스입니다.

Constructors

PlayMapView(frame:CGRect)

Example

var mapView = PlayMapView(frame: frame);
self.view.addSubview(mapView);
mapView.setAppKey(“[발급받은 appKey]”);

Methods

protocol mapViewDidFinishLoadingMap()

Descript

지도 초기화 후 호출되는 인터페이스 함수 추가

Parameters

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapViewDidFinishLoadingMap () {
    // 코드 처리
}
func authorizationSuccess()

Descript

인증이 성공하면 전달합니다.

Parameters

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func authorizationSuccess () {
    // 코드 처리
}
func authorizationFail()

Descript

인증이 실패하면 전달합니다.

Parameters

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func authorizationFail () {
    // 코드 처리
}
func mapView(_ mapView: PlayMapView, shouldChangeFrom oldPosition: CLLocationCoordinate2D, to newPosition: CLLocationCoordinate2D)->Bool

Descript

지도의 영역이 이동되기 전 호출 되며 이동 전의 중심 좌표와 이동할 좌표가 파라미터로 전달되는 프로토콜을 정의합니다.

Parameters

Name {Type} Description
mapView{PlayMapView} 해당되는 맵뷰 인스턴스
oldPosition{CLLocationCoordinate2D} 이동하기 직전 지점의 좌표
newPosition{CLLocationCoordinate2D} 이동후 지점의 좌표

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapView(_ mapView:PlayMapView, shouldChangeFrom oldPosition:CLLocation Coordinate2D, to newPosition:CLLocationCoordinate2D)->Bool {
    // 코드 처리
}
func mapView(_ mapView: PlayMapView, mapMoved position: CLLocationCoordinate2D, zoom: Int)

Descript

지도 위치 및 줌 변경 시 호출되는 프로토콜

Parameters

Name {Type} Description
mapView{PlayMapView} 해당되는 맵뷰 인스턴스
position{CLLocationCoordinate2D} 이동된 지점의 좌표
zoom{Int} 이동된 지점의 줌레벨

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapView(_ mapView:PlayMapView, mapMoved position:CLLocationCoordinate2D, zoom:Int) {
    // 코드 처리
}
func mapView(_ mapView: PlayMapView, tapOnMap position: CLLocationCoordinate2D)

Descript

지도상에 탭 이벤트 발생시 전달합니다.

Parameters

Name {Type} Description
mapView{PlayMapView} 해당되는 맵뷰 인스턴스
position{CLLocationCoordinate2D} 탭 이벤트가 발생한 지도상의 좌표

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapView (_ mapView:PlayMapView, tapOnMap position:CLLocationCoordinate2D) {
    // 코드 처리
}
func mapView(_ mapView: PlayMapView, longTapOnMap position: CLLocationCoordinate2D)

Descript

지도상에 롱탭 이벤트 발생시 전달합니다.

Parameters

Name {Type} Description
mapView{PlayMapView} 해당되는 맵뷰 인스턴스
position{CLLocationCoordinate2D} 탭 이벤트가 발생한 지도상의 좌표

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapView (_ mapView:PlayMapView, longTapOnMap position:CLLocationCoordinate2D) {
    // 코드 처리
}
func mapView(_ mapView: PlayMapView, doubleTapOnMap position: CLLocationCoordinate2D)

Descript

지도상에 롱탭 이벤트 발생시 전달합니다.

Parameters

Name {Type} Description
mapView{PlayMapView} 해당되는 맵뷰 인스턴스
position{CLLocationCoordinate2D} 더블탭 이벤트가 발생한 지도상의 좌표

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapView (_ mapView:PlayMapView, doubleTapOnMap position:CLLocationCoordinate2D) {
    // 코드 처리
}
func mapView(_ mapView: PlayMapView, doubleTapOnMap position: CLLocationCoordinate2D)

Descript

지도상에 롱탭 이벤트 발생시 전달합니다.

Parameters

Name {Type} Description
mapView{PlayMapView} 해당되는 맵뷰 인스턴스
position{CLLocationCoordinate2D} 더블탭 이벤트가 발생한 지도상의 좌표

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapView (_ mapView:PlayMapView, doubleTapOnMap position:CLLocationCoordinate2D) {
    // 코드 처리
}
func mapView(_ mapView: PlayMapView, tapOnMarker marker: PlayMapMarker)

Descript

마커에 탭 이벤트가 발생한 경우 전달합니다.

Parameters

Name {Type} Description
mapView{PlayMapView} 해당되는 맵뷰 인스턴스
position{CLLocationCoordinate2D} 더블탭 이벤트가 발생한 지도상의 좌표

Example

// 클래스 선언부에 delegate 설정
class ViewController: UIViewController, PlayMapViewDelegate {

// delegate 함수 추가
func mapView(_ mapView: PlayMapView, tapOnMarker marker: PlayMapMarker) {
    // 코드 처리
}
heading: CLLocationDirection

Descript

현재 지도의 방향을 가져오거나 설정합니다. (360도 기준)

Parameters

Example

mapView.heading = 0 // 정북 방향
mapView.heading = 180 // 정남 방향
var angle = mapView.heading // 현재 지도의 방향
mapRotation: Bool

Descript

지도 회전 기능을 on/off 하거나 현재 상태를 가져옵니다.

Parameters

Example

mapView.mapRotation = true // 회전 가능
mapView.mapRotation = false // 회전 불가
var status = mapView.mapRotation // 회전 가능 상태 여부
mapScroll: Bool

Descript

지도 스크롤(패닝) 기능을 on/off 하거나 현재 상태를 가져옵니다.

Parameters

Example

mapView.mapScroll = true // 지도 드래그 가능
mapView.mapScroll = false // 지도 드래그 불가
var status = mapView.mapScroll // 드래그 가능 상태 여부
mapZoom: Bool

Descript

지도 확대/축소 기능을 on/off 하거나 현재 상태를 가져옵니다.

Parameters

Example

mapView.mapZoom = true // 확대/축소 가능
mapView.mapZoom = false // 확대/축소 불가
var status = mapView.mapZoom // 확대/축소 가능 상태 여부
compassMode: Bool

Descript

지도 나침반 기능을 on/off 하거나 현재 상태를 가져옵니다.

Parameters

Example

mapView.compassMode = true // 나침반 기능 활성화
mapView.compassMode = false // 나침반 기능 비활성화
var status = mapView.compassMode // 나침반 기능 활성화 여부
trackingMode: Bool

Descript

지도 트래킹모드를 on/off 하거나 현재 상태를 가져옵니다.

Parameters

Example

mapView.trackingMode = true // 트래킹 모드 활성화
mapView.trackingMode = false // 트래킹 모드 비활성화
var status = mapView.trackingMode // 트래킹 모드 활성화 여부
trafficMode: Bool

Descript

교통정보 기능을 on/off 하거나 현재 상태를 가져옵니다.

Parameters

Example

mapView.trafficMode = true // 교통정보 활성화
mapView.trafficMode = false // 교통정보 비활성화
var status = mapView.trafficMode // 교통정보 활성화 여부
func setAppKey(_ appKey:String)

Descript

지도를 사용하기 위해 인증키를 세팅합니다.

Parameters

Name {Type} Description
appKey{String} 부여받은 인증키

Example

mapView.setAppKey(“[발급받은 appKey]”);
func clear()

Descript

지도상의 모든 오브젝트(마커, 라인, 폴리곤 등)를 제거합니다.

Parameters

Example

mapView.clear()
func set(minZoom:CGFloat, maxZoom:CGFloat)

Descript

표출할 지도의 최대/최소 줌레벨을 설정합니다.

Parameters

Name {Type} Description
minZoom{CGFloat} 표출할 최소레벨
maxZoom{CGFloat} 표출할 최대레벨

Example

mapView.set(minZoom: 10, maxZoom:15) // 10~15레벨까지 표출
func addAnimation(animation:PlayMapAnimation )

Descript

애니메이션을 추가합니다.

Parameters

Name {Type} Description
animation{PlayMapAnimation} PlayMapAnimation 객체

Example


let animation = PlayMapAnimation(position:position, animationView:animationView)
mapView.addAnimation(animation)
        
func removeAnimation(animation:PlayMapAnimation)

Descript

애니메이션을 삭제합니다.

Parameters

Name {Type} Description
animation{PlayMapAnimation} PlayMapAnimation 객체

Example


let animation = PlayMapAnimation(position:position, animationView:animationView)
mapView.removeAnimation(animation)
        
func removeAllAnimation( )

Descript

모든 애니메이션을 삭제합니다.

Example


mapView.removeAllAnimation( )
        
func animateTo(location:CLLocationCoordinate2D, zoom:Int)

Descript

애니메이션 효과와 함께 해당 지점과 줌레벨로 지도을 이동합니다.

Parameters

Name {Type} Description
location{CLLocationCoordinate2D} 이동시킬 지도상의 좌표
zoom{Int} 줌레벨

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let zoom = 10
mapView.animateTo(location:coord, zoom: zoom) // coord와 zoom으로 지도 애니메이션
func animateTo(zoom:Int)

Descript

애니메이션 효과와 함께 해당 줌레벨로 이동합니다.

Parameters

Name {Type} Description
zoom{Int} 줌레벨

Example

mapView.animateTo(zoom: 10) // 현재 위치에서 10레벨로 지도 애니메이션
func animateTo(location:CLLocationCoordinate2D, zoom:Int, isAnimated:Bool)

Descript

애니메이션 효과 적용 여부를 선택하여 해당 지점과 줌레벨로 지도를 이동합니다.

Parameters

Name {Type} Description
location{CLLocationCoordinate2D} 이동시킬 지도 상의 좌표
zoom{Int} 줌 레벨
isAnimated{Bool} 애니메이션 효과 적용 여부

Example


let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let zoom = 10
mapView.animateTo(location: coord, zoom: zoom, isAnimated: true) // 애니메이션 효과 On
mapView.animateTo(location: coord, zoom: zoom, isAnimated: true) // 애니메이션 효과 Off
        
func animateTo(location:CLLocationCoordinate2D)

Descript

애니메이션 효과와 함께 지정한 위치로 화면을 이동합니다.

Parameters

Name {Type} Description
location{CLLocationCoordinate2D} 이동시킬 지도 상의 좌표

Example


let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
mapView.animateTo(location: coord)
        
func getCenter()->CLLocationCoordinate2D?

Descript

현재 지도의 중심 좌표를 가져옵니다.

Parameters

Example

let center = mapView.getCenter()
func setCenter(_ location:CLLocationCoordinate2D, zoom:Int)

Descript

현재 지도의 중심 좌표와 줌레벨을 설정합니다.

Parameters

Name {Type} Description
location{CLLocationCoordinate2D} 설정할 지도의 좌표
zoom{CLLocationCoordinate2D} 설정할 줌레벨

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let zoom = 10
mapView.setCenter(location:coord, zoom: zoom) // coord와 zoom으로 지도 이동
func setCenter(_ location:CLLocationCoordinate2D)

Descript

현재 지도의 중심 좌표를 설정합니다.

Parameters

Name {Type} Description
location{CLLocationCoordinate2D} 설정할 지도의 좌표

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
mapView.animateTo(coord) // coord 로 지도 애니메이션
func fitCenter(_ location:CLLocationCoordinate2D, radius:Int)

Descript

현재 지도의 중심 좌표를 해당 반경이 보이도록 설정합니다.

Parameters

Name {Type} Description
location{CLLocationCoordinate2D} 설정할 지도의 좌표
radius{Int} 표출될 지도의 반경

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let radius = 500 // 반경 500미터
mapView.fitCenter(location:coord, radius: radius) // coord와 반경으로 지도 이동
func setMapBounds(_ locationList:Array<CLLocationCoordinate2D>, padding:UIEdgeInsets, animated:Bool)

Descript

현재 지도의 영역과 상하좌우 여백, 애니메이션 적용 여부를 설정합니다.

Parameters

Name {Type} Description
locationList{Array<CLLocationCoordinate2D>} 한 화면에 전부 표시할 좌표 리스트
padding{UIEdgeInsets} 상하좌우 여백
animated{Bool} 애니메이션 효과 적용 여부

Example


let locationArray = Array.init(arrayLiteral:
CLLocationCoordinate2D(latitude: 37.426070, longitude: 126.623825),
CLLocationCoordinate2D(latitude: 37.342867, longitude: 126.661272),
CLLocationCoordinate2D(latitude: 37.350237, longitude: 126.583630),
CLLocationCoordinate2D(latitude: 37.379979, longitude: 126.697002),
CLLocationCoordinate2D(latitude: 37.517759, longitude: 126.624744))
mapView.setMapBounds(locationArray, padding:padding, animated:true)
// 해당 영역으로 이동 (애니메이션 효과 On)
        
func fitBounds(_ bounds:MapBounds)

Descript

현재 지도의 영역을 설정합니다.

Parameters

Name {Type} Description
bounds{MapBounds} 설정할 지도의 영역

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let bounds = MapBounds(sw: sw, ne: ne) // 영역 객체 생성
mapView.fitBounds(bounds) // 해당 영역으로 이동
func fitBounds(_ bounds:MapBounds, padding:CGFloat)

Descript

현재 지도의 영역과 상하좌우 여백을 설정합니다.

Parameters

Name {Type} Description
bounds{MapBounds} 설정할 지도의 영역
padding{CGFloat} 상하좌우 여백

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let bounds = MapBounds(sw: sw, ne: ne) // 영역 객체 생성
let padding = 20 // 20픽셀만큼 패딩
mapView.fitBounds(bounds, padding:padding) // 해당 영역으로 이동
func fitBounds(_ bounds:MapBounds, padding: UIEdgeInsets)

Descript

현재 지도의 영역과 상하좌우 여백을 설정합니다.

Parameters

Name {Type} Description
bounds{MapBounds} 설정할 지도의 영역
padding{UIEdgeInsets} 상하좌우 여백

Example


let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let bounds = MapBounds(sw: sw, ne: ne) // 영역 객체 생성
let padding = UIEdgeInsets(top: 10, left: 20, bottom: 30, right: 15) // 상하좌우 padding 각각 설정
mapView.fitBounds(bounds, padding:padding) // 해당 영역으로 이동
        
func fitBounds(bounds:MapBounds, padding:CGFloat, isAnimated:Bool)

Descript

현재 지도의 영역과 상하좌우 여백, 애니메이션 적용 여부를 설정합니다.

Parameters

Name {Type} Description
bounds{MapBounds} 설정할 지도의 영역
padding{CGFloat} 상하좌우 여백
isAnimated{Bool} 애니메이션 효과 적용 여부

Example


let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let bounds = MapBounds(sw: sw, ne: ne) // 영역 객체 생성
let padding = 20
mapView.fitBounds(bounds, padding:padding, isAnimated:true) // 해당 영역으로 이동 (애니메이션 효과 On)
        
func getZoom()->Int?

Descript

현재 지도의 줌레벨을 가져옵니다.

Parameters

Example

let zoom = mapView.getZoom()
func setZoom(_ zoom:Int)

Descript

현재 지도의 줌레벨을 설정합니다.

Parameters

Name {Type} Description
zoom{Int} 설정할 줌레벨

Example

mapView.setZoom(10) // 10레벨로 이동
func setZoomButtonActive(margin:CGPoint, position:MapControlPosition )

Descript

확대/축소 버튼의 위치를 설정합니다.

Parameters

Name {Type} Description
margin{CGPoint} 상하좌우 여백
position{MapControlPosition} Compass 의 위치 (MapControlPosition 생략 가능)

Example


let padding = 80
mapView.setZoomButtonActive(margin:padding, position: .LeftBottom )
        
func convertPixelToMeter(_ pixel:Double)->Double

Descript

스크린 픽셀 거리를 실제 거리(미터)로 변환합니다.

Parameters

Name {Type} Description
pixel{Double} 픽셀 거리

Example

var meter = mapView.convertPixelToMeter(100) // 100픽셀에 대한 실제거리(미터)
func convertMeterToPixel(_ meter:Double)->Double

Descript

실제 거리(미터)를 스크린 픽셀 거리로 변환합니다.

Parameters

Name {Type} Description
meter{Double} 실제 거리(미터)

Example

var pixel = mapView.convertMeterToPixel(100) // 100미터에 대한 픽셀거리
func setCompassPosition(margin:CGPoint, position:MapControlPosition)

Descript

나침반의 위치를 설정합니다.

Parameters

Name {Type} Description
margin{CGPoint} 상하좌우 여백
position{MapControlPosition} Compass 의 위치 (MapControlPosition 생략 가능)
  • MapControlPosition.None
  • MapControlPosition.LeftTop
  • MapControlPosition.RightTop
  • MapControlPosition.LeftBottom
  • MapControlPosition.RightBottom

Example


let padding = 20
mapView.setCompassPosition(margin:padding, position: .LeftTop )
        
func setLocationBtnPosition(margin:CGPoint, position:MapControlPosition)

Descript

현재 위치 버튼의 위치를 설정합니다.

Parameters

Name {Type} Description
margin{CGPoint} 상하좌우 여백
position{MapControlPosition} Compass 의 위치 (MapControlPosition 생략 가능)

Example


let padding = 20
mapView.setLocationBtnPosition(margin:padding, position: .LeftBottom )
        
func setLogoPosition(margin:CGPoint, position:MapControlPosition)

Descript

로고이미지의 위치를 설정합니다.

Parameters

Name {Type} Description
margin{CGPoint} 상하좌우 여백
position{MapControlPosition} Compass 의 위치 (MapControlPosition 생략 가능)
  • MapControlPosition.None
  • MapControlPosition.LeftTop
  • MapControlPosition.RightTop
  • MapControlPosition.LeftBottom
  • MapControlPosition.RightBottom

Example


let padding = 20
mapView.setLogoPosition(margin:padding, position: .RightBottom )
        
func setScaleBarPosition(margin:CGPoint, position:MapControlPosition)

Descript

축척바의 위치를 설정합니다.

Parameters

Name {Type} Description
margin{CGPoint} 상하좌우 여백
position{MapControlPosition} Compass 의 위치 (MapControlPosition 생략 가능)
  • MapControlPosition.None
  • MapControlPosition.LeftTop
  • MapControlPosition.RightTop
  • MapControlPosition.LeftBottom
  • MapControlPosition.RightBottom

Example


let padding = 20
mapView.setScaleBarPosition(margin:padding, position: .LeftBottom )
        
func addText(_ text:PlayMapText)

Descript

지도상에 텍스트 객체를 추가합니다.

Parameters

Name {Type} Description
text{PlayMapText} PlayMapText 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let text = PlayMapText(position: coord, text: "Hello!") // 텍스트 객체 생성
text.fontSize = 18 // 폰트사이즈
text.fontColor = .red // 폰트 색상
text.backgroundColor = .clear // 배경 색상
text.borderWidth = 0 // 외곽선 두께
text.borderColor = .brown // 외곽선 색상
mapView.addText(text) // 지도에 추가
func removeText(_ text:PlayMapText)

Descript

지도상에서 텍스트 객체를 제거합니다.

Parameters

Name {Type} Description
text{PlayMapText} 제거할 PlayMapText 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let text = PlayMapText(position: coord, text: "Hello!") // 텍스트 객체 생성
mapView.addText(text) // 지도에 추가

mapView.removeText(text) // 지도에서 제거
func removeAllTexts()

Descript

지도상의 모든 텍스트 객체를 제거합니다.

Parameters

Example

mapView.removeAllTexts() // 모든 텍스트 객체를 제거
func addMarker(_ marker:PlayMapMarker)

Descript

지도상에 마커 객체를 추가합니다.

Parameters

Name {Type} Description
marker{PlayMapMarker} 추가할 PlayMapMarker 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker = PlayMapMarker(position: coord)
marker.title = "제목없음" // 마커 제목
marker.subTitle = "내용없음" // 마커 부제목
marker.draggable = true // 마커 드래그 가능 여부
mapView.addMarker(marker) // 지도에 추가
func addMarkers(_ markers:Array<PlayMapMarker>)

Descript

한번에 여러 개의 마커 객체를 추가할 때 사용합니다.

Parameters

Name {Type} Description
marker{Array<PlayMapMarker>} 추가할 PlayMapMarker객체의 배열

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
let marker2 = PlayMapMarker(position: coord) // 2번 마커
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가
func selectMarker(_ marker:PlayMapMarker)

Descript

해당 마커를 선택합니다. 마커의 어노테이션 뷰가 보여지게 됩니다.

Parameters

Name {Type} Description
marker{PlayMapMarker} 선택할 마커의 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
let marker2 = PlayMapMarker(position: coord) // 2번 마커
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

mapView.selectMarker(marker1) // 1번 마커 선택
func deselectMarker(_ marker:PlayMapMarker)

Descript

해당 마커의 선택을 해제합니다. 마커의 어노테이션 뷰가 사라지게 됩니다.

Parameters

Name {Type} Description
marker{PlayMapMarker} 선택 해제할 마커의 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
let marker2 = PlayMapMarker(position: coord) // 2번 마커
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

mapView.selectMarker(marker1) // 1번 마커 선택
mapView.deselectMarker(marker1) // 1번 마커 선택 해제
func findMarkerByTag(_ tag:Int)->Array<PlayMapMarker>

Descript

해당 태그를 설정한 마커 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
tag{Int} 마커 객체 생성시에 설정한 tag 값

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
marker1.tag = 1
let marker2 = PlayMapMarker(position: coord) // 2번 마커
marker2.tag = 2
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

let result = mapView.findMarkerByTag(1) // tag가 1인 마커 반환
func findMarkerByName(_ name:String)->Array<PlayMapMarker>

Descript

해당 name을 설정한 마커 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
name{String} 마커 객체 생성시에 설정한 name값

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
marker1.name = “m1”
let marker2 = PlayMapMarker(position: coord) // 2번 마커
marker2.name = “m2”
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

let result = mapView.findMarkerByName(“m1”) // name이 “m1”인 마커 반환
func removeMarker(_ marker:PlayMapMarker)

Descript

해당 마커 객체를 지도상에서 제거합니다.

Parameters

Name {Type} Description
marker{PlayMapMarker} 제거할 마커의 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker = PlayMapMarker(position: coord) // 마커
mapView.addMarker(marker) // 지도에 추가

mapView.removeMarker(marker) // 지도에서 제거
func removeMarkers(_ markers:Array<PlayMapMarker>)

Descript

한번에 여러 개의 마커를 제거할 때 사용합니다.

Parameters

Name {Type} Description
marker{Array<PlayMapMarker>} 제거할 마커 객체의 배열

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
let marker2 = PlayMapMarker(position: coord) // 2번 마커
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

mapView.removeMarkers(markerArray) // 마커 제거
func removeMarkers(_ markers:Array<PlayMapMarker>)

Descript

한번에 여러 개의 마커를 제거할 때 사용합니다.

Parameters

Name {Type} Description
marker{Array<PlayMapMarker>} 제거할 마커 객체의 배열

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
let marker2 = PlayMapMarker(position: coord) // 2번 마커
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

mapView.removeMarkers(markerArray) // 마커 제거
func removeAllMarkers()

Descript

모든 마커 객체를 제거합니다.

Parameters

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
let marker2 = PlayMapMarker(position: coord) // 2번 마커
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

mapView.removeAllMarkers()
func fitMapBoundsToShowAllMarkers()

Descript

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

Parameters

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let marker1 = PlayMapMarker(position: coord) // 1번 마커
let marker2 = PlayMapMarker(position: coord) // 2번 마커
let markerArray = [marker1, marker2] // 배열에 담기
mapView.addMarker(markerArray) // 지도에 추가

mapView.fitMapBoundsToShowAllMarkers()
func addCircle(_ circle:PlayMapCircle)

Descript

지도상에 원 객체를 추가합니다.

Parameters

Name {Type} Description
circle{PlayMapCircle} 추가할 원 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let circle = PlayMapCircle(position: coord, radius: 100) // 반경 100미터 원 객체 생성
circle.fillColor = .cyan // 채움 색상
circle.strokeColor = .red // 선 색상
circle.opacity = 0.5 // 투명도 50%
mapView.addCircle(circle) // 지도에 추가
func findCircleByTag(_ tag:Int)->Array<PlayMapCircle>

Descript

해당 태그를 설정한 원 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
tag{Int} 원 객체 생성시에 설정한 태그 값

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let circle1 = PlayMapCircle(position: coord, radius: 100) // 반경 100미터 원 객체 생성
circle1.tag = 1 // 태그 등록
let circle2 = PlayMapCircle(position: coord, radius: 200) // 반경 200미터 원 객체 생성
circle2.tag = 2 // 태그 등록

mapView.addCircle(circle1) // 지도에 추가
mapView.addCircle(circle2) // 지도에 추가

let result = mapView.findCircleByTag(1) // 태그가 1인 원 객체 반환
func findCircleByName(_ name:String)->Array<PlayMapCircle>

Descript

해당 name을 설정한 원 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
name{String} 원 객체 생성시에 설정한 name 값

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let circle1 = PlayMapCircle(position: coord, radius: 100) // 반경 100미터 원 객체 생성
circle1.name = “c1” // name 등록
let circle2 = PlayMapCircle(position: coord, radius: 200) // 반경 200미터 원 객체 생성
circle2.name = “c2” // name 등록

mapView.addCircle(circle1) // 지도에 추가
mapView.addCircle(circle2) // 지도에 추가

let result = mapView.findCircleByName(“c1”) // name이 “c1”인 원 객체 반환
func removeCircle(_ circle:PlayMapCircle)

Descript

원 객체를 지도상에서 제거합니다.

Parameters

Name {Type} Description
circle{PlayMapCircle} 제거할 원 객체

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let circle = PlayMapCircle(position: coord, radius: 100) // 반경 100미터 원 객체 생성
mapView.addCircle(circle) // 지도에 추가

mapView.removeCircle(circle) // 지도에서 제거
func removeAllCircles()

Descript

지도상의 모든 원 객체를 제거합니다.

Parameters

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let circle1 = PlayMapCircle(position: coord, radius: 100) // 반경 100미터 원 객체 생성
let circle2 = PlayMapCircle(position: coord, radius: 200) // 반경 200미터 원 객체 생성

mapView.addCircle(circle1) // 지도에 추가
mapView.addCircle(circle2) // 지도에 추가

mapView.removeAllCircles() // 모든 원 객체 제거
func fitMapBoundsToShowAllCircles()

Descript

지도상의 모든 원 객체가 보이도록 지도 영역을 변경합니다.

Parameters

Example

let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let circle1 = PlayMapCircle(position: coord, radius: 100) // 반경 100미터 원 객체 생성
let circle2 = PlayMapCircle(position: coord, radius: 200) // 반경 200미터 원 객체 생성

mapView.addCircle(circle1) // 지도에 추가
mapView.addCircle(circle2) // 지도에 추가

mapView.fitMapBoundsToShowAllCircles()
func addRectangle(_ rectangle:PlayMapRectangle)

Descript

지도상에 사각형 객체를 추가합니다.

Parameters

Name {Type} Description
rectangle{PlayMapRectangle} 추가할 사각형 객체

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne)) // 사각형 객체 생성
rectangle.fillColor = .cyan // 채움 색상
rectangle.strokeColor = .red // 선 색상
rectangle.opacity = 0.5 // 투명도
mapView.addRectangle(rectangle) // 지도에 추가
func findRectangleByTag(_ tag:Int)->Array<PlayMapRectangle>

Descript

해당 태그를 설정한 사각형 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
tag{Int} 사각형 객체 생성시에 설정한 태그 값

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let rectangle1 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
rectangle1.tag = 1 // 태그 등록
let rectangle2 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
rectangle2.tag = 2 // 태그 등록
mapView.addRectangle(rectangle1)
mapView.addRectangle(rectangle2)

let result = mapView.findRectangleByTag(1) // 태그가 1인 사각형 객체 반환
func findRectangleByName(_ name:String)->Array<PlayMapRectangle>

Descript

해당 name을 설정한 사각형 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
name{String} 사각형 객체 생성시에 설정한 name 값

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let rectangle1 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
rectangle1.name = “r1” // name 등록
let rectangle2 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
rectangle2.name = “r2” // name 등록
mapView.addRectangle(rectangle1)
mapView.addRectangle(rectangle2)

let result = mapView.findRectangleByName(“r1”) // name이 “r1”인 사각형 객체 반환
func removeRectangle(_ rectangle:PlayMapRectangle)

Descript

사각형 객체를 지도상에서 제거합니다.

Parameters

Name {Type} Description
rectangle{PlayMapRectangle} 제거할 사각형 객체

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
mapView.addRectangle(rectangle)

mapView.removeRectangle(rectangle) // 사각형 객체 제거
func removeAllRectangles()

Descript

지도상의 모든 사각형 객체를 제거합니다.

Parameters

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let rectangle1 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
let rectangle2 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
mapView.addRectangle(rectangle1)
mapView.addRectangle(rectangle2)

mapView.removeAllRectangles() // 모든 사각형 객체 제거
func fitMapBoundsToShowAllRectangles()

Descript

지도상의 모든 사각형 객체가 보이도록 지도 영역을 변경합니다.

Parameters

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let rectangle1 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
let rectangle2 = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne))
mapView.addRectangle(rectangle1)
mapView.addRectangle(rectangle2)

mapView.fitMapBoundsToShowAllRectangles() // 모든 사각형 객체가 보이도록 지도 이동
func addPolyline(_ polyline:PlayMapPolyline)

Descript

지도상에 폴리라인 객체를 추가합니다.

Parameters

Name {Type} Description
polyline{PlayMapPolyline} 추가할 폴리라인 객체

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 // 선 색상

mapView.addPolyline(polyline) // 지도에 추가
func findPolylineByTag(_ tag:Int)->Array<PlayMapPolyline>

Descript

해당 태그를 설정한 폴리라인 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
tag{Int} 폴리라인 객체 생성시에 설정한 태그 값

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polyline1 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성
polyline1.tag = 1 // 태그 등록
let polyline2 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성
polyline2.tag = 2 // 태그 등록

mapView.addPolyline(polyline1)
mapView.addPolyline(polyline2)

let result = mapView.findPolylineByTag(1) // 태그가 1인 라인 객체 반환
func findPolylineByName(_ name:String)->Array<PlayMapPolyline>

Descript

해당 name을 설정한 폴리라인 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
name{String} 폴리라인 객체 생성시에 설정한 name 값

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polyline1 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성
polyline1.name = “p1” // name 등록
let polyline2 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성
polyline2.name = “p2” // name 등록

mapView.addPolyline(polyline1)
mapView.addPolyline(polyline2)

let result = mapView.findPolylineByName(“p1”) // name이 “p1”인 라인 객체 반환
func removePolyline(_ polyline:PlayMapPolyline)

Descript

폴리라인 객체를 지도상에서 제거합니다.

Parameters

Name {Type} Description
polyline{PlayMapPolyline} 제거할 폴리라인 객체

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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) // 폴리라인 객체 생성

mapView.addPolyline(polyline) // 지도에 등록

mapView.removePolyline(polyline) // 지도에서 제거
func removeAllPolylines()

Descript

지도상의 모든 폴리라인 객체를 제거합니다.

Parameters

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polyline1 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성
let polyline2 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성

mapView.addPolyline(polyline1)
mapView.addPolyline(polyline2)

mapView.removeAllPolylines() // 모든 폴리라인 객체 제거
func fitMapBoundsToShowAllPolylines()

Descript

지도상의 모든 폴리라인 객체가 보이도록 지도 영역을 변경합니다.

Parameters

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polyline1 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성
let polyline2 = PlayMapPolyline(coordinates: path) // 폴리라인 객체 생성

mapView.addPolyline(polyline1)
mapView.addPolyline(polyline2)

mapView. fitMapBoundsToShowAllPolylines()
func addPolygon(_ polygon:PlayMapPolygon)

Descript

지도상에 폴리곤 객체를 추가합니다.

Parameters

Name {Type} Description
polygon{PlayMapPolygon} 추가할 폴리곤 객체

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 // 라인 색상

mapView.addPolygon(polygon) // 지도에 등록
func findPolygonByTag(_ tag:Int)->Array<PlayMapPolygon>

Descript

해당 태그를 설정한 폴리곤 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
tag{Int} 폴리곤 객체 생성시에 설정한 태그 값

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polygon1 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성
polygon1.tag = 1 // 태그 등록
let polygon2 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성
polygon2.tag = 2 // 태그 등록

mapView.addPolygon(polygon1) // 지도에 등록
mapView.addPolygon(polygon2) // 지도에 등록

let result = mapView.findPolygonByTag(1) // 태그가 1인 폴리곤 객체 반환
func findPolygonByName(_ name:String)->Array<PlayMapPolygon>

Descript

해당 name을 설정한 폴리곤 객체의 배열을 가져옵니다.

Parameters

Name {Type} Description
name{String} 폴리곤 객체 생성시에 설정한 name 값

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polygon1 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성
polygon1.name = “p1” // name 등록
let polygon2 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성
polygon2.name = “p2” // name 등록

mapView.addPolygon(polygon1) // 지도에 등록
mapView.addPolygon(polygon2) // 지도에 등록

let result = mapView.findPolygonByName(“p1”) // name이 “p1”인 폴리곤 객체 반환
func removePolygon(_ polygon:PlayMapPolygon)

Descript

폴리곤 객체를 지도상에서 제거합니다.

Parameters

Name {Type} Description
polygon{PlayMapPolygon} 제거할 폴리곤 객체

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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) // 폴리곤 객체 생성

mapView.addPolygon(polygon) // 지도에 등록

mapView.removePolygon(polygon) // 지도에서 제거
func removeAllPolygons()

Descript

지도상의 모든 폴리곤 객체를 제거합니다.

Parameters

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polygon1 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성
let polygon2 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성

mapView.addPolygon(polygon1) // 지도에 등록
mapView.addPolygon(polygon2) // 지도에 등록

mapView.removeAllPolygons() // 모든 객체 제거
func fitMapBoundsToShowAllPolygons()

Descript

지도상의 모든 폴리곤 객체가 보이도록 지도 영역을 변경합니다.

Parameters

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 polygon1 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성
let polygon2 = PlayMapPolygon(coordinates: path) // 폴리곤 객체 생성

mapView.addPolygon(polygon1) // 지도에 등록
mapView.addPolygon(polygon2) // 지도에 등록

mapView. fitMapBoundsToShowAllPolygons()
func addGroundImage(_ groundImage:PlayMapGroundImage)

Descript

지도상의 특정 영역에 고정되어 있는 그라운드 이미지 객체를 추가합니다.

Parameters

Name {Type} Description
groundImage{PlayMapGroundImage} 그라운드 이미지 객체

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let bounds = MapBounds(sw: sw, ne: ne) // 이미지가 표시될 지도상의 영역 객체
let cityhallImage = UIImage(named: "cityhall") // 이미지
let groundImage = PlayMapGroundImage(bounds: bounds, image: cityhallImage!) // 그라운드 이미지 객체 생성
mapView.addGroundImage(groundImage) // 지도에 등록
func removeGroundImage(_ groundImage:PlayMapGroundImage)

Descript

해당 그라운드 이미지 객체를 지도상에서 제거합니다.

Parameters

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let bounds = MapBounds(sw: sw, ne: ne) // 이미지가 표시될 지도상의 영역 객체
let cityhallImage = UIImage(named: "cityhall") // 이미지
let groundImage = PlayMapGroundImage(bounds: bounds, image: cityhallImage!) // 그라운드 이미지 객체 생성
mapView.addGroundImage(groundImage) // 지도에 등록

mapView.removeGroundImage(groundImage) // 지도에서 제거
func removeAllGroundImages()

Descript

지도상의 모든 그라운드 이미지 객체를 제거합니다.

Parameters

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845) // 남서쪽 좌표
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851) // 북동쪽 좌표
let bounds = MapBounds(sw: sw, ne: ne) // 이미지가 표시될 지도상의 영역 객체
let cityhallImage = UIImage(named: "cityhall") // 이미지
let groundImage1 = PlayMapGroundImage(bounds: bounds, image: cityhallImage!) // 그라운드 이미지 객체 생성
let groundImage2 = PlayMapGroundImage(bounds: bounds, image: cityhallImage!) // 그라운드 이미지 객체 생성
mapView.addGroundImage(groundImage1) // 지도에 등록
mapView.addGroundImage(groundImage2) // 지도에 등록

mapView.removeAllGroundImages() // 모든 그라운드 이미지 제거
func setMarkerCluster(_ markerCluster:MarkerCluster)

Descript

마커 클러스터 객체를 설정합니다.

Parameters

Name {Type} Description
markerCluster{MarkerCluster} 추가할 마커클러스터 객체

Example

var markerArray:Array<PlayMapMarker> = []
// 마커 200개 생성
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]) // 단계별 색상 설정
mapView.setMarkerCluster(markerCluster) // 지도에 등록
func removeMarkerCluster()

Descript

마커 클러스터 객체를 해제합니다.

Parameters

Example

mapView.removeMarkerCluster()
func measureDistance()

Descript

거리측정 기능을 시작합니다.

Parameters

Example

mapView.measureDistance()
// 위 코드 수행 후 지도상에서 원하는 지점 터치
func exitMeasureDistance()

Descript

거리측정 기능을 종료합니다.

Parameters

Example

mapView.exitMeasureDistance()
func measureArea()

Descript

면적측정 기능을 시작합니다.

Parameters

Example

mapView.measureArea()
// 위 코드 수행 후 지도상에서 원하는 지점 터치
func exitMeasureArea()

Descript

거리측정 기능을 종료합니다.

Parameters

Example

mapView.exitMeasureArea()
func distanceBetweenMarker(from:PlayMapMarker, to:PlayMapMarker)->Int

Descript

두 마커 객체 사이의 거리를 반환합니다(미터).

Parameters

Name {Type} Description
from{PlayMapMarker} 시작 지점의 마커 객체
to{PlayMapMarker} 끝 지점의 마커 객체

Example

let coord1 = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let coord2 = CLLocationCoordinate2D(latitude: 37.56650, longitude: 126.97751)

let marker1 = PlayMapMarker(position: coord1)
let marker2 = PlayMapMarker(position: coord2)

let result = mapView.distanceBetweenMarker(from:marker1, to:marker2) // 거리 반환
func distanceBetweenCoordinates(from:CLLocationCoordinate2D, to:CLLocationCoordinate2D)->Int

Descript

두 좌표 사이의 거리를 반환합니다(미터).

Parameters

Name {Type} Description
from{CLLocationCoordinate2D} 시작 지점의 좌표
to{CLLocationCoordinate2D} 끝 지점의 좌표

Example

let coord1 = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let coord2 = CLLocationCoordinate2D(latitude: 37.56650, longitude: 126.97751)

let result = mapView.distanceBetweenCoordinates(from:coord1, to:coord2) // 거리 반환
func addCustom(_ custom: PlayMapCustom)

Descript

지도 상에 사용자 정의 View 를 추가합니다.

Parameters

Name {Type} Description
custom{PlayMapCustom} 사용자 정의 View 를 포함하는 객체

Example


let customView = UIVIew(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let playMapCustom = PlayMapCustom(position: position: customView: CustomView)
mapView.addCustom(playMapCustom)
        
func removeCustom(_ custom: PlayMapCustom)

Descript

사용자 정의 view 객체를 지도 상에 제거합니다.

Parameters

Name {Type} Description
custom{PlayMapCustom} 제거할 사용자 정의 View 를 포함하는 객체

Example


let customView = UIVIew(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let playMapCustom = PlayMapCustom(position: position: customView: CustomView)
mapView.addCustom(playMapCustom)
mapView.removeCustom(playMapCustom)
        
blackTheme : Bool

Descript

현재 테마가 블랙 테마인지 여부를 가져옵니다.

Example


mapView.blackTheme = true
mapView.blackTheme = false
        

PlayMapText

Properties

offset:CGSize?

Description

텍스트 객체를 표시하기 위한 오프셋.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.offset = CGSize(width:10, height: 10)

fontSize:CGFloat

Description

텍스트의 폰트 사이즈.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.fontSize = 17

fontColor:UIColor

Description

폰트 색상.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.fontColor = UIColor(red: 1, green: 0, blue:0, alpha: 1)

fontWeight:Int

Description

폰트 두께.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.fontWeight = 5

backgroundColor:UIColor

Description

배경 색상.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.backgroundColor = UIColor(red: 1, green: 1, blue:1, alpha: 1)

borderWidth:CGFloat

Description

테두리 두께.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.borderWidth = 2

borderColor:UIColor

Description

테두리 색상.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.borderColor = UIColor(red: 0, green: 0, blue:0, alpha: 1)

alignment:TextAlignment

Description

텍스트 정렬.

Example

let text = PlayMapText(position: position, text: "Hello!")
text.alignment = .Center
text.alignment = .LeftMiddle
text.alignment = .RightMiddle

PlayMapMarker

Properties

position:CLLocationCoordinate2D?

Description

마커가 표시될 지도상의 좌표.

Example

let marker = PlayMapMarker(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851))
let position = marker.position

icon:UIImage?

Description

마커의 이미지 객체.

Example

let marker = PlayMapMarker(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851))
marker.icon = UIImage(named: “image”)

title:String?

Description

어노테이션 뷰에 표시될 제목.

Example

let marker = PlayMapMarker(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851))
marker.title = “제목”

subTitle:String?

Description

어노테이션 뷰에 표시될 부제목.

Example

let marker = PlayMapMarker(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851))
marker.subTitle = “부제목”

offset:CGSize?

Description

마커를 표시하기 위한 오프셋.

Example

let marker = PlayMapMarker(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851))
marker.offset = CGSize(width: 20, height: 20)

draggable:Bool?

Description

마커의 드래그 가능 여부.

Example

let marker = PlayMapMarker(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851))
marker.draggable = true

PlayMapCircle

Properties

position:CLLocationCoordinate2D?

Description

원이 표시될 지도상의 좌표.

Example

let circle = PlayMapCircle(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851), radius: 100)
let position = circle.position

radius:Int

Description

원의 반경.

Example

let circle = PlayMapCircle(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851), radius: 100)
let radius = circle.radius

strokeColor:UIColor?

Description

외곽선 색상.

Example

let circle = PlayMapCircle(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851), radius: 100)
ciecle.strokeColor = UIColor(red: 0, green: 0, blue:0, alpha: 1)

strokeWidth:CGFloat?

Description

외곽선 두께.

Example

let circle = PlayMapCircle(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851), radius: 100)
circle.strokeWidth = 2

fillColor:UIColor?

Description

채움 색상.

Example

let circle = PlayMapCircle(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851), radius: 100)
ciecle.fillColor = UIColor(red: 1, green: 1, blue:1, alpha: 1)

opacity:CGFloat?

Description

투명도.

Example

let circle = PlayMapCircle(position: CLLocationCoordinate2D.init(latitude: 37.56640, longitude: 126.97851), radius: 100)
circle.opacity = 0.5

PlayMapRectangle

Properties

bounds:MapBounds?

Description

사각형이 표시될 지도의 영역.

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845)
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851)
let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne)) /

let bounds = rectangle.bounds

strokeColor:UIColor?

Description

외곽선 색상.

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845)
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851)
let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne)) /

rectangle.strokeColor = UIColor(red: 0, green: 0, blue:0, alpha: 1)

strokeWidth:CGFloat?

Description

외곽선 두께.

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845)
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851)
let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne)) /

rectangle.strokeWidth = 2

fillColor:UIColor?

Description

채움 색상.

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845)
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851)
let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne)) /

rectangle.fillColor = UIColor(red: 1, green: 1, blue:1, alpha: 1)

opacity:CGFloat?

Description

투명도.

Example

let sw = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97845)
let ne = CLLocationCoordinate2D(latitude: 37.56645, longitude: 126.97851)
let rectangle = PlayMapRectangle(rectangle: MapBounds(sw: sw, ne: ne)) /

rectangle.opacity = 0.8

PlayMapPolyline

Properties

path:Array<CLLocationCoordinate2D>?

Description

폴리라인을 구성하는 지도 좌표의 배열.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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)

let polylinePath = polyline.path

strokeColor:UIColor?

Description

외곽선 색상.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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.strokeColor = UIColor(red: 0, green: 0, blue:0, alpha: 1)

strokeWidth:CGFloat?

Description

외곽선 두께.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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 = 2

opacity:CGFloat?

Description

투명도.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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.opacity = 0.8

lineStyle:LineStyle

Description

라인 스타일.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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.lineStyle = .dash // 점선
polyline.lineStyle = .dot // 점선
polyline.lineStyle = .solid // 실선

PlayMapPolygon

Properties

path:Array<CLLocationCoordinate2D>?

Description

폴리곤을 구성하는 지도 좌표의 배열.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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)

let polygonPath = polygon.path

strokeColor:UIColor?

Description

외곽선 색상.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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.strokeColor = UIColor(red: 0, green: 0, blue:0, alpha: 1)

strokeWidth:CGFloat?

Description

외곽선 두께.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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.strokeWidth = 2

opacity:CGFloat?

Description

투명도.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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

fillColor:UIColor?

Description

채움 색상.

Example

let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
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.fillColor = UIColor(red: 1, green: 1, blue:1, alpha: 1)

PlayMapGroundImage

Description

지도상의 특정 영역에 고정되어 있는 이미지 객체입니다.

Constructors

PlayMapGroundImage(bounds:MapBounds, image:UIImage)

Parameters

Name {Type} Description
bounds{MapBounds} 표시될 지도상의 영역
image{UIImage} 표시될 이미지

Example

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!)

MarkerCluster

Description

대량의 마커가 겹쳐지는 경우 겹쳐진 숫자로 표시하기 위한 클래스입니다.

Constructors

MarkerCluster(_ markers:Array<PlayMapMarker>)

Parameters

Name {Type} Description
markers{Array<PlayMapMarker>} 표시될 마커의 배열

Example

var markerArray:Array<PlayMapMarker> = []
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)

Methods

func add(_ marker:PlayMapMarker)

Descript

마커 클러스터 객체에 마커를 추가합니다.

Parameters

Name {Type} Description
marker{PlayMapMarker} 추가할 마커 객체

Example

let markerCluster = MarkerCluster([])
let marker = PlayMapMarker(position: CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851))
markerCluster.add(marker)
func setStep(_ step:Array<Int>)

Descript

클러스터 된 마커의 색상을 변경하기 위한 마커 개수의 단계입니다.

Parameters

Name {Type} Description
step{Array<Int>} 숫자의 배열

Example

let markerCluster = MarkerCluster([])
markerCluster.setStep([50, 100, 150, 200])
func setStepColor(_ colors:Array<UIColor>)

Descript

클러스터 된 마커의 단계별 색상입니다.

Parameters

Name {Type} Description
colors{Array<UIColor>} 단계별 색상

Example

let markerCluster = MarkerCluster([])
markerCluster.setStepColor([.yellow, .systemPink, .orange, .red])

PlaMapCustom

Methods

init(position: CLLocationCoordinate2D, customView: UIView)

Descript

사용자 정의 view 를 포함하는 객체를 생성

Parameters

Name {Type} Description
position{CLLocationCoordinate2D} 지도상에 표시할 좌표
customView{UIView} 사용자가 정의한 view

Example


let customView = UIVIew(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let playMapCustom = PlayMapCustom(position: position: customView: CustomView)
        
func setCustomView(_ view: UIView)

Descript

사용자 정의 view 를 설정합니다.

Parameters

Name {Type} Description
customView{UIView} 사용자가 정의한 view

Example


let customView = UIVIew(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let playMapCustom = PlayMapCustom(position: position: customView: CustomView)
let anotherCustomView = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
playMapCustom.setCustomView(anotherCustomView)
        
func removeCustomView()

Descript

사용자 정의 view 를 PlayMapCustom 객체에서 제거합니다.

Example


let customView = UIVIew(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
let position = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let playMapCustom = PlayMapCustom(position: position: customView: CustomView)
playMapCustom.removeCustomView()
        

PlayMapCustomCallout

Methods

backgroundImage

Descript

PlayCustomCallout 의 배경 이미지 property

Example


let customCallout = PlayMapCustomCallout(position: position,
frameSize:CGSize(width: 200, height: 100))
customCallout.backgroundImage = UIImage(named: "hyundai")
        

PlayMapAnimation

Methods

init(position: CLLocationCoordinate2D, animationView: UIView)

Descript

사용자 정의 Animation 를 포함하는 객체를 생성

Parameters

Name {Type} Description
position{CLLocationCoordinate2D} 지도상에 표시할 좌표
customView{UIView} 사용자가 정의한 view

Example


let animationView: AnimationView = AnimationView()
animationView.frame = CGRect(x:0, y:0, width:100, height:100 )
animationView.backgroundColor = .clear
animationView.animation = Animation.named(“lottie”)
let coord = CLLocationCoordinate2D(latitude: 37.56640, longitude: 126.97851)
let animation = PlayMapAnimation(position:coord, animationView:animationView)
        

PlayMapRestApi

Methods

func requestPoi(_ keyword:String, location:CLLocationCoordinate2D?, sort:Int?, intent:String?, from:Int?, size:Int?, language:Int?, completion:@escaping (Array<PoiInfo>?, Error?)->Void)

Descript

POI 통합 검색 요청

Parameters

Name {Type} Description
keyword{String} 검색할 문자열
location{CLLocationCoordinate2D} 검색할 장소의 좌표
sort{int} 정렬 옵션 (1=추천순, 2=명칭순, 3=거리순)
intent{String} 검색 의도 요청 (ex) "near_poi_class", "poi_name", "fts_poi")
from{int} 검색 결과 시작 위치
size{String} 응답으로 받을 결과 개수
language{int} 언어 설정 (0 : 영어, 3: 한국어-default)
completion{Array<PoiInfo>} 결과 클로져

Example

let api = PlayMapRestApi()
api.requestPoi(“현대”, location: center, sort: nil, intent: nil, from: nil, size: nil, language: nil) { (result, error)->Void in
    if let pois = result {
        for poi in pois {
            if let pos = poi.center {
                DispatchQueue.main.async {
                    let marker = PlayMapMarker(position: pos)
                    marker.title = poi.title
                    marker.subTitle = poi.addr
                    marker.tag = poi.poiId
                    self.mapView?.addMarker(marker)
                }
            }
        }
        
        DispatchQueue.main.async {
            self.mapView?.fitMapBoundsToShowAllMarkers()
        }
    }
}

Return

Return 정보는 Document를 참고해주세요.

func requestPoiDetail(_ poiId:Int, language:Int?, completion:@escaping (PoiDetailInfo?, Error?)->Void)

Descript

POI 상세 정보 검색 요청

Parameters

Name {Type} Description
poiId{int} 검색할 POI ID
language{int} 언어 설정 (0 : 영어, 3: 한국어-default)
completion{PoiDetailInfo} 결과 클로져

Example

let api = PlayMapRestApi()
api.requestPoiDetail(111111, language: nil) { (result, error)->Void in
    if let result = result {
        var detail = ""
        detail += String(format: "POI ID : %d\n", result.poiId == nil ? 0 : result.poiId!)
        detail += String(format: "title : %@\n", result.title == nil ? "" : result.title!)
        detail += String(format: "cname : %@\n", result.cname == nil ? "" : result.cname!)
        detail += String(format: "addr : %@\n", result.addr == nil ? "" : result.addr!)
        detail += String(format: "addrRoad : %@\n", result.addrRoad == nil ? "" : result.addrRoad!)
        detail += String(format: "tele : %@\n", result.tele == nil ? "" : result.tele!)
        detail += String(format: "center : %0.6f, %0.6f\n", result.center == nil ? 0 : result.center!.latitude, result.center == nil ? 0 : result.center!.longitude)
        detail += String(format: "detailCode : %d\n", result.detailCode == nil ? "" : result.detailCode!)
        detail += String(format: "gasoline : %d\n", result.price?.gasoline == nil ? "" : result.price!.gasoline!)
        detail += String(format: "diesel : %d\n", result.price?.diesel == nil ? "" : result.price!.diesel!)
        detail += String(format: "lpg : %d\n", result.price?.lpg == nil ? "" : result.price!.lpg!)
        detail += String(format: "primiumGasoline : %d\n", result.price?.primiumGasoline == nil ? "" : result.price!.primiumGasoline!)
        detail += String(format: "parkTotalNum : %d\n", result.parkingLot?.parkTotalNum == nil ? "" : result.parkingLot!.parkTotalNum!)
        detail += String(format: "availableCount : %d\n", result.parkingLot?.availableCount == nil ? "" : result.parkingLot!.availableCount!)
        detail += String(format: "bizHour : %d\n", result.parkingLot?.bizHour == nil ? "" : result.parkingLot!.bizHour!)
        detail += String(format: "bizHourSat : %d\n", result.parkingLot?.bizHourSat == nil ? "" : result.parkingLot!.bizHourSat!)
        detail += String(format: "bizHourSun : %d\n", result.parkingLot?.bizHourSun == nil ? "" : result.parkingLot!.bizHourSun!)
        detail += String(format: "free : %d\n", result.parkingLot?.free == nil ? "" : result.parkingLot!.free!)
        detail += String(format: "availableCar : %d\n", result.parkingLot?.availableCar == nil ? "" : result.parkingLot!.availableCar!)
        detail += String(format: "basicMinute : %d\n", result.parkingLot?.basicMinute == nil ? "" : result.parkingLot!.basicMinute!)
        detail += String(format: "basicFree : %d\n", result.parkingLot?.basicFee == nil ? "" : result.parkingLot!.basicFee!)
        detail += String(format: "addMinute : %d\n", result.parkingLot?.addMinute == nil ? "" : result.parkingLot!.addMinute!)
        detail += String(format: "addFee : %d\n", result.parkingLot?.addFee == nil ? "" : result.parkingLot!.addFee!)
        detail += String(format: "oneDayFee : %d\n", result.parkingLot?.oneDayFee == nil ? "" : result.parkingLot!.oneDayFee!)
        detail += String(format: "monthlyFee : %d\n", result.parkingLot?.monthlyFee == nil ? "" : result.parkingLot!.monthlyFee!)
        detail += String(format: "echarge : %d\n", result.parkingLot?.echarge == nil ? "" : result.parkingLot!.echarge!)
        detail += String(format: "echargeCd : %d\n", result.parkingLot?.echargeCd == nil ? "" : result.parkingLot!.echargeCd!)
        detail += String(format: "startPoint : %d\n", result.tastyPlaceInfo?.startPoint == nil ? "" : result.tastyPlaceInfo!.startPoint!)
        detail += String(format: "tastyPlaceInfo_menuPrice : %d\n", result.tastyPlaceInfo?.menuList?.menuPrice == nil ? "" : result.tastyPlaceInfo!.menuList!.menuPrice!)


        self.simpleAlertView(detail, title: "POI 상세 정보", view: self)
    }
}

Return

Return 정보는 Document를 참고해주세요.

func requestAroundPoi(_ depthText:String, radius:Int, sort:Int, location:CLLocationCoordinate2D?, priceType:String?, roadType:Int?, from:Int?, size:Int?, priorityHpay:String?, classList:Array<String>?, completion:@escaping (Array<FacilityInfo>?, Error?)->Void)

Descript

시설물 검색 요청

Parameters

Name {Type} Description
depthText{String} 시설물 분류 업종 명칭
radius{int} 반경. m단위. 기본은 10000
sort{int} 정렬 옵션 (1=추천순, 2=명칭순, 3=거리순)
location{CLLocationCoordinate2D} 해당 위치 좌표
roadType{int} 해당 위치 도로종별
from{int} 응답으로 받을 결과 시작 (0부터)
size{int} 응답으로 받을 결과 개수 (from값이 없을 경우 0부터)
priorityHpay{String} H-pay 가맹점 우선 표시
classList{Array<String>} 종 내 하위 시설물(반복)
completion{Array<FacilityInfo>} 결과 클로져

Example

let api = PlayMapRestApi()
api.requestAroundPoi("주유소", radius: 5000, sort: 1, location: center, priceType: nil, roadType: nil, from: nil, size: nil, priorityHpay: nil, classList: nil) { (result, error)->Void in
    if let pois = result {
        for poi in pois {
            if let pos = poi.center {
                DispatchQueue.main.async {
                    let marker = PlayMapMarker(position: pos)
                    marker.title = poi.cname
                    self.mapView?.addMarker(marker)
                }
            }
        }
        
        DispatchQueue.main.async {
            self.mapView?.fitMapBoundsToShowAllMarkers()
        }
    }
}

Return

Return 정보는 Document를 참고해주세요.

func requestGeocoding(_ keyword:String, sort:Int?, from:Int?, size:Int?, location:CLLocationCoordinate2D?, completion:@escaping (Array<AddressInfo>?, Error?)->Void)

Descript

Geocoding요청

Parameters

Name {Type} Description
keyword{String} 주소 검색어
sort{int} 정렬 옵션 (1=추천순, 2=명칭순, 3=거리순)
from{int} 응답으로 받을 결과 시작 (0부터)
size{int} 응답으로 받을 결과 개수 (from값이 없을 경우 0부터)
location{CLLocationCoordinate2D} 해당 위치 좌표
completion{Array<AddressInfo>} 결과 클로져

Example

let api = PlayMapRestApi()
api.requestGeocoding(“잠원동 36-36”, sort: nil, from: nil, size: nil, location: nil) { (result, error)->Void in
    if let result = result {
        for addrInfo in result {
            if let center = addrInfo.center {
                DispatchQueue.main.async {
                    self.mapView?.setCenter(CLLocationCoordinate2D(latitude: center.latitude, longitude: center.longitude), zoom: 19)
                }
                break
            }
        }
    }
}

Return

Return 정보는 Document를 참고해주세요.

func requestReverseGeocoding(_ location:CLLocationCoordinate2D, addrType:String?, orderType:Int?, completion:@escaping (AddressInfo?, Error?)->Void)

Descript

Reverse Geocoding요청

Parameters

Name {Type} Description
location{CLLocationCoordinate2D} 해당 위치 좌표
addrType{String} 응답으로 받을 주소 체계 (0=지번주소, 1=도로명주소)
orderType{int} 응답데이터 우선 순위 (0:주소 -> POI 검색하지않음, 1:POI > 주소 -> 라벨 일반 미구분 POI 우선, 2: 라벨 > POI > 주소 -> 라벨 우선)
completion{AddressInfo} 결과 클로져

Example

let api = PlayMapRestApi()
api.requestReverseGeocoding(center, addrType: nil, orderType: nil) { (result, error)->Void in
    if let result = result {
        DispatchQueue.main.async {
            if let addr = result.addr {
                let alert = UIAlertController(title: “”, message: addr, preferredStyle: UIAlertController.Style.alert)
                        alert.addAction(UIAlertAction(title: "확인", style: UIAlertAction.Style.default, handler: nil))
                        view.present(alert, animated: true, completion: nil)			}
        }
    }
}

Return

Return 정보는 Document를 참고해주세요.

func requestRoute(_ routeOptions:RouteOptions, completion:@escaping (Array<RouteResult>?, Error?)->Void)

Descript

경로 탐색 요청

Parameters

Name {Type} Description
routeOptions{RouteOptions} 탐색 옵션
Properties
Name {Type} Description
routeOption{String} (Default: "3") 탐색옵션(0: 최소시간, 1:(미정의) 2: 최단, 3:추천)
feeOption{String} (Default: "0") 요금(0: 모든도로, 1: 무료도로)
roadOption{String} (Default: "0") 우선도로(0: 모든도로, 1: 고속도로우선 2: 고속도로회피 3: 자동차전용도로회피)
coordType{String} (Default: "2") 좌표계타입( 1: Bessel, 2: WGS84)
carType{String} (Default: "1") 단말 차종 (0=미선택(기본값), 1=승용차/소형합차, 2= 중형승합차, 3= 대형승합차, 4= 대형화물차, 5= 특수화물차, 6=경차)
startPoint{CLLocationCoordinate2D} 출발지 좌표
startName{String} 출발지
goalPoint{CLLocationCoordinate2D} 목적지 좌표
goalName{String} 목적지
viaPoints{Array<CLLocationCoordinate2D>} 경유지 좌표 리스트 (최대 3개)
viaNames{Array<String>} 경유지 리스트
completion{Array<RouteResult>} 결과 클로져

Example


var routeOptions = RouteOptions()
routeOptions.startPoint = CLLocationCoordinate2D(latitude: 37.532283, longitude: 126.951886)
routeOptions.startName = "현대오토에버"
routeOptions.goalPoint = CLLocationCoordinate2D(latitude: 36.332272, longitude: 127.434053)
routeOptions.goalName = "대전역"
let api = PlayMapRestApi()
api.requestRoute(routeOptions) { (result, error)->Void in
    if let result = result {
        for routeResult in result {
            var path:Array<CLLocationCoordinate2D> = []

            for pos in routeResult.PosList {
                let coord = CLLocationCoordinate2D(latitude: pos.Y, longitude: pos.X)
                path.append(coord)
            }
            
            if path.count > 0 {
                let polyline = PlayMapPolyline(coordinates: path)
                polyline.strokeWidth = 4
                polyline.strokeColor = .red
                DispatchQueue.main.async {
                    self.mapView?.addPolyline(polyline)
                    self.mapView?.fitMapBoundsToShowAllPolylines()
                }
            }
        }
        
        let marker1 = PlayMapMarker(position: routeOptions.startPoint!)
        marker1.icon = UIImage(named: "start")
        let marker2 = PlayMapMarker(position: routeOptions.goalPoint!)
        marker2.icon = UIImage(named: "end")
        
        DispatchQueue.main.async {
            self.mapView?.addMarker(marker1)
            self.mapView?.addMarker(marker2)
        }
    }
}

Return

Return 정보는 Document를 참고해주세요.