Showing
2 changed files
with
142 additions
and
135 deletions
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html> | 2 | <html> |
3 | + | ||
3 | <head> | 4 | <head> |
4 | <meta charset="utf-8"> | 5 | <meta charset="utf-8"> |
5 | <title>geolocation으로 마커 표시하기</title> | 6 | <title>geolocation으로 마커 표시하기</title> |
6 | - | 7 | + |
7 | </head> | 8 | </head> |
9 | + | ||
8 | <body> | 10 | <body> |
9 | -<p style="margin-top:-12px"> | 11 | + <p style="margin-top:-12px"> |
10 | - <b>Chrome 브라우저는 https 환경에서만 geolocation을 지원합니다.</b> 참고해주세요. | 12 | + <b>Chrome 브라우저는 https 환경에서만 geolocation을 지원합니다.</b> 참고해주세요. |
11 | -</p> | 13 | + </p> |
12 | -<div id="map" style="width:500px;height:350px;"></div> | 14 | + <div id="map" style="width:500px;height:350px;"></div> |
13 | - | 15 | + |
14 | -<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=a3386042ab2e0550ea06d265855b452c">//kakao map api 주소 받아옴</script> | 16 | + <script type="text/javascript" |
15 | -<script> | 17 | + src="//dapi.kakao.com/v2/maps/sdk.js?appkey=a3386042ab2e0550ea06d265855b452c">//kakao map api 주소 받아옴</script> |
16 | -const near=require('study.js'); | 18 | + <script> |
17 | - | 19 | + |
18 | -var mapContainer = document.getElementById('map'), // 지도를 표시할 div | 20 | + const near = require('study.js'); |
19 | - mapOption = { | 21 | + |
20 | - center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표 | 22 | + var mapContainer = document.getElementById('map'), // 지도를 표시할 div |
21 | - level: 10 // 지도의 확대 레벨 | 23 | + mapOption = { |
22 | - }; | 24 | + center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표 |
23 | - | 25 | + level: 10 // 지도의 확대 레벨 |
24 | -var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 | 26 | + }; |
25 | - | 27 | + |
26 | -// HTML5의 geolocation으로 사용할 수 있는지 확인합니다 | 28 | + var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 |
27 | -if (navigator.geolocation) { | 29 | + |
28 | - | 30 | + // HTML5의 geolocation으로 사용할 수 있는지 확인합니다 |
29 | - // GeoLocation을 이용해서 접속 위치를 얻어옵니다 | 31 | + if (navigator.geolocation) { |
30 | - navigator.geolocation.getCurrentPosition(function(position) { | 32 | + |
31 | - | 33 | + // GeoLocation을 이용해서 접속 위치를 얻어옵니다 |
32 | - var lat = position.coords.latitude, // 위도 | 34 | + navigator.geolocation.getCurrentPosition(function (position) { |
33 | - lon = position.coords.longitude; // 경도 | 35 | + |
34 | - console.log(lat); | 36 | + var lat = position.coords.latitude, // 위도 |
35 | - console.log(lon); | 37 | + lon = position.coords.longitude; // 경도 |
36 | - var locPosition = new kakao.maps.LatLng(lat, lon), // 마커가 표시될 위치를 geolocation으로 얻어온 좌표로 생성합니다 | 38 | + console.log(lat); |
37 | - message = '<div style="padding:5px;">여기에 계신가요?!</div>'; // 인포윈도우에 표시될 내용입니다 | 39 | + console.log(lon); |
38 | - | 40 | + var locPosition = new kakao.maps.LatLng(lat, lon), // 마커가 표시될 위치를 geolocation으로 얻어온 좌표로 생성합니다 |
39 | - // 마커와 인포윈도우를 표시합니다 | 41 | + message = '<div style="padding:5px;">여기에 계신가요?!</div>'; // 인포윈도우에 표시될 내용입니다 |
40 | - displayMarker(locPosition, message); | 42 | + |
41 | - | 43 | + // 마커와 인포윈도우를 표시합니다 |
42 | - }); | 44 | + displayMarker(locPosition, message); |
43 | - | 45 | + |
44 | -} else { // HTML5의 GeoLocation을 사용할 수 없을때 마커 표시 위치와 인포윈도우 내용을 설정합니다 | 46 | + }); |
45 | - | 47 | + |
46 | - var locPosition = new kakao.maps.LatLng(33.450701, 126.570667), | 48 | + } else { // HTML5의 GeoLocation을 사용할 수 없을때 마커 표시 위치와 인포윈도우 내용을 설정합니다 |
47 | - message = 'geolocation을 사용할수 없어요..' | 49 | + |
48 | - | 50 | + var locPosition = new kakao.maps.LatLng(33.450701, 126.570667), |
49 | - displayMarker(locPosition, message); | 51 | + message = 'geolocation을 사용할수 없어요..' |
50 | -} | 52 | + |
51 | - | 53 | + displayMarker(locPosition, message); |
52 | - | 54 | + } |
53 | - | 55 | + |
54 | - | 56 | + |
55 | -displayShows(); | 57 | + |
56 | -function displayShows(){ | 58 | + |
57 | - var imageSrc = "https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/markerStar.png"; | 59 | + displayShows(); |
58 | - var near_list=near(lat,lon); | 60 | + function displayShows() { |
59 | - var positions=[]; | 61 | + var imageSrc = "https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/markerStar.png"; |
60 | - for(var i =0;i<near_list.length;i++){ | 62 | + var near_list = near(lat, lon); |
61 | - positions.push({title: id, | 63 | + var positions = []; |
62 | - lating: new kaka0.maps.Lating(near_list[i][1],near_list[i][2])}) | 64 | + for (var i = 0; i < near_list.length; i++) { |
63 | - } | 65 | + positions.push({ |
64 | -for (var i = 0; i < positions.length; i ++) { | 66 | + title: id, |
65 | - | 67 | + lating: new kakao.maps.Lating(near_list[i][1], near_list[i][2]) |
66 | - // 마커 이미지의 이미지 크기 입니다 | 68 | + }) |
67 | - var imageSize = new kakao.maps.Size(24, 35); | 69 | + } |
68 | - | 70 | + for (var i = 0; i < positions.length; i++) { |
69 | - // 마커 이미지를 생성합니다 | 71 | + |
70 | - var markerImage = new kakao.maps.MarkerImage(imageSrc, imageSize); | 72 | + // 마커 이미지의 이미지 크기 입니다 |
71 | - | 73 | + var imageSize = new kakao.maps.Size(24, 35); |
72 | - // 마커를 생성합니다 | 74 | + |
73 | - var marker = new kakao.maps.Marker({ | 75 | + // 마커 이미지를 생성합니다 |
74 | - map: map, // 마커를 표시할 지도 | 76 | + var markerImage = new kakao.maps.MarkerImage(imageSrc, imageSize); |
75 | - position: positions[i].latlng, // 마커를 표시할 위치 | 77 | + |
76 | - title : positions[i].title, // 마커의 타이틀, 마커에 마우스를 올리면 타이틀이 표시됩니다 | 78 | + // 마커를 생성합니다 |
77 | - image : markerImage // 마커 이미지 | 79 | + var marker = new kakao.maps.Marker({ |
78 | - }); | 80 | + map: map, // 마커를 표시할 지도 |
79 | - } | 81 | + position: positions[i].latlng, // 마커를 표시할 위치 |
80 | -} | 82 | + title: positions[i].title, // 마커의 타이틀, 마커에 마우스를 올리면 타이틀이 표시됩니다 |
81 | -// 지도에 마커와 인포윈도우를 표시하는 함수입니다 | 83 | + image: markerImage // 마커 이미지 |
82 | -function displayMarker(locPosition, message) { | 84 | + }); |
83 | - | 85 | + } |
84 | - // 마커를 생성합니다 | 86 | + } |
85 | - var marker = new kakao.maps.Marker({ | 87 | + // 지도에 마커와 인포윈도우를 표시하는 함수입니다 |
86 | - map: map, | 88 | + function displayMarker(locPosition, message) { |
87 | - position: locPosition | 89 | + |
88 | - }); | 90 | + // 마커를 생성합니다 |
89 | - | 91 | + var marker = new kakao.maps.Marker({ |
90 | - var iwContent = message, // 인포윈도우에 표시할 내용 | 92 | + map: map, |
91 | - iwRemoveable = true; | 93 | + position: locPosition |
92 | - | 94 | + }); |
93 | - // 인포윈도우를 생성합니다 | 95 | + |
94 | - var infowindow = new kakao.maps.InfoWindow({ | 96 | + var iwContent = message, // 인포윈도우에 표시할 내용 |
95 | - content : iwContent, | 97 | + iwRemoveable = true; |
96 | - removable : iwRemoveable | 98 | + |
97 | - }); | 99 | + // 인포윈도우를 생성합니다 |
98 | - | 100 | + var infowindow = new kakao.maps.InfoWindow({ |
99 | - // 인포윈도우를 마커위에 표시합니다 | 101 | + content: iwContent, |
100 | - infowindow.open(map, marker); | 102 | + removable: iwRemoveable |
101 | - | 103 | + }); |
102 | - // 지도 중심좌표를 접속위치로 변경합니다 | 104 | + |
103 | - map.setCenter(locPosition); | 105 | + // 인포윈도우를 마커위에 표시합니다 |
104 | -} | 106 | + infowindow.open(map, marker); |
105 | -</script> | 107 | + |
108 | + // 지도 중심좌표를 접속위치로 변경합니다 | ||
109 | + map.setCenter(locPosition); | ||
110 | + } | ||
111 | + </script> | ||
106 | </body> | 112 | </body> |
113 | + | ||
107 | </html> | 114 | </html> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | var mysql = require('mysql'); | 1 | var mysql = require('mysql'); |
2 | 2 | ||
3 | -module.exports={ | 3 | +module.exports = { |
4 | - nearShow: function(lat,lon){ | 4 | + nearShow: function (lat, lon) { |
5 | - var near_show_list=[]; | 5 | + var near_show_list = []; |
6 | - var connection = mysql.createConnection({ | 6 | + var connection = mysql.createConnection({ |
7 | - "host": "culturegallery.cm2bwcuyukrm.us-east-1.rds.amazonaws.com", | 7 | + "host": "culturegallery.cm2bwcuyukrm.us-east-1.rds.amazonaws.com", |
8 | - "user":"root", | 8 | + "user": "root", |
9 | - "password": "dldbwp1207", | 9 | + "password": "dldbwp1207", |
10 | - "port": "3306", | 10 | + "port": "3306", |
11 | - "database": "showdata" | 11 | + "database": "showdata" |
12 | - }); | 12 | + }); |
13 | - | ||
14 | - connection.connect(); | ||
15 | - var dataNum=0; | ||
16 | - connection.query('SELECT COUNT (*) AS cnt FROM SHOW_DATA',function(error,results,field){ | ||
17 | - if(error){ | ||
18 | - console.log(error); | ||
19 | - } | ||
20 | - console.log(results[0].cnt); | ||
21 | - dataNum=results[0].cnt; | ||
22 | - }); | ||
23 | 13 | ||
24 | - connection.query('SELECT id,latitude,longitude FROM SHOW_DATA',function(error,results,field){ | 14 | + connection.connect(); |
25 | - if(error){ | 15 | + var dataNum = 0; |
26 | - console.log(error); | 16 | + connection.query('SELECT COUNT (*) AS cnt FROM SHOW_DATA', function (error, results, field) { |
27 | - } | 17 | + if (error) { |
28 | - console.log([lat,lon]); | 18 | + console.log(error); |
29 | - for(var i=0;i<dataNum;i++){ | ||
30 | - var latgap=(lat-results[i].latitude)*110; | ||
31 | - var longap=(lon-results[i].longitude)*91; | ||
32 | - var cal=latgap*latgap+longap*longap; | ||
33 | - if(cal<=1600){ | ||
34 | - console.log(results[i].id); | ||
35 | - near_show_list.push([results[i].id,results[i].latitude,results[i].longitude]); | ||
36 | } | 19 | } |
37 | - } | 20 | + console.log(results[0].cnt); |
38 | - }); | 21 | + dataNum = results[0].cnt; |
39 | - | 22 | + }); |
40 | - connection.end(); | 23 | + |
41 | - return near_show_list; | 24 | + connection.query('SELECT id,latitude,longitude FROM SHOW_DATA', function (error, results, field) { |
25 | + if (error) { | ||
26 | + console.log(error); | ||
27 | + } | ||
28 | + console.log([lat, lon]); | ||
29 | + for (var i = 0; i < dataNum; i++) { | ||
30 | + var latgap = (lat - results[i].latitude) * 110; | ||
31 | + var longap = (lon - results[i].longitude) * 91; | ||
32 | + var cal = latgap * latgap + longap * longap; | ||
33 | + if (cal <= 1600) { | ||
34 | + console.log(results[i].id); | ||
35 | + near_show_list.push([results[i].id, results[i].latitude, results[i].longitude]); | ||
36 | + } | ||
37 | + } | ||
38 | + }); | ||
39 | + | ||
40 | + connection.end(); | ||
41 | + // return near_show_list; | ||
42 | } | 42 | } |
43 | } | 43 | } | ... | ... |
-
Please register or login to post a comment