Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

뇌약간고침

D-18 카카오 rest api 관련 오류 (해결) 본문

Project/과정 기록

D-18 카카오 rest api 관련 오류 (해결)

minulbora 2024. 4. 24. 18:06

브라우저 오류

apt:111 Uncaught TypeError: Cannot read properties of undefined (reading 'Geocoder')

원인 - 라이브러리 인식이 안되는듯 지도 자체는 로딩되는걸 보니 키값이 틀린건 아님

안보이는 공백도 제거해봄

네트워크 확인해보니 정상

공백 문제인듯?

해결

https://devtalk.kakao.com/t/react-kakao-maps-cannot-read-property-geocoder-of-undefined/115215

 

React Kakao Maps 구현시 Cannot read property ‘Geocoder’ of undefined 오류

React JS 환경에서 지도를 이용한 주소검색 기능을 사용하기 위해 아래와 같이 구현했고, 지도 및 마커는 정상적으로 출력됩니다. 주소검색을 위해 kakao.maps.services.Geocoder() 호출시 오류가 발생합니

devtalk.kakao.com

 

오류

apt:108 Uncaught TypeError: kakao.maps.LatLng is not a constructor

 

load 함수 사용햇는데 왜...

와씨 결국 찾아냄 

2시간걸림

src="//dapi.kakao.com/v2/maps/sdk.js?appkey=앱키&libraries=services,clusterer,drawing&autoload=false"></script>

 


주소 리스트 -> for문 돌려서 좌표 리스트 만들기 -> 클러스터러로 표현하기

 

고민 1

for문을 어디서 돌리는게 맞을까.. 

아예 리스트를 매개변수로 보내서 그 안에서 리스트 길이만큼 돌릴까 아니면 하나씩 꺼내오는걸로 받아서 리스트를 만들까

고민2 

좌표 정보를 apt 객체에 저장하는게 좋은지 아니면 새로 객체를 만드는게 좋은지... 머루겟삼

 

 

타임리프 인라인

리스트 형식으로 담은거 json으로 만들기

[{"lng":"126.919446053291","addressName":"서울 마포구 서교동 447-5","lat":"37.5564857555897"}]

 

잘 받는데 왜..

Exception processing template "cluster": Error resolving template [cluster], template might not exist or might not be accessible by any of the configured Template Resolvers

 

애초에 cluster 요청한적도 없는데

 

2024-04-24 15:07:55.216 ERROR 9704 --- [nio-8088-exec-1] org.thymeleaf.TemplateEngine             : [THYMELEAF][http-nio-8088-exec-1] Exception processing template "cluster": Error resolving template [cluster], template might not exist or might not be accessible by any of the configured Template Resolvers

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [cluster], template might not exist or might not be accessible by any of the configured Template Resolvers
at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]
at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) [thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) [thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]

 

해결

return codezip.toString();

String 으로 보내줘얗..

 



/*  //중심좌표가 바뀌면 리스트 재검색
kakao.maps.event.addListener(map, 'center_changed', function() {

      // 지도의  레벨을 얻어옵니다
    var level = map.getLevel();

    // 지도의 중심좌표를 얻어옵니다 
    var latlng = map.getCenter();  

    //alert("중심좌표 변경");

}); */

var markers = new kakao.maps.Marker({
         position: new kakao.maps.LatLng(position.lat, position.lng)
     });
    

        var clusterer = new kakao.maps.MarkerClusterer({
                map: map, // 마커들을 클러스터로 관리하고 표시할 지도 객체 
                averageCenter: true, // 클러스터에 포함된 마커들의 평균 위치를 클러스터 마커 위치로 설정 
                minLevel: 5, // 클러스터 할 최소 지도 레벨 
                markers: markers // 클러스터에 마커 추가
        });

1. 현재 화면의 좌표값을 보내서 그 안에 있는 리스트만 걸러서 가져오는 방법

2. 리스트를 보내서 코드를 가져오는 방법, 

 

두가지가 있는데 당연히 1번이 효율적이다. 

아니

아닌가??

당연한가????

 

일단 2번은 쉬움...

 

+) 추가 처리

마커가 1개 이하면 클러스터러가 안생기는데 이럴 경우 마커를 찍어줘야 한다. 

그냥 마커면 안되고 클러스터러 모양 마커여야 할 듯... 

아니 생각해보니까 클러스터러에서 알아서 마커 찍어주니까 여기서 모양만 바꾸면 되는디

어떻게 바꾸더라 ㅎhttps://devtalk.kakao.com/t/topic/103092/5

 

클러스터 마커 레이아웃 변경

클러스터러 생성시 만들어지는 마커들의 이미지가 아닌 클러스터에 이미지를 적용하고싶습니다 위 링크를 보면 setStyle() 이나 redraw()로 css 효과를 적용할수는있는거같은데 만약에 적용한다고

devtalk.kakao.com

 

일단 여기까지 완료~

'Project > 과정 기록' 카테고리의 다른 글

D-16  (0) 2024.04.27
D-17  (0) 2024.04.25
D-19 카카오맵 REST API 주소 -> 코드 변경 관련 오류 (해결)  (0) 2024.04.24
D-20,D-19 매물 정보 지도 구현 로직 정리  (0) 2024.04.22
D-25  (0) 2024.04.17