728x90
반응형

주소로 장소 표시하기 - Kakao 지도 Web API

 

 

 

 

📝카카오지도 API를 활용하여 주소로 장소 표시하기

 

위 링크로 접속하고 [Javascript + HTML]을 누르면 카카오지도 API 활용 코드를 확인할 수 있습니다.

 

 

 

 

 

 

AddressController.java

package com.practice.fjdkslvn.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class AddressController {
	
	@GetMapping("/address") 
	public String address() {
		System.out.println("카카오 API 테스트");
		
		return "address";
	}
}

address.jsp를 포워딩하는 코드를 작성합니다.

 

 

 

 

 

 

 

 

address.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>주소로 장소 표시하기</title>
    
</head>
<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')">
            혹시 주소 결과가 잘못 나오는 경우에는 여기에 제보해주세요.
        </a>
    </em>
</p>
<div id="map" style="width:100%;height:350px;"></div>

<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=당신의 키값을 넣어주세요&libraries=services"></script>
<script>
var mapContainer = document.getElementById('map'), // 지도를 표시할 div 
    mapOption = {
        center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
        level: 3 // 지도의 확대 레벨
    };  

// 지도를 생성합니다    
var map = new kakao.maps.Map(mapContainer, mapOption); 

// 주소-좌표 변환 객체를 생성합니다
var geocoder = new kakao.maps.services.Geocoder();

// 주소로 좌표를 검색합니다
geocoder.addressSearch('서울 송파구 올림픽로 240', function(result, status) {

    // 정상적으로 검색이 완료됐으면 
     if (status === kakao.maps.services.Status.OK) {

        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);

        // 결과값으로 받은 위치를 마커로 표시합니다
        var marker = new kakao.maps.Marker({
            map: map,
            position: coords
        });

        // 인포윈도우로 장소에 대한 설명을 표시합니다
        var infowindow = new kakao.maps.InfoWindow({
            content: '<div style="width:150px;text-align:center;padding:6px 0;">롯데월드</div>'
        });
        infowindow.open(map, marker);

        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
        map.setCenter(coords);
    } 
});    
</script>
</body>
</html>

포워딩 되는 jsp는 처음 걸려있던 링크의 코드를 복붙하고 자신의 javascript키값을 넣은 후, 원하는 주소를 입력하여 활용하면 됩니다.

 

저는 롯데월드를 넣어 실행해보았습니다.

 

 

 

 

 

 

저는 카카오지도 API를 활용하기 위한 플랫폼 설정을 localhost로 해두었습니다. 그래서 localhost 아래에 있는 주소는 모두 정상적으로 API가 적용되도록 되어있습니다. 좌표를 직접 구하지 않고 도로명주소와 지번주소를 통해 쉽게 좌표를 찍을 수 있었습니다.

 

 

 

 

 

[플랫폼 설정 포스팅]

카카오 지도 API 사용을 위한 키 발급 받기 (tistory.com)

 

카카오 지도 API 사용을 위한 키 발급 받기

Kakao Developers Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 🔑 카카오 API를..

fjdkslvn.tistory.com

 

728x90
반응형
728x90
반응형

Kakao Developers

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

🔑 카카오 API를 위한 키 발급 받기

 

위 링크로 들어가서 카카오 계정으로 로그인을 해줍니다.

 

 

 

 

 

내 애플리케이션으로 들어와서 '애플리케이션 추가하기'를 누릅니다.

 

 

 

 

 

 

앱 이름을 본인이 알아보기 쉬운것으로 설정하고, 사업자명은 아무거나 적어도 상관없습니다.

 

 

 

 

 

 

 

애플리케이션을 추가했으면 플랫폼을 설정해줍니다. (제 키는 가려놨습니다)

 

 

 

 

 

 

원하는 플랫폼을 선택하고 플랫폼을 등록할 수 있도록 작업을 진행합니다.

 

Web의 경우에는 사이트 도메인을 입력해야합니다. 저는 localhost로 두었습니다.

 

 

 

 

 

 

 

 

 

사전 작업은 끝났습니다. 다음 포스팅에서는 간단하게 html에 지도를 띄워보겠습니다.

728x90
반응형
728x90
반응형

1. 영화진흥위원회 사이트에 들어가서 회원가입을 한다.

 

영화진흥위원회: https://www.kobis.or.kr/kobisopenapi/homepg/main/main.do

 

 

 

 

2. 키 발급/관리로 들어가서 키를 발급받는다.

키 발급받기를 눌러줍니다.

 

사용 목적과 관리명만 적으면 되는데, 사용 목적은 공부용 정도로 적어두셔도 괜찮고 관리명은 원하는대로 적어주시면 됩니다.

 

 

 

 

3. 키 발급/관리에서 발급키를 확인한다.

 

 

 

 

4. OPEN API에서 제공서비스를 누르고 원하는 정보의 페이지로 이동한다.

* 일별 박스오피스로 실습을 해보겠습니다.

 

 

5. 아래로 내려서 응답 예시를 확인하고 예시를 긁어서 웹사이트에서 열어본다.

JSON 응답 예시를 활용하겠습니다.

잘 보시면 두번째 줄에 key와 targetDt가 있는 모습을 볼 수 있습니다.

 

key와 targetDt는 요청 인터페이스에서 확인할 수 있습니다. 원하는대로 사용하시면 됩니다.

ex) 영화를 5개만 띄우고 싶다면 &itemPerPage=5을 추가합니다.

 

 

*20210510일자 일별 박스오피스 and 5개만 출력하도록 지정한 것

http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt=20210510&itemPerPage=5

 

 

-결과 모습-

 

 

6. 파이썬으로 크롤링한다.

 

import requests
import json

url = 'http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt=20210511'
res = requests.get(url)
text= res.text

d = json.loads(text)
print(d)

혹시 requests, json 모듈이 설치되어있지 않다면 이 글을 확인하시기 바랍니다.

https://fjdkslvn.tistory.com/28

 

 

 

웹페이지에서 봤던 결과를 파이썬으로 확인할 수 있습니다.

 

boxOfficeResult 안에 dailyBoxOfficeList가 있는것을 확인할 수 있고, 각각의 dailyBoxOfficeList들이 영화 한편씩을 의미하는 것을 볼 수 있습니다.

 

 

7. 이것을 활용하여 원하는 정보만 csv 형식으로 뽑아낸다.

 

응답 구조에 있는 변수들을 잘 활용하여 코드를 작성하면 됩니다.

 

 

import requests
import json
import pandas as pd

url = 'http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=6e927f984e0745787469e2452351991a&targetDt=20210511'
res = requests.get(url)
text= res.text

d = json.loads(text)

movie_list = []

for b in d['boxOfficeResult']['dailyBoxOfficeList']:
    movie_list.append([b['rank'],b['movieNm'],b['audiCnt']])


data = pd.DataFrame(movie_list)
data.to_csv("movie_list.txt", mode='w', encoding='utf-8', index=False)

boxOfficeResult 안에 dailyBoxOfficeList의 영화 정보에서 원하는 값을 뽑아서 movie_list 배열에 append로 추가하는 것 입니다.

 

현재 입력값은 rank(영화 등수), movieNm(영화이름 국문), audiCnt(관객 수) 입니다.

 

**Python 복수변수 입력시 x.append([a,b,c]) 형태로 작성해야함**

 

 

- csv 도출 결과 -

728x90
반응형

+ Recent posts