Showing
6 changed files
with
172 additions
and
26 deletions
... | @@ -4,9 +4,8 @@ var path = require('path'); | ... | @@ -4,9 +4,8 @@ var path = require('path'); |
4 | var cookieParser = require('cookie-parser'); | 4 | var cookieParser = require('cookie-parser'); |
5 | var logger = require('morgan'); | 5 | var logger = require('morgan'); |
6 | 6 | ||
7 | -var indexRouter = require('./routes/index'); | 7 | +var mainRouter = require('./routes/main'); |
8 | -var usersRouter = require('./routes/users'); | 8 | +var searchRouter = require('./routes/search') |
9 | - | ||
10 | var app = express(); | 9 | var app = express(); |
11 | 10 | ||
12 | // view engine setup | 11 | // view engine setup |
... | @@ -19,8 +18,8 @@ app.use(express.urlencoded({ extended: false })); | ... | @@ -19,8 +18,8 @@ app.use(express.urlencoded({ extended: false })); |
19 | app.use(cookieParser()); | 18 | app.use(cookieParser()); |
20 | app.use(express.static(path.join(__dirname, 'public'))); | 19 | app.use(express.static(path.join(__dirname, 'public'))); |
21 | 20 | ||
22 | -app.use('/', indexRouter); | 21 | +app.use('/', mainRouter); |
23 | -app.use('/users', usersRouter); | 22 | +app.use('/search', searchRouter); |
24 | 23 | ||
25 | // catch 404 and forward to error handler | 24 | // catch 404 and forward to error handler |
26 | app.use(function(req, res, next) { | 25 | app.use(function(req, res, next) { | ... | ... |
... | @@ -3,7 +3,7 @@ var router = express.Router(); | ... | @@ -3,7 +3,7 @@ var router = express.Router(); |
3 | 3 | ||
4 | /* GET home page. */ | 4 | /* GET home page. */ |
5 | router.get('/', function(req, res, next) { | 5 | router.get('/', function(req, res, next) { |
6 | - res.render('index', { title: 'Express' }); | 6 | + res.render('search', { title: 'Express' }); |
7 | }); | 7 | }); |
8 | 8 | ||
9 | module.exports = router; | 9 | module.exports = router; | ... | ... |
routes/users.js
deleted
100644 → 0
views/index.ejs
deleted
100644 → 0
views/main.ejs
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>Pass-Path</title> | ||
6 | + | ||
7 | +</head> | ||
8 | +<body> | ||
9 | +<div id="map" style="width:100%;height:350px;"></div> | ||
10 | +<p><em>출발지와 도착지를 설정해주세요!</em></p> | ||
11 | + | ||
12 | +<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=비밀"></script> | ||
13 | +<script> | ||
14 | +var mapContainer = document.getElementById('map'), // 지도를 표시할 div | ||
15 | + mapOption = { | ||
16 | + center: new kakao.maps.LatLng(33.450701, 126.570667), | ||
17 | + level: 3 // 지도의 확대 레벨 | ||
18 | + }; | ||
19 | + | ||
20 | +var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 | ||
21 | + | ||
22 | +var startSrc = 'https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/red_b.png', // 출발 마커이미지의 주소입니다 | ||
23 | + startSize = new kakao.maps.Size(50, 45), // 출발 마커이미지의 크기입니다 | ||
24 | + startOption = { | ||
25 | + offset: new kakao.maps.Point(15, 43) // 출발 마커이미지에서 마커의 좌표에 일치시킬 좌표를 설정합니다 (기본값은 이미지의 가운데 아래입니다) | ||
26 | + }; | ||
27 | + | ||
28 | +// 출발 마커 이미지를 생성합니다 | ||
29 | +var startImage = new kakao.maps.MarkerImage(startSrc, startSize, startOption); | ||
30 | + | ||
31 | +var startDragSrc = 'https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/red_drag.png', // 출발 마커의 드래그 이미지 주소입니다 | ||
32 | + startDragSize = new kakao.maps.Size(50, 64), // 출발 마커의 드래그 이미지 크기입니다 | ||
33 | + startDragOption = { | ||
34 | + offset: new kakao.maps.Point(15, 54) // 출발 마커의 드래그 이미지에서 마커의 좌표에 일치시킬 좌표를 설정합니다 (기본값은 이미지의 가운데 아래입니다) | ||
35 | + }; | ||
36 | + | ||
37 | +// 출발 마커의 드래그 이미지를 생성합니다 | ||
38 | +var startDragImage = new kakao.maps.MarkerImage(startDragSrc, startDragSize, startDragOption); | ||
39 | + | ||
40 | +// 출발 마커가 표시될 위치입니다 | ||
41 | +var startPosition = new kakao.maps.LatLng(33.450701, 126.570667); | ||
42 | + | ||
43 | +// 출발 마커를 생성합니다 | ||
44 | +var startMarker = new kakao.maps.Marker({ | ||
45 | + map: map, // 출발 마커가 지도 위에 표시되도록 설정합니다 | ||
46 | + position: startPosition, | ||
47 | + draggable: true, // 출발 마커가 드래그 가능하도록 설정합니다 | ||
48 | + image: startImage // 출발 마커이미지를 설정합니다 | ||
49 | +}); | ||
50 | + | ||
51 | +// 출발 마커에 dragstart 이벤트를 등록합니다 | ||
52 | +kakao.maps.event.addListener(startMarker, 'dragstart', function() { | ||
53 | + // 출발 마커의 드래그가 시작될 때 마커 이미지를 변경합니다 | ||
54 | + startMarker.setImage(startDragImage); | ||
55 | +}); | ||
56 | + | ||
57 | +// 출발 마커에 dragend 이벤트를 등록합니다 | ||
58 | +kakao.maps.event.addListener(startMarker, 'dragend', function() { | ||
59 | + // 출발 마커의 드래그가 종료될 때 마커 이미지를 원래 이미지로 변경합니다 | ||
60 | + startMarker.setImage(startImage); | ||
61 | +}); | ||
62 | + | ||
63 | +var arriveSrc = 'https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/blue_b.png', // 도착 마커이미지 주소입니다 | ||
64 | +arriveSize = new kakao.maps.Size(50, 45), // 도착 마커이미지의 크기입니다 | ||
65 | +arriveOption = { | ||
66 | + offset: new kakao.maps.Point(15, 43) // 도착 마커이미지에서 마커의 좌표에 일치시킬 좌표를 설정합니다 (기본값은 이미지의 가운데 아래입니다) | ||
67 | +}; | ||
68 | + | ||
69 | +// 도착 마커 이미지를 생성합니다 | ||
70 | +var arriveImage = new kakao.maps.MarkerImage(arriveSrc, arriveSize, arriveOption); | ||
71 | + | ||
72 | +var arriveDragSrc = 'https://t1.daumcdn.net/localimg/localimages/07/mapapidoc/blue_drag.png', // 도착 마커의 드래그 이미지 주소입니다 | ||
73 | + arriveDragSize = new kakao.maps.Size(50, 64), // 도착 마커의 드래그 이미지 크기입니다 | ||
74 | + arriveDragOption = { | ||
75 | + offset: new kakao.maps.Point(15, 54) // 도착 마커의 드래그 이미지에서 마커의 좌표에 일치시킬 좌표를 설정합니다 (기본값은 이미지의 가운데 아래입니다) | ||
76 | + }; | ||
77 | + | ||
78 | +// 도착 마커의 드래그 이미지를 생성합니다 | ||
79 | +var arriveDragImage = new kakao.maps.MarkerImage(arriveDragSrc, arriveDragSize, arriveDragOption); | ||
80 | + | ||
81 | +// 도착 마커가 표시될 위치입니다 | ||
82 | +var arrivePosition = new kakao.maps.LatLng(33.450701, 126.572667); | ||
83 | + | ||
84 | +// 도착 마커를 생성합니다 | ||
85 | +var arriveMarker = new kakao.maps.Marker({ | ||
86 | + map: map, // 도착 마커가 지도 위에 표시되도록 설정합니다 | ||
87 | + position: arrivePosition, | ||
88 | + draggable: true, // 도착 마커가 드래그 가능하도록 설정합니다 | ||
89 | + image: arriveImage // 도착 마커이미지를 설정합니다 | ||
90 | +}); | ||
91 | + | ||
92 | +// 도착 마커에 dragstart 이벤트를 등록합니다 | ||
93 | +kakao.maps.event.addListener(arriveMarker, 'dragstart', function() { | ||
94 | + // 도착 마커의 드래그가 시작될 때 마커 이미지를 변경합니다 | ||
95 | + arriveMarker.setImage(arriveDragImage); | ||
96 | +}); | ||
97 | + | ||
98 | +// 도착 마커에 dragend 이벤트를 등록합니다 | ||
99 | +kakao.maps.event.addListener(arriveMarker, 'dragend', function() { | ||
100 | + // 도착 마커의 드래그가 종료될 때 마커 이미지를 원래 이미지로 변경합니다 | ||
101 | + arriveMarker.setImage(arriveImage); | ||
102 | +}); | ||
103 | +</script> | ||
104 | +</body> | ||
105 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
views/search.ejs
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>카테고리로 장소 검색하기</title> | ||
6 | + | ||
7 | +</head> | ||
8 | +<body> | ||
9 | +<p style="margin-top:-12px"> | ||
10 | + <em class="link"> | ||
11 | + <a href="/web/documentation/#CategoryCode" target="_blank">카테고리 코드목록을 보시려면 여기를 클릭하세요!</a> | ||
12 | + </em> | ||
13 | +</p> | ||
14 | +<div id="map" style="width:100%;height:350px;"></div> | ||
15 | + | ||
16 | +<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=비밀&libraries=services"></script> | ||
17 | +<script> | ||
18 | +// 마커를 클릭하면 장소명을 표출할 인포윈도우 입니다 | ||
19 | +var infowindow = new kakao.maps.InfoWindow({zIndex:1}); | ||
20 | + | ||
21 | +var mapContainer = document.getElementById('map'), // 지도를 표시할 div | ||
22 | + mapOption = { | ||
23 | + center: new kakao.maps.LatLng(37.566826, 126.9786567), // 지도의 중심좌표 | ||
24 | + level: 3 // 지도의 확대 레벨 | ||
25 | + }; | ||
26 | + | ||
27 | +// 지도를 생성합니다 | ||
28 | +var map = new kakao.maps.Map(mapContainer, mapOption); | ||
29 | + | ||
30 | +// 장소 검색 객체를 생성합니다 | ||
31 | +var ps = new kakao.maps.services.Places(map); | ||
32 | + | ||
33 | +// 카테고리로 은행을 검색합니다 | ||
34 | +ps.categorySearch('BK9', placesSearchCB, {useMapBounds:true}); | ||
35 | + | ||
36 | +// 키워드 검색 완료 시 호출되는 콜백함수 입니다 | ||
37 | +function placesSearchCB (data, status, pagination) { | ||
38 | + if (status === kakao.maps.services.Status.OK) { | ||
39 | + for (var i=0; i<data.length; i++) { | ||
40 | + displayMarker(data[i]); | ||
41 | + } | ||
42 | + } | ||
43 | +} | ||
44 | + | ||
45 | +// 지도에 마커를 표시하는 함수입니다 | ||
46 | +function displayMarker(place) { | ||
47 | + // 마커를 생성하고 지도에 표시합니다 | ||
48 | + var marker = new kakao.maps.Marker({ | ||
49 | + map: map, | ||
50 | + position: new kakao.maps.LatLng(place.y, place.x) | ||
51 | + }); | ||
52 | + | ||
53 | + // 마커에 클릭이벤트를 등록합니다 | ||
54 | + kakao.maps.event.addListener(marker, 'click', function() { | ||
55 | + // 마커를 클릭하면 장소명이 인포윈도우에 표출됩니다 | ||
56 | + infowindow.setContent('<div style="padding:5px;font-size:12px;">' + place.place_name + '</div>'); | ||
57 | + infowindow.open(map, marker); | ||
58 | + }); | ||
59 | +} | ||
60 | +</script> | ||
61 | +</body> | ||
62 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment