위치 요청 결과
SDK 시작 이후 위치 요청 결과를 설명합니다.
위치 요청 진행 시, PlaceDelegate를 통해 PlengiResponse가 전달됩니다.
공통 필드
안내하지 않은 필드들은 테스트용이거나 deprecated 예정이니 사용하지 않는 것을 권장합니다.
| 필드 | 설명 | 상세 |
|---|---|---|
echoCode | 사용자 식별 코드 | Plengi.setEchoCode()로 등록한 값 |
result | 위치 인식 결과 | SUCCESS: 위치 인식 성공 FAIL: 위치 인식 실패 |
errorReason | 실패 사유 | Location Acquisition Fail : 현재 위치 획득 실패Not Allowed Client: 클라이언트 인증 실패 (clientID, clientSecret, bundle Identifier 확인 필요) |
type | 요청 타입 | PLACE: 테스트용 요청PLACE_EVENT: SDK 내부 로직에 따른 요청 |
placeEvent | 인식된 event 타입 | NOT_AVAILABLE: place 확인 불가(area, complex, geofence 등 다른 정보는 있을 수 있음)ENTER: place 진입NEARBY: place 근처 |
위치 인식 성공 시 주요 객체
안내하지 않은 필드들은 테스트용이거나 deprecated 예정이니 사용하지 않는 것을 권장합니다.
위치 정보를 종합해서 판단한 결과가 PlengiResponse로 전달됩니다.
판단 결과에 따라 매장 정보가 없이 상권 정보, 복합몰 정보만 있을 수 있고, 행정구역 정보만 있는 경우도 있습니다.
(일부 필드가 nil인 경우 또한 정상 동작)
모든 필드는 Optional이므로 활용하려는 값은 nil 여부를 확인한 뒤 사용해 주세요.
위치 요청 실패 여부는 공통 필드의 result와 errorReason를 확인해 주세요.
| 필드 | 설명 |
|---|---|
place | 장소 정보 (매장) |
area | 상권 정보 |
complex | 복합몰 정보 |
geoFence | 지오펜스 정보 |
district | 행정구역 정보 |
location | 기기 위·경도 정보 |
Place
포함된 위·경도는 장소의 위·경도입니다.
accuracy가 threshold보다 큰 경우에는 ENTER, 작은 경우에는 NEARBY로 판정합니다.
// 장소 정보
class Place {
var loplat_id: Int /// ID
var name: String /// 이름
var tags: String /// 관련된 태그
var floor: Int /// 층 정보
var lat: Double /// 장소의 위도
var lng: Double /// 장소의 경도
var accuracy: Double /// 정확도
var threshold: Double /// 임계값
var category: String /// 카테고리
var category_code: String /// 카테고리 코드
var address: String /// (구) 주소
var address_road: String /// (도로명) 주소
var post: String /// 우편번호
}
Area
Place 위치(없다면 기기 위치)가 상권 안일 경우, 상권 정보가 장소 인식 결과에 함께 전달됩니다.
포함된 위·경도는 사용자 기기 위치의 위·경도입니다.
// 상권 정보
class Area {
var id: Int /// ID
var name: String /// 이름
var lat: Double /// 기기 위도
var lng: Double /// 기기 경도
/// 지역 (도, 시 단위)
/// - ex) 서울, 경기도, 인천
var tag: String
}
Complex
Place 위치(없다면 기기 위치)가 복합몰 내인 경우, 복합몰 정보가 장소 인식 결과에 함께 전달됩니다.
// 복합몰 정보
class Complex {
var id: Int /// ID
var name: String /// 이름
var branch_name: String /// 지점
var category: String /// 카테고리
var category_code: String /// 카테고리 코드
}
Geofence & Fence
Place 위치(없다면 기기 위치)가 Geofence 내부인 경우, Geofence 정보가 장소 인식 결과에 함께 전달됩니다.
Fence 정보는 Geofence에 포함되어 전달됩니다.
// Geofence 정보
class Geofence {
var lat: Double /// Geofence 중심 위도
var lng: Double /// Geofence 중심 경도
var fences: Array<Fence> /// 하위 fence 리스트
}
// Fence 정보
class Fence {
var gfid: Int /// ID
var dist: Double /// 중심 좌표와 사용자 위치 간 거리
var name: String /// 이름
var client_code: String /// 고객사 관리 코드
}
District
Place 위치(없다면 기기 위치)가 특정 행정구역에 속하는 경우, 행정구역 정보가 장소 인식 결과에 함께 전달됩니다.
// 행정구역 정보
class District {
var lv0_code: String /// 국가 코드, code만 지원
var lv1_code: String /// 시, 도 코드
var lv1_name: String /// 시, 도 이름
var lv2_code: String /// 시, 구, 군 코드
var lv2_name: String /// 시, 구, 군 이름
var lv3_code: String /// 읍, 동, 면 코드
var lv3_name: String /// 읍, 동, 면 이름
}