저번에 했던 구글 로그인 프로젝트에서 해보자.
실습
저번에 구글 서비스를 사용하기 위해서 id와 key값을 받아왔었는데,
이번에도 똑같이 가져와야 한다!
이 주소로 들어가자!
이런 창이 뜨고, 회원가입을 해주자.
다시 처음 배너로 돌아와서 서비스라는 배너를 클릭하자.
여기서 maps에 들어가자. Application service
에 있다.
- 들어가서 이용신청하기 누르자.
여기서 어플리케이션 등록 클릭
어플리케이션 이름을 지어주자.
나는
likelion1
으로 지었다.그리고 그중에서
web dynamic Map
을 선택해주자.이 작업까지 했다면 밑에 어떤 웹서비스에 적용할 것인지
환경등록을 해줘야 한다.
우리가 사용했던 로컬 웹주소를 적어주고 추가하자.
그리고 등록!
그럼 이렇게 소셜 로그인을 구현했을 때 처럼 정보가 뜨고,
인증정보 탭이 있다.
이 녀석을 누르면,
client id
,client secret
두 정보가 뜬다.이 두 정보를 적어두자.
그리고 이번에는 두번째, 서비스 구분을 클릭하자.
- 그리고 들어간 창에서 다음의 링크를 타고 들어가자.
<img width="1024" alt="2019-03-08 4 45 15" src="https://user-images.githubusercontent.com/37871541/54014950-996c0e80-41c1-11e9-9901-0fa0c208531b.png">
- 여기에 이제 우리가 필요한 것들이 다 구비되어 있다!
<img width="1051" alt="2019-03-08 4 46 21" src="https://user-images.githubusercontent.com/37871541/54014986-b56fb000-41c1-11e9-93e7-f4739f9a41ee.png">
시작하기를 누르면, 이제 모든 코드들이 다 있을 거야.
그중에서 가장 먼저보이는 hello world 코드를 몽땅 복사해서, 붙여넣어 보자.
<!-- home.html --> {% load socialaccount %} {% providers_media_js %} <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> <title>간단한 지도 표시하기</title> <script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=YOUR_CLIENT_ID"></script> </head> <body> <h1>소셜 로그인을 해봐요!</h1> <a href = "/accounts/signup">회원가입</a><br> {% if user.is_authenticated %} <a href = "/accounts/logout">로그아웃</a> {{user.username}} 님이 로그인중 {% else %} <a href=" {% provider_login_url 'google' %}">구글 로그인</a><br> 로그인 하셔야 합니다. {% endif %} <div id="map" style="width:100%;height:400px;"></div> <script> var mapOptions = { center: new naver.maps.LatLng(37.3595704, 127.105399), zoom: 10 }; var map = new naver.maps.Map('map', mapOptions); </script> </body> </html>
네이버에서 따온 코드 중
body
태그 안에 우리가 작성했던 걸 넣어주었다.간단하게 설명하면,
<div id="map" style="width:100%;height:400px;"></div> <!-- 이 부분이 지도! -->
이 부분이 지도를 띄워주는 부분이 되는 것이고,
```html
<script>
var mapOptions = {
center: new naver.maps.LatLng(37.3595704, 127.105399),
zoom: 10
};
</script>
```
이 부분의 뒤의 두 파라미터가 위도, 경도이다.
그전에,
<head>
태그 부분의<title>
밑부분,<head> <title>간단한 지도 표시하기</title> <script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=YOUR_CLIENT_ID"></script> </head>
여기서,
YOUR_CLIENT_ID
로 된 부분에, 아까 저장했던 발급받은 아이디를 적으면 된다.
```html
<head>
<title>간단한 지도 표시하기</title>
<script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=cvszxvnmu9"></script>
</head>
```
이렇게!
- 이러고 서버를 돌려보면!
<img width="1081" alt="2019-03-08 4 56 39" src="https://user-images.githubusercontent.com/37871541/54015480-26fc2e00-41c3-11e9-945a-88dd1475383f.png">
이렇게 예쁘게 뜬다!
근데 너무 지도가 크니까, 아까 html 에서 조정하자.
<div id="map" style="width:50%;height:400px;"></div> <!-- 이 부분이 지도! -->
너비를 반으로 줄이자.
그리고 너무 축척이 크게 되어 있으니까 좀 당겨서 default를 잡아보자.
<script> var mapOptions = { center: new naver.maps.LatLng(37.3595704, 127.105399), zoom: 12 # 원래 10이었음 }; var map = new naver.maps.Map('map', mapOptions); </script>
지도가 또 필요하면 아까 코드를 복사해서 붙여넣으면 된다.
<!-- home.html --> <div id="map" style="width:50%;height:400px;"></div><br> <div id="map2" style="width:50%;height:400px;"></div> <script> var mapOptions = { center: new naver.maps.LatLng(37.3595704, 127.105399), zoom: 12 }; var mapOptions2 = { center: new naver.maps.LatLng(37.3595704, 127.105399), zoom: 12 }; var map = new naver.maps.Map('map', mapOptions); var map = new naver.maps.Map('map2', mapOptions2); </script>
다른 지도를 사용하니까 id 값을 바꿔주고,
그 해당 지도에 다른 위도 경도가 필요하니 script 에서도 변수를 바꿔주고,
이 정보를 띄워달라할 때 파라미터도 해당되는 변수들로 바꿔준다.
- 여기까지 하면!
<img width="706" alt="2019-03-08 5 03 57" src="https://user-images.githubusercontent.com/37871541/54015803-2ca64380-41c4-11e9-800c-6c73b0243983.png">
바꿔준 항목들이 모두 적용되었다는 것을 확인 할 수 있다!
그럼 위도와 경도는 어떻게 알아낼 수 있을까?
구글 검색 (...)
구글 맵스에 가면 url에 뜬다.
https://www.google.co.kr/maps/place/경희대학교+국제캠퍼스+Kyung+Hee+University+慶熙大學校/@37.2429501,127.0778994,17z/data=!3m1!4b1!4m5!3m4!1s0x357b44de2c7f3ddb:0x4c35e852f90f5520!8m2!3d37.2429501!4d127.0800934
이 url 에서,
```
@37.2429501,127.0778994,17z
```
이 앞의 두 값이 각각 위도 경도 이다.
그래서 이 값을 넣어주면!
<img width="744" alt="2019-03-08 5 10 10" src="https://user-images.githubusercontent.com/37871541/54016041-09c85f00-41c5-11e9-925d-179ea1d7e888.png">
잘 뜬다!
이번에는 다른 기능을 한번 사용해보자.
홈페이지에서 Example 탭을 누르면, 다른 기능들이 굉장히 많다.
<img width="1058" alt="2019-03-08 5 12 15" src="https://user-images.githubusercontent.com/37871541/54016143-54e27200-41c5-11e9-9691-abed2f9b2abf.png">
이중 마커나 정보옵션창을 가장 많이 사용하는데,
<img width="916" alt="2019-03-08 5 16 14" src="https://user-images.githubusercontent.com/37871541/54016366-fcf83b00-41c5-11e9-8e51-f0b9334b2763.png">
역시나 그냥 복사해서 붙여넣어주면 된다.
<script>
태그 밑에 붙여주자.<script> var HOME_PATH = window.HOME_PATH || '.'; var cityhall = new naver.maps.LatLng(37.5666805, 126.9784147), map = new naver.maps.Map('map', { center: cityhall.destinationPoint(0, 500), zoom: 10 }), marker = new naver.maps.Marker({ map: map, position: cityhall }); var contentString = [ '<div class="iw_inner">', ' <h3>서울특별시청</h3>', ' <p>서울특별시 중구 태평로1가 31 | 서울특별시 중구 세종대로 110 서울특별시청<br />', ' <img src="'+ HOME_PATH +'/img/example/hi-seoul.jpg" width="55" height="55" alt="서울시청" class="thumb" /><br />', ' 02-120 | 공공,사회기관 > 특별,광역시청<br />', ' <a href="http://www.seoul.go.kr" target="_blank">www.seoul.go.kr/</a>', ' </p>', '</div>' ].join(''); var infowindow = new naver.maps.InfoWindow({ content: contentString }); naver.maps.Event.addListener(marker, "click", function(e) { if (infowindow.getMap()) { infowindow.close(); } else { infowindow.open(map, marker); } }); infowindow.open(map, marker); </script>
기존의 script를 주석처리하고 붙여넣었다.
<img width="559" alt="2019-03-08 5 19 23" src="https://user-images.githubusercontent.com/37871541/54016448-5496a680-41c6-11e9-9c2c-b5f6186845f8.png">
지금은 서울 특별시로 되어있으니까 해당부분을 바꿔주자.
<!-- home.html --> <script> var contentString = [ '<div class="iw_inner">', ' <h3>원하는 장소 이름</h3>', ' <p>해당 주소 입력<br />', ' <img src="'+ HOME_PATH +'/img/example/hi-seoul.jpg" width="55" height="55" alt="서울시청" class="thumb" /><br />', ' 02-120 | 공공,사회기관 > 특별,광역시청<br />', ' <a href="http://www.seoul.go.kr" target="_blank">www.seoul.go.kr/</a>', ' </p>', '</div>' ].join(''); </script>
이 부분을 바꿔주면 정보창이 바뀌고,
아까 배운 부분을 바꾸면 위치가 바뀔 것!
가끔은 파이썬, html, css 이런거 말고도 필요하다.
계속 배워야 겠쬬..(
징글징글하다)코드를 정리해보자.
지금은 못하겠다,,완완0316