devmemory / kakaomap_webview

MIT License
9 stars 16 forks source link

geocoder로 주소로 좌표 알아내기 #3

Open kimsungtaek1 opened 2 years ago

kimsungtaek1 commented 2 years ago

geocoder로 주소로 좌표 알아내고 싶어서 주신 소스에서 const String kakaoMapKey = 'MYAPPKEY'; 를

const String kakaoMapKey = 'MYAPPKEY&libraries=services'; 로 바꾸고

참고 : https://apis.map.kakao.com/web/guide/#whatlibrary

dart파일에서 KakaoMapView에서 customScript를 카카오 사이트의 주소->좌표 코드를 가져왔습니다. KakaoMapView( width: size.width, height: 400, kakaoMapKey: kakaoMapKey, lat: 33.450701, lng: 126.570667, zoomLevel: 5, customScript: ''' var mapContainer = document.getElementById('map'), // 지도를 표시할 div mapOption = { center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표 level: 3 // 지도의 확대 레벨 };

// 지도를 생성합니다
var map = new kakao.maps.Map(mapContainer, mapOption);

// 주소-좌표 변환 객체를 생성합니다 var geocoder = new kakao.maps.services.Geocoder();

// 주소로 좌표를 검색합니다 geocoder.addressSearch('제주특별자치도 제주시 첨단로 242', function(result, status) {

// 정상적으로 검색이 완료됐으면 
 if (status === kakao.maps.services.Status.OK) {

    var coords = new kakao.maps.LatLng(result[0].y, result[0].x);

    // 결과값으로 받은 위치를 마커로 표시합니다
    var marker = new kakao.maps.Marker({
        map: map,
        position: coords
    });

    // 인포윈도우로 장소에 대한 설명을 표시합니다
    var infowindow = new kakao.maps.InfoWindow({
        content: '<div style="width:150px;text-align:center;padding:6px 0;">우리회사</div>'
    });
    infowindow.open(map, marker);

    // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
    map.setCenter(coords);
} 

}); ''', 출처 : https://apis.map.kakao.com/web/sample/addr2coord/

그런데 웹뷰에서 geocoder가 작동하지 않네요.(지도가 해당 주소로 이동하지 않음) log를 찍어보니 coords 값을 못가져오네요 제 방법이 뭐가 문제인지 모르겠어서 질문드립니다. 어떻게 구현하는게 좋을지 알려주시면 감사드리겠습니다.

devmemory commented 2 years ago

바로 전 Issue 내용이랑 비슷한 문제로 판단되는데 도메인 미스매치일 것 같습니다. 저도 테스트를 몇번 해봤는데 도메인 등록이 안되면 service가 작동되지 않는데 로컬은 범주에 들어가지 않는것 같습니다 급하시면 서버에 올리시고 도메인 등록하시고 사용하시는게 좋을것 같습니다

ehog0613-doubled commented 1 year ago

저도 같은 문제 있어서 그냥 주소 호출하는 api 사용했어요.

https://developers.kakao.com/docs/latest/ko/local/dev-guide

여기서 확인가능합니다.

api 사용시 키는 'JavaScript 키' 가 아니라 'REST API 키' 사용 하셔야합니다.