FE-9์ฃผ์ฐจ (0601)

์„ ๋ฏผยท2023๋…„ 6์›” 1์ผ

FrontEnd_TIL

๋ชฉ๋ก ๋ณด๊ธฐ
6/8

๐Ÿ“‚ ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ •

python -m venv venv_django_kakaomap


๐Ÿ“‚ ์žฅ๊ณ  ์„ค์น˜ํ•˜๊ธฐ

โ˜ ๏ธ ๋งฅ๋ถ์ธ ์‚ฌ๋žŒ ์ฐธ๊ณ  โ˜ ๏ธ

pip install django : ์žฅ๊ณ  ์„ค์น˜
pip install -r requirements.txt โžก๏ธ ์‹ค์ œ๋กœ๋Š” ๋ฐฑ์—”๋“œ์™€ ํ˜‘์—…ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฑธ ์ถ”์ฒœ


๐Ÿ“‚ DB ์ƒ์„ฑ

python manage.py makemigrations

python manage.py migrate 
python manage.py runserver

๐Ÿ“‚ ์นด์นด์˜ค๋งต ๋žœ๋”ฉํŽ˜์ด์ง€ ์ƒ์„ฑ

<body>
    <h1>๋ง๊ณ ๋น™์ˆ˜ ๋จน์œผ๋Ÿฌ ์‹ ๋ผํ˜ธํ…”</h1>
    <div id="map" style="width:500px;height:400px;"></div>

    <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=890eb7fd7b55736becc3388f215623f7"></script>
    <script>
        var container = document.getElementById('map');
        var options = {
            center: new kakao.maps.LatLng(37.555972, 127.005226),
            level: 2
        };

        var map = new kakao.maps.Map(container, options);
    </script>
</body>


๐Ÿ“‚ ์นด์นด์˜ค๋งต ๋งˆ์ปค์— ํด๋ฆญ ์ด๋ฒคํŠธ ๋“ฑ๋ก

<body>
    <h1>๋ง๊ณ ๋น™์ˆ˜ ๋จน์œผ๋Ÿฌ ์‹ ๋ผํ˜ธํ…”</h1>
    <div id="map" style="width:500px;height:400px;"></div>

    <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=890eb7fd7b55736becc3388f215623f7"></script>
    <script>
        var container = document.getElementById('map');
        var options = {
            center: new kakao.maps.LatLng(37.555972, 127.005226),
            level: 2
        };

        var map = new kakao.maps.Map(container, options);

        // ๋งˆ์ปค๋ฅผ ํ‘œ์‹œํ•  ์œ„์น˜์ž…๋‹ˆ๋‹ค 
        var position =  new kakao.maps.LatLng(37.555972, 127.005226);

        // ๋งˆ์ปค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
        var marker = new kakao.maps.Marker({
        position: position,
        clickable: true // ๋งˆ์ปค๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ง€๋„์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค
        });

        // ์•„๋ž˜ ์ฝ”๋“œ๋Š” ์œ„์˜ ๋งˆ์ปค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ์—์„œ clickable: true ์™€ ๊ฐ™์ด
        // ๋งˆ์ปค๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ์ง€๋„์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค
        // marker.setClickable(true);

        // ๋งˆ์ปค๋ฅผ ์ง€๋„์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
        marker.setMap(map);

        // ๋งˆ์ปค๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋งˆ์ปค ์œ„์— ํ‘œ์‹œํ•  ์ธํฌ์œˆ๋„์šฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
        var iwContent = '<div style="padding:5px;">๋จน๊ณ ์‹ถ๋‹ค</div>', // ์ธํฌ์œˆ๋„์šฐ์— ํ‘œ์ถœ๋  ๋‚ด์šฉ์œผ๋กœ HTML ๋ฌธ์ž์—ด์ด๋‚˜ document element๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค
            iwRemoveable = true; // removeable ์†์„ฑ์„ ture ๋กœ ์„ค์ •ํ•˜๋ฉด ์ธํฌ์œˆ๋„์šฐ๋ฅผ ๋‹ซ์„ ์ˆ˜ ์žˆ๋Š” x๋ฒ„ํŠผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค

        // ์ธํฌ์œˆ๋„์šฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
        var infowindow = new kakao.maps.InfoWindow({
            content : iwContent,
            removable : iwRemoveable
        });

        // ๋งˆ์ปค์— ํด๋ฆญ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค
        kakao.maps.event.addListener(marker, 'click', function() {
            // ๋งˆ์ปค ์œ„์— ์ธํฌ์œˆ๋„์šฐ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค
            infowindow.open(map, marker);  
    
        });
    </script>
</body>

profile
์•ˆ๋…•ํ•˜์„ธ์š”๊ฏ

0๊ฐœ์˜ ๋Œ“๊ธ€