[FAQ] 지도/로컬 API 문의 전 꼭 읽어 주세요.
https://devtalk.kakao.com/t/faq-api/125610
addpois로 생성한 포이들의 스타일 체인지를 하려고 하는데 포이를 정상적으로 가져오지 못하고 있습니다 아래는 코드입니다
지도 상에서 poi를 선택 시 poi의 스타일이 nonadded에서 added가 되었으면 좋겠습니다. 감사합니다
func poiTappedHandlerAdded(_ param: PoiInteractionEventParam) {
homeViewModel.CardViewIsShowing.toggle()
print( "poi tapped \(homeViewModel.CardViewIsShowing)")
print("KakaoMapView's HomeViewModel address: \(Unmanaged.passUnretained(homeViewModel).toOpaque())")
let view = controller?.getView("mapview") as! KakaoMap
let manager = view.getLabelManager()
let layer = manager.getLabelLayer(layerID: "PoiLayer")
if let poi = layer?.getPoi(poiID: "poi1") {
poi.changeStyle(styleID: "Added")
print("poi getted")
} else {
print("no poi getted")
}
// param.poiItem.hide()
}
//포이 생성
func createPois(){
print("createPois")
let view = controller?.getView("mapview") as! KakaoMap
let manager = view .getLabelManager()
let layer = manager.getLabelLayer(layerID: "PoiLayer")
layer?.visible = true
let poiOption1 = PoiOptions(styleID: "nonAdded", poiID: "poi1")
poiOption1.rank = 0
poiOption1.clickable = true
let poiOption2 = PoiOptions(styleID: "Added", poiID: "poi2")
poiOption2.rank = 0
poiOption2.clickable = true
let poiOptionMyPos = PoiOptions(styleID: "userPosition", poiID: "poiMyPos")
poiOption2.rank = 0
poiOption2.clickable = false
var poiMyPos = layer?.addPoi(option:poiOptionMyPos, at: MapPoint(longitude: locationManager.lon ?? 126.978365,latitude: locationManager.lat ?? 37.566691))
var pois = layer?.addPois(option: poiOption1, at: mapPoints)
layer?.showAllPois()
guard let pois = pois else { return }
for poi in pois {
// 여기에서 poi 사용
let _ = poi.addPoiTappedEventHandler(target: self, handler: KakaoMapCoordinator.poiTappedHandlerAdded(_:))
}
}