톱 452 다음 지도 Api 업데이트 31 일 전

주제에 대한 기사를 찾고 있습니까 “다음 지도 api“? 웹사이트에서 이 주제에 대한 전체 정보를 제공합니다 c1.castu.org 탐색에서: 382+ 당신을 위한 팁. 바로 아래에서 이 주제에 대한 자세한 답변을 찾을 수 있습니다. 찾고 있는 주제를 더 잘 이해하려면 끝까지 읽으십시오. 더 많은 관련 검색어: 다음 지도 api 카카오맵, 카카오 지도 API 사용법, 네이버 지도 API, 카카오 지도 API, 지도 API 무료, 카카오맵 장소 id, 카카오맵 검색 api, 지도 API 비교

다음 daum Map API 활용하기 – Rock’s Ezweb – 티스토리

1. 카카오 개발자사이트 (https://developers.kakao.com) 접속 2. 개발자 등록 및 앱 생성 3. 웹 플랫폼 추가: 앱 선택 – [설정] – [일반] – [플랫폼 추가] – 웹 선택 후 추가 4. 사이트 도메인 등록: [웹] 플랫폼을 선택하고, [사이트 도메인] 을 등록합니다. (예: http://localhost:8080) 5. 페이지 상단의 [JavaScript 키]를 지도 API의 appkey로 사용합니다.

sample page 코드 복사후 예제 파일에 붙여넣고 인포윈도우에 표출될 내용부부분에 원하는 HTML코드를 추가합니다.

http://map.google.com 에서 구글맵을 사용하여 위치를 검색합니다. 예제로 신촌역을 검색했습니다.

29 thg 4, 2019 — 다음 daum Map API 활용하기 · 01. 개발자 계정 만들기. 카카오 계정으로 로그인 한다. · 02. 앱 만들기 · 03. 플랫폼 설정하기 · 04. 샘플에서 지도 선택하기.

  • Source: alikerock.tistory.com
  • Views: 33953
  • Publish date: 1 hours ago
  • Downloads: 16360
  • Likes: 881
  • Dislikes: 6
  • Title Website: 다음 daum Map API 활용하기 – Rock’s Ezweb – 티스토리
  • Description Website: 29 thg 4, 2019 — 다음 daum Map API 활용하기 · 01. 개발자 계정 만들기. 카카오 계정으로 로그인 한다. · 02. 앱 만들기 · 03. 플랫폼 설정하기 · 04. 샘플에서 지도 선택하기.

세부 정보를 보려면 여기를 클릭하십시오.

  • Source: Youtube
  • Views: 64401
  • Date: 53 minute ago
  • Download: 78062
  • Likes: 9403
  • Dislikes: 5

다음 daum Map API 활용하기

카카오 개발자 주소.

https://developers.kakao.com/

가이드

http://apis.map.daum.net/web/guide/

카카오 맵사용을 위해서는 api key를 발급 받아야 합니다.

1. 카카오 개발자사이트 (https://developers.kakao.com) 접속 2. 개발자 등록 및 앱 생성 3. 웹 플랫폼 추가: 앱 선택 – [설정] – [일반] – [플랫폼 추가] – 웹 선택 후 추가 4. 사이트 도메인 등록: [웹] 플랫폼을 선택하고, [사이트 도메인] 을 등록합니다. (예: http://localhost:8080) 5. 페이지 상단의 [JavaScript 키]를 지도 API의 appkey로 사용합니다.

카카오 개발자 사이트에서는 아래와 같이 다양한 API를 제공하는데 일단 지도 API를 사용해 보고자 한다.

01. 개발자 계정 만들기

카카오 계정으로 로그인 한다.

02. 앱 만들기

구분할 수 있는 이름을 입력하고 ‘앱 만들기’를 클릭하고 구분할 수 있는 이름을 입력합니다.

앱 아이콘 확인

별도의 아이콘등으로 수정하지 않아도 되면 ‘계속 진행’ 한다.

03. 플랫폼 설정하기

앱정보 설정에서 지도를 사용하려는 플랫폼을 설정합니다.

플랫폼 추가를 클릭하고 웹을 선택한후 사이트 도메인에 주소를 입력합니다.

사용하려는 Javascript 키를 복사해 놓습니다.

04. 샘플에서 지도 선택하기

http://apis.map.daum.net/web/sample/

샘플에클릭하고 원하는 형식의 지도를 선택합니다.

지도로 이동후 샘플을 클릭하여 다음에서 제공하는 지도 샘플을 확인합니다.

기본적인 지도 사용은 지도생성하기를 클릭하면 확인할 수 있습니다.

05. 선택한 샘플에서 API KEY 입력하기

모든 샘플마다 javascript와 html를 제공함으로 원하는 형식의 코드를 사용합니다.

샘플을 선택했으면 샘플 코드에서 발급받은 키를 입력합니다.

06. 다음지도를 원하는 위치로 설정하기

특정위치로 설정하기 위해서는 위도와 경도를 입력해야 합니다.

http://map.google.com 에서 구글맵을 사용하여 위치를 검색합니다. 예제로 신촌역을 검색했습니다.

상단 주소에 위도와 경도가 나오는 것을 확인하고 복사합니다.

또는 검색후 아이콘에서 마우스 우클릭후 이곳이 궁금한가요?를 클릭하면 하단에 위도와 경도를 출력해줍니다.

찾아낸 위도와 경도를 지도의 중심좌표부분에 입력합니다.

입력후의 다음 지도의 화면입니다.

07. 다음 맵의 표현 > 특정위치에 인포창 표시하기

http://apis.map.daum.net/web/sample/markerWithInfoWindow/

sample page 코드 복사후 예제 파일에 붙여넣고 인포윈도우에 표출될 내용부부분에 원하는 HTML코드를 추가합니다.

FPT에 업로드하고 주소를 접속해본다.

08. 다음 맵의 표현 > 기본 컨트롤 보이기

http://apis.map.daum.net/web/sample/addMapControl/

마찬가지 소스를 복사하고 api 코드와 좌표를 적용하면 웹페이제엇 확인할 수 있다.

카카오 지도 API를 이용하여 지도에 위치 표시하기 (kakao map …

카카오 개발자 사이트에서 제공하는 여러 API 중에서 이번시간에는 아래와 같이 주소정보를 이용하여 카카오 지도 위에 위치를 표시하는 방법에 대해서 알아보도록 하겠습니다.

프로그램은 개발가이드 문서를 참고하여 작성하였습니다. (https://apis.map.kakao.com/web/guide/)

7 thg 6, 2020 — 지도 API는 JavaScript / iOS / Android 에서 사용할 수 있습니다. 여기에서는 웹상에서 표시해보기 위해 JavaScript 사용 예제를 살펴보도록 하겠습니다.

  • Source: kadosholy.tistory.com
  • Views: 99185
  • Publish date: 8 minute ago
  • Downloads: 62033
  • Likes: 3037
  • Dislikes: 6
  • Title Website: 카카오 지도 API를 이용하여 지도에 위치 표시하기 (kakao map …
  • Description Website: 7 thg 6, 2020 — 지도 API는 JavaScript / iOS / Android 에서 사용할 수 있습니다. 여기에서는 웹상에서 표시해보기 위해 JavaScript 사용 예제를 살펴보도록 하겠습니다.

세부 정보를 보려면 여기를 클릭하십시오.

카카오 맵 API 사용하기

  • Source: Youtube
  • Views: 29528
  • Date: 15 hours ago
  • Download: 108251
  • Likes: 6541
  • Dislikes: 1

카카오 지도 API를 이용하여 지도에 위치 표시하기 (kakao map API) :: KADOSHoly

카카오 지도 API를 이용하여 주소위치를 지도위에 표시하는 예제

카카오 개발자 사이트에서 제공하는 여러 API 중에서 이번시간에는 아래와 같이 주소정보를 이용하여 카카오 지도 위에 위치를 표시하는 방법에 대해서 알아보도록 하겠습니다.

카카오 개발자 사이트에서는 카카오에서 제공하는 API와 사용법에 대한 개발가이드 문서를 제공하고 있습니다.

개발가이드 문서에는 API 사용 방법과 함께 샘플 예제들이 있어 참고하시면 간단한 예제를 만들어 보실수 있습니다.

1. 카카오 개발자 사이트 접속

먼저 카카오 개발자 사이트에 접속합니다. 아래 링크를 클릭하시면 바로 이동하실수 있습니다.

https://developers.kakao.com/

2. 카카오 개발자 사이트에서 개발가이드 문서 찾기

1) 카카오 개발자 사이트 접속 -> 상단 [문서] 메뉴 클릭하여 이동합니다.

2) 아래로 스크롤 하여 지도/로컬 API 가이드의 [지도] 메뉴로 이동합니다.

지도 API는 JavaScript / iOS / Android 에서 사용할 수 있습니다.

여기에서는 웹상에서 표시해보기 위해 JavaScript 사용 예제를 살펴보도록 하겠습니다.

JavaScript를 메뉴를 선택하여 해당 문서로 이동합니다.

3. 카카오 API Key 발급

카카오 API Key가 없으신 분들은 아래 [카카오 API 키 발급받기]를 참고하세요

https://kadosholy.tistory.com/25

4. 프로그램 작성

프로그램은 개발가이드 문서를 참고하여 작성하였습니다. (https://apis.map.kakao.com/web/guide/)

아래 가이드 문서의 참고한 부분과 소스코드를 참고하세요.

(1) [Guide] 탭

-> [시작하기]에 있는 예제코드를 Eclipse상의 웹서버 index.html 파일에 복사하여 사용

(2) [Sample] 탭

-> [라이브러리] – 주소로 장소 표시하기

-> [오버레이] – 마커에 인포윈도우 표시하기

-> [오버레이] – 이미지 마커와 커스텀 오버레이

cf) “발급받은 APP KEY 입력” 부분은 본인이 발급받은 Key중 JavaScript Key를 입력하시면 됩니다.

[예제 소스 @Eclipse]

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 < !DOCTYPE html > < html > < head > < meta charset = "EUC-KR" > < title >지도 시작하기 < body > < p style = "margin-top: -12px" > < em class = "link" > < a href = "javascript:void(0);" onclick = "window.open('http://fiy.daum.net/fiy/map/CsGeneral.daum', '_blank', 'width=981, height=650')" > 혹시 주소 결과가 잘못 나오는 경우에는 여기에 제보해주세요. < div id = "map" style = "width: 100%; height: 780px;" > < script type = "text/javascript" src = "//dapi.kakao.com/v2/maps/sdk.js?appkey= 발급받은 APP KEY 입력 &libraries=services" > < script > var mapContainer = document . getElementById ( ‘map’ ), // 지도를 표시할 div mapOption = { center : new daum.maps.LatLng( 36. 633535 , 127. 425882 ), // 지도의 중심좌표 level : 4 // 지도의 확대 레벨 }; // 지도를 생성합니다 var map = new daum.maps.Map(mapContainer, mapOption); // 주소-좌표 변환 객체를 생성합니다 var geocoder = new daum.maps.services.Geocoder(); var myAddress = [ “용산구 한강대로 405”, “영등포구 경인로 846”, “동대문구 왕산로 214” ]; function myMarker(number, address) { // 주소로 좌표를 검색합니다 geocoder .addressSearch( //’주소’, address, function (result, status) { // 정상적으로 검색이 완료됐으면 if (status = = = daum.maps.services.Status.OK) { var coords = new daum.maps.LatLng( result[ 0 ].y, result[ 0 ].x); // 결과값으로 받은 위치를 마커로 표시합니다 /* var marker = new daum.maps.Marker({ map : map, position : coords }); */ // 인포윈도우로 장소에 대한 설명을 표시합니다 /* var infowindow = new daum.maps.InfoWindow( { // content : ‘

I

‘ content : ‘

‘ + number + ‘

‘ }); infowindow.open(map, marker); */ // 커스텀 오버레이에 표출될 내용으로 HTML 문자열이나 document element가 가능합니다 var content = ‘

‘ + ‘ ‘ + ‘

‘ + number + ‘

‘ + ‘‘ + ‘

‘ ; // 커스텀 오버레이가 표시될 위치입니다 var position = new daum.maps.LatLng( result[ 0 ].y, result[ 0 ].x); // 커스텀 오버레이를 생성합니다 var customOverlay = new daum.maps.CustomOverlay( { map : map, position : position, content : content , yAnchor : 1 }); // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다 map.setCenter(coords); } }); } for (i = 0 ; i < myAddress. length ; i + + ) { myMarker(i + 1 , myAddress[i]); } Colored by Color Scripter cs

[실행결과]

다음 지도 API

100m. Kakao 지도로 이동.

  • Source: www.sda.co.kr
  • Views: 32398
  • Publish date: 11 minute ago
  • Downloads: 70445
  • Likes: 2807
  • Dislikes: 5
  • Title Website: 다음 지도 API
  • Description Website: 100m. Kakao 지도로 이동.

세부 정보를 보려면 여기를 클릭하십시오.

ETC_04 [ Map API ] 무료 ! 다음 카카오 Map API 활용 – 인포창 지도 구현하기

  • Source: Youtube
  • Views: 107831
  • Date: 51 minute ago
  • Download: 64800
  • Likes: 424
  • Dislikes: 3

카카오지도/ 다음지도/ 네이버지도 API 등록하기, 유료서비스 …

이번 포스팅에서는 카카오지도 API 를 이용하여 웹사이트에 원하는 지도를 넣는 방법을 설명하도록 하겠습니다. kakao지도 를 이용하기 위해서는 카카오 개발자센터에 가입한 후, 앱/웹 등을 등록해야 사용할 수 있습니다.

그런데, 다음지도 서비스가 2018년 11월경에 중지되었고, 지금은 카카오에서 지도서비스를 제공하고 있습니다. 아울러 kakao지도 로 변경된 이후 일정 쿼터를 넘기게 되면 유료로 변경되어 비용이 지급해야 합니다.

3 thg 7, 2019 — 웹사이트 또는 모바일 서비스를 개발시 지도를 표시하는 경우가 있는데요, 보통 네이버지도 또는 다음지도 API 서비스를 이용하여 아래와 같이 개발 …

  • Source: doolyit.tistory.com
  • Views: 37054
  • Publish date: 9 hours ago
  • Downloads: 101353
  • Likes: 655
  • Dislikes: 1
  • Title Website: 카카오지도/ 다음지도/ 네이버지도 API 등록하기, 유료서비스 …
  • Description Website: 3 thg 7, 2019 — 웹사이트 또는 모바일 서비스를 개발시 지도를 표시하는 경우가 있는데요, 보통 네이버지도 또는 다음지도 API 서비스를 이용하여 아래와 같이 개발 …

세부 정보를 보려면 여기를 클릭하십시오.

카카오 API로 코로나맵 만들기

  • Source: Youtube
  • Views: 61473
  • Date: 9 hours ago
  • Download: 44546
  • Likes: 6150
  • Dislikes: 6

네이버지도 API 등록하기, 유료서비스 무료서비스 구분 … kakao지도편…

웹사이트 또는 모바일 서비스를 개발시 지도를 표시하는 경우가 있는데요, 보통 네이버지도 또는 다음지도 API 서비스를 이용하여 아래와 같이 개발하게 됩니다.

카카오지도 API / kakao지도 API

그런데, 다음지도 서비스가 2018년 11월경에 중지되었고, 지금은 카카오에서 지도서비스를 제공하고 있습니다. 아울러 kakao지도 로 변경된 이후 일정 쿼터를 넘기게 되면 유료로 변경되어 비용이 지급해야 합니다.

카카오지도 유료 쿼터제한

네이버지도 또한 아래와 같이 쿼터제한을 두고 있습니다. 일반적인 웹사이트는 걱정할 필요가 없을 정도로 쿼터제한이 넉넉하긴 합니다만, 대량 접속을 유발하는 서비스의 경우는 비용을 지급해야 겠지요

네이버지도 유료 쿼터제한

이번 포스팅에서는 카카오지도 API 를 이용하여 웹사이트에 원하는 지도를 넣는 방법을 설명하도록 하겠습니다. kakao지도 를 이용하기 위해서는 카카오 개발자센터에 가입한 후, 앱/웹 등을 등록해야 사용할 수 있습니다.

아래 사이트가 카카오 개발자센터 입니다.

https://developers.kakao.com/

카카오개발자센터에 접속한 후에 회원가입(개발자 등록)을 합니다. 등록후에 내 애플리케이션 메뉴로 가면, 좌측에 앱만들기 라는 메뉴가 있습니다.

카카오개발자센터 카카오지도 API

앱만들기 버튼을 클릭한 후에 아래의 입력항목을 채워넣고 [앱만들기] 버튼을 클릭합니다.

카카오지도 API 만들기

앱만들기가 끝나면 다음과 같이 네이티브앱/ REST API/ Javascript/ Admin 용의 키값이 생성되는데요, 이를 각 어플리케이션을 개발할때 사용하게 됩니다.

이후에, 아래와 같이 내 애플리케이션 메뉴로 가서 방금 생성한 앱을 클릭하면 아래와 같은 화면이 나타나는데요, 여기서 앱정보 옆에 있는 설정을 클릭합니다.

kakao지도서비스

선택한 앱의 상세정보가 표시됩니다. 아까 생성했던 앱키도 보여지게 됩니다.

다음지도 카카오지도 서비스

위 화면 우측하단의 플랫폼추가 버튼을 클릭합니다. 사용하고자하는 환경에 따라 Android / iOS / 웹 중 하나를 선택하고 웹의경우는 도메인을 입력해 주고 추가버튼을 클릭하면 등록이 완료됩니다.

일반적인 웹사이트의 경우라면 아래와 같이 javascript 를 이용하여 적용할 수 있습니다.

// 카카오지도 기능을 이용하기 위해 sdk 를 로드하는 부분입니다.

// 빨간글씨 부분이 바로 애플리캐이션 등록시에 발급받은 키값 입니다.

// javascript 키를 복사해서 아래 빨간색 코드부분에 넣어주시면 됩니다.

// 아래 div 는 지도가 실제로 보여지는 영역입니다.

//아래 코드는 위 div 에 지도를 실제로 뿌려주기 위한 코드입니다.

지금까지 카카오지도 API 를 이용하여 웹에 kakao지도를 표시하는 과정을 살펴봤습니다.

‘지도 활용 안내/지도 오픈 API’ 카테고리의 글 목록

안녕하세요. 지도인 인사드려요~ 지도를 이용하여 서비스를 제작하고 싶은 분들을 위해 지도 Open API 사이트를 안내해 드리겠습니다. 웹페이지나 모바일 앱에서 지도 정보를 제공하고 싶지만 복잡하고 어려운 절차로 힘드셨죠? 이제 지도 Open API 가이드를 통해, 쉽고 빠르게 원하는 플랫폼에서 지도를 제공해 보세요~ 1. 쉬운 개발 가이드 저희 지도 API 개발자가 직접 작성한 적용하기 쉬운 코드로 지도를 띄울 수 있는 방법을 제공합니다. 2. 다양한 샘플 지도 Open API 사이트에서는 누구나 코드를 바로 가져다 쓸 수 있는 다양한 샘플을 제공합니다. * Web – 샘플은 카테고리로 구분되어 있습니다. – 검색기능으로 원하는 샘플을 쉽게 찾을 수 있습니다. – 예제 화면을 바로 확인하고, 코드는 j..

Kakao Developers Open API 계정 가입 및 API 연동 변경 안내. 본 안내는 아직까지 Daum 지도 API를 이용하는 해당 서비스의 운영자에게 알리는 메시지 입니다.

  • Source: kakaomap.tistory.com
  • Views: 81380
  • Publish date: 40 minute ago
  • Downloads: 80067
  • Likes: 8223
  • Dislikes: 2
  • Title Website: ‘지도 활용 안내/지도 오픈 API’ 카테고리의 글 목록
  • Description Website: Kakao Developers Open API 계정 가입 및 API 연동 변경 안내. 본 안내는 아직까지 Daum 지도 API를 이용하는 해당 서비스의 운영자에게 알리는 메시지 입니다.

세부 정보를 보려면 여기를 클릭하십시오.

etc 14 [ google Map API ] information window Map with google Map API

  • Source: Youtube
  • Views: 40681
  • Date: 39 minute ago
  • Download: 84217
  • Likes: 882
  • Dislikes: 10

카카오맵 공식 블로그

안녕하세요. 지도인 인사드려요~ 지도를 이용하여 서비스를 제작하고 싶은 분들을 위해 지도 Open API 사이트를 안내해 드리겠습니다. 웹페이지나 모바일 앱에서 지도 정보를 제공하고 싶지만 복잡하고 어려운 절차로 힘드셨죠? 이제 지도 Open API 가이드를 통해, 쉽고 빠르게 원하는 플랫폼에서 지도를 제공해 보세요~ 1. 쉬운 개발 가이드 저희 지도 API 개발자가 직접 작성한 적용하기 쉬운 코드로 지도를 띄울 수 있는 방법을 제공합니다. 2. 다양한 샘플 지도 Open API 사이트에서는 누구나 코드를 바로 가져다 쓸 수 있는 다양한 샘플을 제공합니다. * Web – 샘플은 카테고리로 구분되어 있습니다. – 검색기능으로 원하는 샘플을 쉽게 찾을 수 있습니다. – 예제 화면을 바로 확인하고, 코드는 j..

[javascript/api] 다음 카카오 지도 API 연동 [펌] – 개발자의 끄적끄적

22 thg 5, 2020 — 다음지도 API에서 자동으로 알아낸 후, 좌표값의 정보가 담긴 Scaffold 게시글을 등록하면 메인 홈페이지 등에 보여지는 지도에 모든 좌표가 보여지게 …

  • Source: solbel.tistory.com
  • Views: 47722
  • Publish date: 2 minute ago
  • Downloads: 8025
  • Likes: 6966
  • Dislikes: 1
  • Title Website: [javascript/api] 다음 카카오 지도 API 연동 [펌] – 개발자의 끄적끄적
  • Description Website: 22 thg 5, 2020 — 다음지도 API에서 자동으로 알아낸 후, 좌표값의 정보가 담긴 Scaffold 게시글을 등록하면 메인 홈페이지 등에 보여지는 지도에 모든 좌표가 보여지게 …

세부 정보를 보려면 여기를 클릭하십시오.

네이버 지도 API 제1강 (범죄 지도 만들기)

  • Source: Youtube
  • Views: 94304
  • Date: 13 hours ago
  • Download: 41314
  • Likes: 2805
  • Dislikes: 8

api] 다음 카카오 지도 API 연동 [펌]

[javascript/api] 다음 카카오 지도 API 연동 [펌]

다음지도 API에서 자동으로 알아낸 후, 좌표값의 정보가 담긴 Scaffold 게시글을 등록하면 메인 홈페이지 등에 보여지는 지도에 모든 좌표가 보여지게 하는 원리의 지도를 소개하고자 합니다.

Chapter 1 다음 카카오 지도 API 준비단계

” https://developers.kakao.com/apps ”

1. 다음 카카오 개발자센터[클릭]로 가서 로그인 혹은 회원가입을 진행합니다.

처음 시작하시는 분이라면 좌측메뉴에 보이는 ‘앱 만들기’ 버튼을 클릭해서 새로운 앱을 만들어주세요.

2. 자신의 앱에 들어간 후, 좌측메뉴에 보이는 메뉴에서 설정 – 일반 에 가신 뒤,

Javascript API Key를 획득합니다.

3. 이어서 바로 아래에 보이는 ‘플랫폼’ 탭에서 새 플랫폼(웹)을 추가한 후,

다음 카카오 MAP을 도입하기 위한 홈페이지 URL을 등록합니다.

4. 이제 모든 준비가 끝났습니다. 다음 Chapter로 이동해주세요.

Chapter 2 다음 카카오 지도 API 구현

1. Scaffold를 만들어줍니다.

1 rails g scaffold posts title content:text lat lng

· title : 제목 · content : 내용

· lat : 지도 X축 · lng : 지도 Y축

2. /app/views/layouts/application.html.erb 에 다음 내용을 작성해주세요.

(추가된 코드는 ■하늘색 글씨로 표시)

1 2 3 4 5 6 7 8 … <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

여기에서 javascript API 키를 입력할 때 Chapter 1 과정으로 얻어냈던 javascript API키를 입력해야 하는 점, 잊지 말아주세요.

예시로 작성된 코드는 다음과 같습니다.

1

참고 개발자 도구(F12)를 통해 보면은 API 키가 그대로 노출되긴 하나, 이 부분은 걱정 안하셔도 됩니다.

Chapter 1의 3번 과정에서 등록된 URL 외에 해당 API Key를 사용하면 서버에서 사용 제한을 걸어둡니다.

3. /app/views/posts/_form.html.erb 에 다음 내용을 작성해주세요.

(추가된 코드는 ■연두색 글씨로 표시)

지도에 마우스를 클릭하면 마커가 찍히게 되고, 자동으로 X축, Y축 input form에 입력이 됩니다.

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 <%= form_with(model: post, local: true) do |form| %> <% if post.errors.any? %>

<%= pluralize(post.errors.count, "error") %> prohibited this post from being saved:

    <% post.errors.full_messages.each do |message| %>

  • <%= message %>
  • <% end %>

<% end %>

지도를 클릭해서 좌표를 얻어내세요!

<%= form.label :title %> <%= form.text_field :title, id: :post_title %>
<%= form.label :content %> <%= form.text_area :content, id: :post_content %>
<%= form.label :"지도 X축" %> <%= form.text_area :lat, id: :lat, readonly: "readonly", rows: 1 %>
<%= form.label :"지도 Y축" %> <%= form.text_area :lng, id: :lng, readonly: "readonly", rows: 1 %>
<%= form.submit %>

<% end %>

이번 과정에서 코드좀 짚고 넘어가보겠습니다.

1) _form.html.erb 의 지도 API 예시는 다음 예시를 활용했습니다.

· 클릭한 위치에 마커 표시하기 [클릭]

2) 지도를 띄우는 태그입니다.

14

3) Javascript 코드에서 지도에 마우스를 클릭하면 X축과 Y축을 알아냅니다.

74 75 76 77 78 79 80 // X축 좌표값을 얻어냄 var map_x = document.getElementById(‘lat’); map_x.innerHTML = latlng.getLat(); // Y축 좌표값을 얻어냄 var map_y = document.getElementById(‘lng’); map_y.innerHTML = latlng.getLng();

4) Javascrpit 코드로 부터 알아낸 지도의 X축과 Y축을 input 태그에 입력시키고, 후에 DB에 저장됩니다.

readonly: “readonly” 속성 때문에 직접적인 태그에 글 작성은 막혀있습니다.

27 28 29 30 31 32 33 34 35

<%= form.label :"지도 X축" %> <%= form.text_area :lat, id: :lat, readonly: "readonly", rows: 1 %>
<%= form.label :"지도 Y축" %> <%= form.text_area :lng, id: :lng, readonly: "readonly", rows: 1 %>

5) 처음에 사람들에게 보여질 지도의 위치에 대한 정보를 나타냅니다.

참고 현재 좌표는 강원대학교 춘천캠퍼스를 가리킵니다.

그리고 레일즈에 있어 form_with 는 새 글 작성/수정을 같이 담당하는 태그인데,

저희는 새 글 작성/수정 상황에 따라 지도의 뷰가 다르게 보이게 하고자 합니다.

46번째 줄에서 만약 lat가 아무 내용도 없다면 새 글로 간주(사실 새 글 구분 기준은 ID값이 있냐 없느냐로 하는게 좋긴 하나, 애초에 글을 작성 시에 지도에 마커표시를 안할 경우를 대비를 해서 이렇게 작성했습니다.),

그게 아니면 이미 DB에 저장된 데이터를 불러와서 마커표시했던 지점을 중심으로 지도가 보여지게 합니다.

44 45 46 47 48 49 50 51 52 var mapContainer = document.getElementById(‘map’), // 지도를 표시할 div mapOption = { <% if @post.lat == nil %> center: new daum.maps.LatLng(37.86890322758033, 127.74428448833586), // 최초 글 작성 시 지도의 중심좌표 <% else %> center: new daum.maps.LatLng(<%= @post.lat %>, <%= @post.lng %>), // 수정 시 보여지는 위치 <% end %> level: 2 // 지도의 확대 레벨 };

4. /app/views/posts/index.html.erb 에 다음 코드를 입력합니다.

예시 1 마우스 오버 시 info message가 보여지게 (모바일에서는 작동 안되는 듯 함.)

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 …

… (scaffold 게시글이 보여지는 내용) … <%# 지도 Control 영역 (제일 아래에 작성) %>

이번 과정에서 코드좀 짚고 넘어가보겠습니다.

1) 예시 1 index.html.erb 의 지도 API 예시는 다음 예시를 활용했습니다.

· 여러개 마커에 이벤트 등록하기1 [클릭]

· 여러개 마커 제어하기 [클릭]

2) 마커를 띄우는 Javascript 태그입니다. json 방식이 쓰였습니다.

레일즈의 each do 를 이용해서 여러개의 마커가 보여지도록 반복합니다.

1 2 3 4 5 6 7 8 9 // 마커를 표시할 위치와 내용을 가지고 있는 객체 배열입니다 var positions = [ <% @posts.each do |x| %> { content: '

<%= x.title %>

', latlng: new daum.maps.LatLng(<%= x.lat %>, <%= x.lng %>) }, <% end %> ];

3) 지도에 표기된 마커를 보여주거나 숨기기 위한 작업 준비 코드로서, 마커들에 대한 정보를 해당 배열에 담아둘 예정입니다.

72 var markers = [];

4) (87번 째 줄 코드) 생성된 마커들의 정보를 72번 째 줄에 입력했던 배열에 담아둡니다.

74 86 87 94 for (var i = 0; i < positions.length; i ++) { ... // 생성된 마커를 배열에 추가합니다 markers.push(marker); ... } 5) 마커 정보가 담긴 배열들을 setMap 함수에 등록(초기화) 합니다. 113 114 115 116 117 function setMarkers(map) { for (var i = 0; i < markers.length; i++) { markers[i].setMap(map); } } 6) showMarkers() 함수의 역할을 설정합니다. (해당 이벤트 발생 시 지도에서 마커들이 보여짐) 120 121 122 function showMarkers() { setMarkers(map) } 7) hideMarkers() 함수의 역할을 설정합니다. (해당 이벤트 발생 시 지도에서 마커들이 보여짐) 125 126 127 function hideMarkers() { setMarkers(null); } 8) 마커들을 보여주거나 숨기게 합니다. (이벤트 트리거) 24 25

예시 2 마우스 클릭 시 info Message가 보여지게

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ...

...

코드좀 짚고 넘어가보겠습니다.

1) 예시 2 index.html.erb 의 지도 API 예시는 다음 예시를 활용했습니다.

· 여러개 마커 제어하기 [클릭]

· 마커에 클릭 이벤트 등록하기 [클릭]

2) 클릭 이벤트 발현 시, 이벤트가 발현되는 함수로 넘겨줍니다.

96 daum.maps.event.addListener(marker, 'click', makeClickListener(map, marker, infowindow));

3) 클릭 이벤트 처리를 담당하는 함수입니다.

100 101 102 103 104 function makeClickListener(map, marker, infowindow) { return function() { infowindow.open(map, marker); }; }

5. 위와같이 설정을 하면 대략적인 지도 API 활용을 하실 수 있게 됩니다!

참고로 Scaffold 게시글이 지워지면, 마커 또한 지워지는 점 참고해주세요!

예시 3 마우스 클릭 시 info Message가 보여지게 + 비동기 방식

* 비동기 방식은 데이터 처리속도가 빠르다는 장점이 있음.

■연두색 글씨 : 비동기 방식으로 데이터를 불러오는 코드

■하늘색 글씨(17번 째 줄) : 자신의 파일 이름에 맞는 json 파일명 입력 (현재 예제처럼 따라했다면 안바꿔도 됨.)

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ...

...

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 32 33 34 35 36 37 38 39 40 ## 참고 : Json 파일 (해당 내용은 그저 참고로만 보시고, 배낄 필요는 없습니다.) [ { "lat":"37.86844026066022", "lng":"127.74483670632969", "title":"테니스장", "content":"ㅇㅅㅇ", "created_at":"2018-10-25T17:20:11.055Z", "updated_at":"2018-10-25T17:20:11.055Z", "url":"https://intructure-material-kbs4674.c9users.io/posts/1.json" }, { "lat":"37.868446169315334", "lng":"127.74318886960685", "title":"강대 운동장", "content":"ㅇㅅㅇ", "created_at":"2018-10-25T17:20:41.278Z", "updated_at":"2018-10-26T16:47:29.427Z", "url":"https://intructure-material-kbs4674.c9users.io/posts/2.json" }, { "lat":"37.86935673313407", "lng":"127.74309004914765", "title":"연적지", "content":"ㅇㅇ", "created_at":"2018-10-26T17:17:09.071Z", "updated_at":"2018-10-26T17:17:09.071Z", "url":"https://intructure-material-kbs4674.c9users.io/posts/8.json" }, { "lat":"37.86918935132096", "lng":"127.74462831410895", "title":"대학본부", "content":"ㅎㅎ", "created_at":"2018-10-26T17:17:24.894Z", "updated_at":"2018-10-26T17:17:24.894Z", "url":"https://intructure-material-kbs4674.c9users.io/posts/9.json" } ]

출처 : http://blog.naver.com/PostView.nhn?blogId=kbs4674&logNo=221381753132&parentCategoryNo=&categoryNo=78&viewDate=&isShowPopularPosts=false&from=postView

리액트에서 카카오 지도 API를 써보았습니다. 근데 이제 타입 ...

export const Map = ( ) => { const { kakao } = window ; const mapRef = useRef < HTMLDivElement > ( null ) ; useEffect ( ( ) => { const container = mapRef . current ; const options = { center : new kakao . maps . LatLng ( 33.450701 , 126.570667 ) , level : 5 , } ; const map = new kakao . maps . Map ( container , options ) ; const places = new kakao . maps . services . Places ( map ) ; const placesSearchCB = ( data , status , pagination ) => { if ( status === kakao . maps . services . Status . OK ) { for ( let i = 0 ; i < data . length ; i ++ ) { displayMarker ( data [ i ] ) ; } } } ; places . keywordSearch ( "치킨" , placesSearchCB , { useMapBounds : true , } ) ; const displayMarker = ( place ) => { const marker = new kakao . maps . Marker ( { map : map , position : new kakao . maps . LatLng ( place . y , place . x ) , } ) ; } ; } , [ ] ) ; return ( < > < Div ref = { mapRef } > < / Div > < / > ) } const Div = styled . div ` width: 100vw; height: 100vh; ` ;

24 thg 5, 2022 — 네이버 지도 API도 있지만 카카오를 사용한 이유는 키워드로 검색하여 장소를 ... 그럼 다음으로 displayMarker 함수에서 각각의 마커에 정보를 담을 ...

  • Source: velog.io
  • Views: 47286
  • Publish date: 2 hours ago
  • Downloads: 12343
  • Likes: 5316
  • Dislikes: 10
  • Title Website: 리액트에서 카카오 지도 API를 써보았습니다. 근데 이제 타입 ...
  • Description Website: 24 thg 5, 2022 — 네이버 지도 API도 있지만 카카오를 사용한 이유는 키워드로 검색하여 장소를 ... 그럼 다음으로 displayMarker 함수에서 각각의 마커에 정보를 담을 ...

세부 정보를 보려면 여기를 클릭하십시오.

[Co'Talk] React에서 지도 API 사용하기(카카오맵) - Codestates 수료생 김지윤

  • Source: Youtube
  • Views: 85365
  • Date: 20 hours ago
  • Download: 88261
  • Likes: 2670
  • Dislikes: 8

리액트에서 카카오 지도 API를 써보았습니다. 근데 이제 타입스크립트를 곁들인..

프로젝트에서 지도 기능이 필요해서 카카오 지도 API를 써보았다.

네이버 지도 API도 있지만 카카오를 사용한 이유는 키워드로 검색하여 장소를 찾는 기능이 필요했는데 네이버 지도 REST API에는 해당 기능이 없었기 때문이다.

React + TypeScript 환경에서 카카오맵 API를 썼기 때문에 공식 홈페이지에 있는 자바스크립트 예제 코드에서 쬬끔 변형해서 썼는데,

이에 대한 기록이 필요한 것 같아 글을 쓰며 정리해보고자 한다.

1. kakao developers APP KEY 발급

카카오 지도 API 를 이용하기 위해서는 우선 카카오 디벨로퍼에 내 어플리케이션을 등록하고 KEY를 발급받아야 한다.

우선 카카오 지도 API 사이트로 가보자 https://apis.map.kakao.com/

사이트에 가보면 위 사진에 표시해 놓은 것 처럼 APP KEY 발급이라는 버튼이 있다.

클릭해서 들어가보면 kakao developers 의 내 애플리케이션 페이지로 이동한다.

이제 이 페이지에서 애플리케이션 추가하기 버튼을 클릭하고 내가 만든(혹은 만들 예정인) 애플리케이션 이름을 등록하면 된다.

그러면 위 사진처럼 내가 등록한 애플리케이션이 보이게 된다. 클릭해서 들어가보면 APP KEY를 확인할 수 있다.

블러로 가려놓긴 했는데 저 위치에서 확인할 수 있는 JavaScript 키를 사용해 줄 것이다.

이제 마지막으로 내 애플리케이션의 URL을 등록해주기만 하면 준비 끝이다. 앱 설정 메뉴의 플랫폼 페이지로 가보자.

이번에 만들 프로젝트는 웹사이트이므로 Web 사이트 URL을 입력해주면 된다.

아직 배포가 안된 상태면 http://localhost:3000 으로 등록해주면 로컬에서도 잘 동작한다. 주의할 점은 끝에 / 는 빼야한다.

2. APP KEY를 내 프로젝트에 넣기

카카오 지도 API 공식 홈페이지에 보면 실제 지도를 그릴 API를 불러오려면

< script type = " text/javascript " src = " //dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY를 넣으시면 됩니다. " >

위와 같은 스크립트 태그를 이용해서 불러와야 한다고 설명하고 있다.

검색 기능 등 여러 가지 기능을 지원하는 지도 라이브러리를 함께 사용하기 위해서는 라이브러리도 함께 불러와야 한다.

나는 장소 검색 기능 이 필요해서 해당 기능을 제공해주는 services 라이브러리도 함께 불러 왔다.

< ! -- services 라이브러리 불러오기 -- > < script type = "text/javascript" src = "//dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY&libraries=services" > < / script >

React 에서는 index.html 에 넣으면 된다.

< html lang = " en " > < head > < meta charset = " UTF-8 " /> < link rel = " icon " type = " image/svg+xml " href = " /src/favicon.ico " /> < script type = " text/javascript " src = " //dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY&libraries=services " > < title > 웹 페이지 타이틀 < body > < div id = " root " > < script type = " module " src = " /src/main.tsx " >

근데 이렇게 index.html 에 스크립트 태그를 이용해서 불러오는 코드를 넣어주게 되면 내 APP KEY가 그대로 노출된다는 단점이 있다.

물론 개발자가 지정한 URL에서만 카카오 지도 API를 불러올 수 있지만, 대다수의 개발자들이 로컬 URL을 이용해서 개발을 하기 때문에 키가 노출되서 좋을 건 하나도 없다.

그래서 .env 파일을 이용해서 APP KEY를 숨기려고 했는데, Vite로 빌드한 프로젝트에서 script 태그 내의 APP 키를 환경 변수로 넣는 방법을 아직 못찾았다.

(CRA에서 하는 방법은 찾았는데, Vite에 대한 정보는 생각보다 찾기 어려운 것 같다.)

Vite와 환경 변수에 대해 좀 더 공부하고 해당 주제에 대한 글을 따로 포스팅하도록 하겠다.

3. 원하는 페이지에서 카카오 지도 가져오기

이제 원하는 페이지에서 카카오 지도 api를 사용할 수 있게 되었다.

공식 홈페이지에 Docs와 더불어 코드 샘플을 통해 설명들이 잘 되어있으니 참고하면서 필요한 기능을 쓰면 된다.

일단 빈 지도를 하나 가져와 보겠다. 공홈에서는 이런 예제로 설명되어있다.

var mapContainer = document . getElementById ( 'map' ) , mapOption = { center : new kakao . maps . LatLng ( 33.450701 , 126.570667 ) , level : 3 } ; var map = new kakao . maps . Map ( mapContainer , mapOption ) ;

위 코드를 그대로 복붙하면 내가 원하는 페이지에서 지정한 좌표를 중심으로 한 지도가 생기는 것을 볼 수 있다.

지도를 표시할 용도로 지정한 div와 옵션을 인수로 전달하면서 지도 객체를 생성하고, 생성된 지도 객체를 map이라는 변수에 할당해주는 것이다.

그런데 위의 예시 코드는 리액트에서는 부적합한 코드라고 할 수 있는데, DOM 셀렉터 함수로 특정 DOM 요소를 조작하는 것을 리액트에서는 지양하기 때문이다.

( 참고 : https://mingule.tistory.com/61 )

나는 map 객체를 표시할 div를 지정하기 위한 용도로 useRef 훅 을 사용했다. useRef는 .current 프로퍼티로 전달된 인자로 초기화된 ref 객체를 반환한다.

export const Map = ( ) => { const mapRef = useRef < HTMLDivElement > ( null ) ; useEffect ( ( ) => { const container = mapRef . current ; console . log ( container ) ; } , [ ] ) ; return ( < > < div > < / div > < / > ) }

mapRef 변수에 null 값을 가지고 있는 ref 객체 를 할당하고, mapRef의 .current 를 다시 container 변수에 할당했다. (mapRef 의 참조를 container 변수에 할당)

타입스크립트에서는 타입을 미리 지정해주어야 하는데, 우리가 mapRef와 연결할 엘리먼트는 div 이기 때문에 타입을 지정해준다.

지금은 container (= mapRef.current ) 가 null 값을 가지고 있는데, 변경하려면 특정 element와 mapRef 의 ref 를 연결해주어야 한다.

export const Map = ( ) => { const mapRef = useRef < HTMLDivElement > ( null ) ; useEffect ( ( ) => { const container = mapRef . current ; console . log ( container ) ; } , [ ] ) ; return ( < > < div ref = { mapRef } > < / div > < / > ) }

그 후 container 를 출력하면 div 태그가 출력되는 것을 알 수 있다.

그 다음에는 options 변수를 생성해서 지도의 옵션을 지정해주고, 지도를 표시할 div로 container 변수를 사용해서 지도 객체를 생성하면 된다.

주의할 점은 지도 객체를 생성하는 것만으로는 지도가 보이지 않고 지도를 표시할 div에 width와 height를 지정해주어야 지도가 보이니까 반드시 지정해주어야 한다.

예제 코드처럼 kakao 라는 생성자를 통해 객체를 생성하려고 하니 어? kakao가 뭔디요? 하는 오류를 띄운다.

const { kakao } = window;

이렇게 window 객체에 kakao라는 값을 직접 추가해줘야 한다.

export const Map = ( ) => { const { kakao } = window ; const mapRef = useRef < HTMLDivElement > ( null ) ; useEffect ( ( ) => { const container = mapRef . current ; const options = { center : new kakao . maps . LatLng ( 33.450701 , 126.570667 ) , level : 5 , } ; const map = new kakao . maps . Map ( container , options ) ; } , [ ] ) ; return ( < > < Div ref = { mapRef } > < / Div > < / > ) } const Div = styled . div ` width: 100vw; height: 100vh; ` ;

이제 빈 지도 하나를 출력하는데 성공했다. 카카오 지도라 그런지 예제 코드에 있던 좌표는 카카오 본사 좌표였다.

4. 키워드를 검색해서 지도에 마커 표시하기

그 다음에는 키워드를 검색해서 가져온 빈 지도에 마커를 표시해보자. 공홈에는 이런 예제 코드로 설명하고 있다.

var infowindow = new kakao . maps . InfoWindow ( { zIndex : 1 } ) ; var mapContainer = document . getElementById ( 'map' ) , mapOption = { center : new kakao . maps . LatLng ( 37.566826 , 126.9786567 ) , level : 3 } ; var map = new kakao . maps . Map ( mapContainer , mapOption ) ; var ps = new kakao . maps . services . Places ( ) ; ps . keywordSearch ( '이태원 맛집' , placesSearchCB ) ; function placesSearchCB ( data , status , pagination ) { if ( status === kakao . maps . services . Status . OK ) { var bounds = new kakao . maps . LatLngBounds ( ) ; for ( var i = 0 ; i < data . length ; i ++ ) { displayMarker ( data [ i ] ) ; bounds . extend ( new kakao . maps . LatLng ( data [ i ] . y , data [ i ] . x ) ) ; } map . setBounds ( bounds ) ; } } function displayMarker ( place ) { var marker = new kakao . maps . Marker ( { map : map , position : new kakao . maps . LatLng ( place . y , place . x ) } ) ; kakao . maps . event . addListener ( marker , 'click' , function ( ) { infowindow . setContent ( '

' + place . place_name + '

' ) ; infowindow . open ( map , marker ) ; } ) ; }

예제 코드를 보면 장소 검색 객체를 생성하고, 키워드로 장소를 검색한 뒤에, 지도에 해당되는 장소에 마커를 표시해주는 로직임을 알 수 있다.

아까 작성한 코드에서 필요한 부분만 가져와서 검색 결과를 마커로 표시되게 해보자. 우선 최종 코드의 형태는 아래와 같다.

export const Map = ( ) => { const { kakao } = window ; const mapRef = useRef < HTMLDivElement > ( null ) ; useEffect ( ( ) => { const container = mapRef . current ; const options = { center : new kakao . maps . LatLng ( 33.450701 , 126.570667 ) , level : 5 , } ; const map = new kakao . maps . Map ( container , options ) ; const places = new kakao . maps . services . Places ( map ) ; const placesSearchCB = ( data , status , pagination ) => { if ( status === kakao . maps . services . Status . OK ) { for ( let i = 0 ; i < data . length ; i ++ ) { displayMarker ( data [ i ] ) ; } } } ; places . keywordSearch ( "치킨" , placesSearchCB , { useMapBounds : true , } ) ; const displayMarker = ( place ) => { const marker = new kakao . maps . Marker ( { map : map , position : new kakao . maps . LatLng ( place . y , place . x ) , } ) ; } ; } , [ ] ) ; return ( < > < Div ref = { mapRef } > < / Div > < / > ) } const Div = styled . div ` width: 100vw; height: 100vh; ` ;

KeywordSearsh 메서드는 3개의 인수를 가지며, 각각 검색할 키워드 , 검색 결과를 받는 콜백 함수 , 다양한 옵션들을 파라미터를 통해 적용할 수 있는 options (생략 가능) 이다.

나는 지도의 범위에서만 검색하기 위해 useMapBounds 값을 true로 변경하였다. 기본값은 false이며 변경해주지 않으면 전국에서 해당 키워드의 검색 결과를 확인할 수 있다.

다양한 옵션이 있으니 이 부분은 Docs 를 참조해서 추가하면 된다. ( 참고 : https://apis.map.kakao.com/web/documentation/#services_Places_keywordSearch)

keywordSearch 메서드의 콜백 함수도 3개의 인수를 가지는데, 각각 result : 결과 목록, status : 응답 코드, pagination : 검색 결과의 페이징을 담당하는 클래스객체 이다.

나는 status 의 값이 성공이면 지도에 마커를 표시해주는 함수는 displayMarker 함수를 호출하고 이를 검색 결과 데이터의 요소를 순회해서 반복문으로 처리하였다.

const placesSearchCB = ( data , status , pagination ) => { if ( status === kakao . maps . services . Status . OK ) { for ( let i = 0 ; i < data . length ; i ++ ) { displayMarker ( data [ i ] ) ; } } } ; 이렇게 작성하여 현재 내가 지정한 지도의 범위에서 해당되는 키워드 ( 현재는 "치킨" 으로 하드 코딩 )의 결과 장소를 마커로 표시해준다. 카카오 본사 근처에는 치킨집이 하나밖에 없나보다. 하긴 제주도니까 뭐. "치킨"이라는 키워드로 하드코딩 되어있는 부분은 state 를 이용해서 변경되게 만들어주면 검색되는 키워드도 변경할 수 있다. 5. 마커를 클릭하면 해당 장소의 정보 띄워주기 현재는 지도에 마커를 표시해줄뿐 마커에는 어떠한 기능이 없다. 마커에 이벤트를 걸어서 클릭되면 해당 장소의 정보를 띄워주도록 해보자. 우선 그 장소의 데이터가 필요한데 keywordSearch 메서드의 콜백 함수 중 첫 번째 인수가 바로 이 데이터 값을 우리에게 제공해준다. const placesSearchCB = ( data , status , pagination ) => { if ( status === kakao . maps . services . Status . OK ) { console . log ( data ) ; for ( let i = 0 ; i < data . length ; i ++ ) { displayMarker ( data [ i ] ) ; } } } ; 이런 식으로 첫 번째 인수를 출력해보면 저 치킨집의 정보를 확인할 수 있다. (물론 결과값이 많으면 많은 장소의 데이터를 제공해 줄 것이다.) 저 치킨집은 멕시카나 치킨이었네용? 친절하게 카카오 지도 링크 URL도 준다. displayMarker 함수에 매개 변수로 마커가 표시하는 장소의 정보를 전달해주면 이 정보들을 마커의 클릭 이벤트에 활용할 수 있다. 그럼 다음으로 displayMarker 함수에서 각각의 마커에 정보를 담을 state를 추가하고 setState를 통해 정보를 전달해보자. 먼저 우리가 담아야 하는 데이터는 전부 스트링으로 되어있는 프로퍼티를 가지고 있으니까 타입 선언부터 하자. type Place = { place_name : string ; distance : string ; place_url : string ; category_name : string ; address_name : string ; road_address_name : string ; id : string ; phone : string ; category_group_code : string ; category_group_name : string ; x : string ; y : string ; } ; 네. 노가다 였습니다. 객체는 전부 같은 타입일 때 한번에 타입 지정해주는 기능 없나? 한 번 찾아봐야겠다. 어쨋든 이렇게 타입 지정을 해주고 state를 추가해주자. const [ selectedPlace , setSelectedPlace ] = useState < Place > ( ) ;

마지막으로 displayMarker 함수에서 우리가 만든 state에 데이터를 전달하는 클릭 이벤트를 만들어주자.

const displayMarker = ( place ) => { const marker = new kakao . maps . Marker ( { map : map , position : new kakao . maps . LatLng ( place . y , place . x ) , } ) ; kakao . maps . event . addListener ( marker , "click" , function ( ) { setSelectedPlace ( place ) ; } ) ; } ;

이제 마커를 클릭할 때마다 selectedPlace 에는 해당 마커의 정보들이 담기게 된다. 이 정보 중에 사용할 데이터들만 뽑아서

삼항 연산자를 통해 모달창처럼 만들어주면 이 기능도 완성이다. 최종 완성된 코드는 다음과 같다.

export const Map = ( ) => { const { kakao } = window ; const mapRef = useRef < HTMLDivElement > ( null ) ; const [ selectedPlace , setSelectedPlace ] = useState < Place > ( ) ; const [ isLoading , setIsLoading ] = useState ( false ) ; const { query } = useParams ( ) ; useEffect ( ( ) => { const container = mapRef . current ; const options = { center : new kakao . maps . LatLng ( 33.450701 , 126.570667 ) , level : 5 , } ; const map = new kakao . maps . Map ( container , options ) ; const places = new kakao . maps . services . Places ( map ) ; const placesSearchCB = ( data , status , pagination ) => { if ( status === kakao . maps . services . Status . OK ) { console . log ( data ) ; for ( let i = 0 ; i < data . length ; i ++ ) { displayMarker ( data [ i ] ) ; } } } ; places . keywordSearch ( "치킨" , placesSearchCB , { useMapBounds : true , } ) ; const displayMarker = ( place ) => { const marker = new kakao . maps . Marker ( { map : map , position : new kakao . maps . LatLng ( place . y , place . x ) , } ) ; kakao . maps . event . addListener ( marker , "click" , function ( ) { setSelectedPlace ( place ) ; } ) ; } ; } , [ ] ) ; return ( < > < Div ref = { mapRef } > < / Div > { selectedPlace && ( < PlaceInfo > < PlaceName > { selectedPlace . place_name } < / PlaceName > < hr > < / hr > < PlaceDetail > { selectedPlace . road_address_name } < / PlaceDetail > < PlaceDetail > { selectedPlace . phone } < / PlaceDetail > < a href = { selectedPlace . place_url } > < StyleBtn > 카카오 지도로 보기 < / StyleBtn > < / a > < / PlaceInfo > ) } < / > ) ; } ; const Div = styled . div ` width: 100vw; height: 100vh; z-index: 0; ` ; const Input = styled . input ` position: absolute; top: 10%; left: 10%; z-index: 10; ` ; const Btn = styled . button ` position: absolute; top: 10%; left: 50%; z-index: 10; ` ; const PlaceInfo = styled . div ` background-color: white; position: absolute; bottom: 3vh; z-index: 1; width: 100%; padding: 24px; border-radius: 16px; ` ; const PlaceName = styled . div ` font-size: 1.3rem; ` ; const PlaceDetail = styled . div ` font-size: 1.1rem; margin-bottom: 1vh; ` ; const StyleBtn = styled . button ` width: 100%; padding: 16px 0; border: 3px solid grey; background-color: yellow; border-radius: 10px; font-size: 20px; margin-bottom: 10px; transition: all 300ms ease-in-out; ` ;

이런 식으로 마커에 해당하는 장소의 정보를 간략하게 띄워주고 카카오지도 링크로 연결해주는 버튼까지 추가하는 것으로 카카오 지도 API에 대한 설명을 마친다.

사실 실제 프로젝트에서 사용한 코드에서는 WEB API 인 Geolocation API 를 사용해서 실제 사용자가 있는 장소의 좌표를 가져와서 지도를 보여주도록 했는데,

생각보다 글이 조금 길어진 것 같아 Geolocation API 에 대해서는 다른 글에서 다뤄보도록 하겠다.

divinespear/node-daum-maps-api: node.js용 카카오 다음 지도 ...

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

node.js용 카카오 다음 지도 API. Contribute to divinespear/node-daum-maps-api development by creating an account on GitHub.

  • Source: github.com
  • Views: 65937
  • Publish date: 51 minute ago
  • Downloads: 78383
  • Likes: 9638
  • Dislikes: 4
  • Title Website: divinespear/node-daum-maps-api: node.js용 카카오 다음 지도 ...
  • Description Website: node.js용 카카오 다음 지도 API. Contribute to divinespear/node-daum-maps-api development by creating an account on GitHub.

세부 정보를 보려면 여기를 클릭하십시오.

카카오 지도 API 작성

  • Source: Youtube
  • Views: 19522
  • Date: 8 hours ago
  • Download: 105704
  • Likes: 7724
  • Dislikes: 5

divinespear/node-daum-maps-api: node.js용 카카오 다음 지도 API

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

주제에 대한 관련 정보 다음 지도 api

Bing에서 다음 지도 api 주제에 대한 최신 정보를 볼 수 있습니다.


주제에 대한 기사 보기를 마쳤습니다 다음 지도 api. 이 기사가 유용했다면 공유하십시오. 매우 감사합니다. 사람들이 이 주제와 관련하여 자주 검색하는 키워드: 다음 지도 api 카카오맵, 카카오 지도 API 사용법, 네이버 지도 API, 카카오 지도 API, 지도 API 무료, 카카오맵 장소 id, 카카오맵 검색 api, 지도 API 비교

Leave a Comment