반응형

 

 

 

[javascript] 카카오맵 지도 API 사용하는법 (1.키 발급)

카카오맵 API를 사용해서 웹이나 어플리케이션에 지도 서비스를 이용할 때 첫단계 과정을 기록해봄 카카오맵 API를 사용할 도메인 등을 추가해주어 지도 API에서 접근이 가능한 키 발급을 받으면

studyingpingu.tistory.com

 

 

기존에 작성해본 카카오맵 API 지도 사용법 다음과정 작성해봄

작성해야지 해야지하다가 거의 한 분기가 지나고 다음 글을 쓰는내가 레전드

 

 

일단 API 키를 발급 후 도메인 등록까지 마쳤으면 지도를 띄우는 과정 중 절반은 해낸거나 마찬가지임

그게 없으면 아예 지도를 띄울수없응게

 

다음과정은

html에 발급받은 API key를 넣고 카카오맵 api를 호출하는 자바스크립트를 호출해준다

html div에 지도 map을 추가해준 다음, 자바스크립트 코드에 map 객체를 생성해주면 끝

 

 

*API 키는 카카오에 등록한 사용자가 맞다는 일종의 인증 방법

 

 

 

대충 글로 적어본 과정은 위와같으며 아래는 코드에 적용한 방법

 

 

 

html

<!DOCTYPE html>
<html lang="en">
<head>

    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>

    <title>페이지 타이틀。</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>

<body>

    <div id="map" style="width:700px;height:500px;"></div>

    <script src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery.ajax-cross-origin.min.js"></script>

    <!-- 기본 지도 app key -->
    <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=APP API KEY=발급받은 키 입력&libraries=services"></script>

    <!-- 기본 지도 기능에서 클러스터 추가 사용 -->
    <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=APP API KEY&libraries=services,clusterer,drawing"></script>

    <script type="text/javascript" src="index.js"></script>

</body>

</html>

위처럼 html 파일을 작성하면 width 너비가 700, height 높이가 500인 지도를 웹페이지에 표출할수있다

(아래 자바스크립트 코드도 작성해야됨)

 

지도를 사용자 디바이스 너비에맞게 css를 조절하는게 좀 까다로웠는데

일단 지도 띄우는것만 시도해보는 것이므로 그냥 고정값을 줘봤다

+아래에 변형해본 css를 추가해보았으니 참고해서 응용해보자

 

 

기본 지도 app key 부분은 카카오맵 지도 api에서 제공하는 기본적인 기능을 사용할 때 호출하는 방식이고

 

아래의 기본지도 기능에서 클러스터를 추가했다는 부분은 지도 api에서 제공하는 기능들 중 

좀더 심화된 기능을 사용할 때 사용한다

 

따라서 기본적인 지도의 경도 위도, 주소등의 정보만 이용할 때는 서비스만 사용해도 되고,

지도 데이터를 시각화하거나 지도 위에 뭔가 그려내고자 할 때는 아래의 ,clusterer,drawing 를 추가해주면 된다

 

javascript

//지도 생성에 사용
var map;
var mapContainer;

window.onload = function() { 	
	mapContainer = document.getElementById('map'), // 지도를 표시할 div 
	mapOption = {
		center: new kakao.maps.LatLng(37.566826, 126.9786567), // 지도의 중심좌표
		level: 3 // 지도의 확대 레벨
	};  

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

페이지가 로드될 때 지도 객체를 새로 생성하게 함

 

페이지가 로드되고, 생성된 지도에 클릭 이벤트, 지도 위 마커 생성 등 지도의 기능을 계속 사용하기 위해

전역으로 map, mapcontainer를 선언하여 사용했다

 

mapOption 객체

center는 경도 위도 좌표를 주고 지도를 생성할 때 디폴트로 열리는 위치를 선언함

level 지도의 확대, 축소된 정도 (1~14까지 가능, 1이 최대 확대된 정도)

 

 

 

지도 클러스터 기능 예시

 

이런식으로 지도에 묶어서 보여줄수있는게 클러스터(집단) 기능

 

 

 

아래는 내가 임의로 css를 이것저것 추가해보고 지도 사이즈를 내가 사용하기 적합하게 바꾼 내용

 

/* 지도 */
.map_wrap {
position:absolute; overflow:hidden; width:100%;
height:1024px;
}

사실 높이부분이 아직도 마음에 안드는데 이건 내가 위아래에 다른 요소를 추가한다고 찌그러진거라

일단 너비는 위와같이 참고하면 디바이스 너비에맞게 100%를 유지한다

 

이 css를 적용하려면 html map에 style 대신 class="map_wrap"를 적용해주면 됨

 

그럼 지도 요소가 화면 너비에 맞게 유지된다

 

 

참고 :

 

https://apis.map.kakao.com/web/guide/

 

반응형
반응형

 

 

 

카카오맵 API를 사용해서 웹이나 어플리케이션에 지도 서비스를 이용할 때 첫단계 과정을 기록해봄

 

 

 

 

카카오맵 API를 사용할 도메인 등을 추가해주어 지도 API에서 접근이 가능한 키 발급을 받으면 된다

 

그럼 안드로이드나 iOS, 웹에서 카카오맵을 사용할수있다

 

 

여기서 등록하면 된다

https://developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

내 애플리케이션을 클릭한다

 

 

 

그럼 기존 등록이 된 경우, 등록된 리스트가 보이며

신규 유저의 경우 리스트에 아무런 앱이 없이 그냥 애플리케이션 추가만 보일듯

 

어쨌든 등록이 필요하니 애플리케이션 추가 ㄱㄱ

 

 

 

이미지 등록은 필수가 아닌것같지만

나는 기존 만들어둔 이미지가 있어서 그걸로 사용했음

 

 

저장을 하면, 요약정보탭으로 바로 이동하게 되는데

이때 네이티브 앱 키, REST API 키, JavaScript 키, Admin 키가 자동으로 부여된다

 

 

웹에서 지도를 사용할경우 자바스크립트 키 가 필요하니 어디서 얻어야하는지 잘 알아두자

 

 

왼쪽의 메뉴에서 플랫폼으로 이동하여 개발환경에 맞는 환경을 세팅해준다

 

 

나는 웹사이트에서 카카오지도를 사용할 것이므로 Web 플랫폼 등록을 하였다

안드로이드, iOS 어플에 지도를 적용하려면 각각 Android, iOS 플랫폼 등록으로 진행하면 되겠다

 

 

 

 

그러면 이렇게 사이트 도메인 입력창이 뜬다

 

도메인이 없는 경우, ip 주소만 입력해도 되고

도메인을 구입한 경우 도메인 주소를 입력하면 된다

 

i.e.) 네이버의 경우, www.naver.com을 입력해주면 된다

 

+만약 localhost에서 테스트를 진행할 경우, localhost에 대한 등록이 따로 필요하다

 

처음에 서버에 업로드 안하고 그냥 로컬에서 테스트를 해봤는데 지도가 뜨지않아서 당황했지만

localhost에 대한 추가를 해주었더니 오류가 해결되었다

 

주의하자

 

 

 

도메인 등록을 마치면

 

 

성공적으로 마쳤다는 기쁜 팝업창이 뜬다

 

 

반응형
반응형

카카오맵 API를 연동해서 웹서비스를 개발하다 보면

f12 개발자도구 콘솔창에서 맞닥뜨리게되는 워닝이 있는데

 

그냥 궁금해서 찾아본 파서 블로킹 경고창에 대한 위험도를 기록해봄

 

 

 

sdk.js?appkey=AppKey&libraries=services:4 A parser-blocking,
cross site (i.e. different eTLD+1) script,
http://t1.daumcdn.net/mapjsapi/js/main/4.4.1/kakao.js, is invoked via document.write.
The network request for this script MAY be blocked by the browser in this or
a future page load due to poor network connectivity.
If blocked in this page load, it will be confirmed in a subsequent console message.
See https://www.chromestatus.com/feature/5718547946799104 for more details.

(가독성을 위해 줄바꿈으로 출력함)

 

 

 

 

 

 

카카오 답변

- 지도가 로드되지 않는게 아니라면, 무시해도 됨

- document.write로 스크립트를 생성하는것은 피하는게 좋다

 

 

 

참고 :

 

 

 

https://devtalk.kakao.com/t/gatsby-map/103810/2

 

Kakao DevTalk

카카오 데브톡. 카카오 플랫폼 서비스 관련 질문 및 답변을 올리는 개발자 커뮤니티 사이트입니다.

devtalk.kakao.com

 

 

https://devtalk.kakao.com/t/parser-blocking/115430

 

Kakao DevTalk

카카오 데브톡. 카카오 플랫폼 서비스 관련 질문 및 답변을 올리는 개발자 커뮤니티 사이트입니다.

devtalk.kakao.com

 

 

document.write로 스크립트 렌더링 시 발생하는 문제 관련

https://www.cosmosfarm.com/threads/document/21729

 

parser-blocking via document.writhe 관련 문제 해결 방법 - Cosmosfarm

안녕하세요. 워드프레스에서 코스모스 회원관리 플러그인을 사용합니다. 인 앱 브라우저를 통하여 홈페이지로 접속하여 결제 창에서 주문을 할 때 주소 창이 뜨질 않습니다. console 에는 이런 문

www.cosmosfarm.com

 

반응형

+ Recent posts