ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Naver Maps openAPI (2) - Geocoding ,Static Map API
    미니 2023. 6. 23. 02:28

    Naver Maps API를 사용하기 위해서는 java에서 제공하는 HttpURLConnection API를 사용해야한다.

    위 API

     

    //정리용

     

    1. Geocoding API를 이용하여 위도와 경도 추출 

     

    Geocoding API는 주소를 입력하면, 해당 주소의 지번,위도,경도 등등을 json으로 return해준다.

    String apiurl = "https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode?query=";
    		String client_id = "";
    		String client_secret="";
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		try {
    			System.out.print("주소를 입력하세요:");
    			String input = br.readLine();
    			String addr = URLEncoder.encode(input, "UTF-8");
    			String reqUrl=apiurl+addr;
    			
    			//작성한 URL을 실제 URL로 바꾸어줌 
    			URL url = new URL(reqUrl);
    			//실제 URL로 요청을 보내고 응답을 받는 API
    			HttpURLConnection conn = (HttpURLConnection)url.openConnection();
    			//서버에 request하면서 보내는 설정임
    			conn.setRequestMethod("GET");
    			conn.setRequestProperty("X-NCP-APIGW-API-KEY-ID", client_id);
    			conn.setRequestProperty("X-NCP-APIGW-API-KEY", client_secret);
    			int responseCode = conn.getResponseCode();
    			
    			BufferedReader brs;
    			if(responseCode == 200) {
    				//성공시 conn에서 json읽어옴
    				brs = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
    				
    			}else {
    				brs = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
    			}
    			
    			//json 한 줄씩 읽어서 저장
    			String line;
    			StringBuilder sbr = new StringBuilder();
    			String x=""; String y=""; String z="";
    			while((line = brs.readLine()) != null) {
    				sbr.append(line);
    			}
    			brs.close();
    			
    			JSONTokener token = new JSONTokener(sbr.toString());
    			//JSONTokener tokens = new JSONTokener(new InputStreamReader(conn.getInputStream(),"UTF-8"));
    			JSONObject object = new JSONObject(token);
    			JSONArray arr = object.getJSONArray("addresses");
    			
    			for(int i=0; i<arr.length();i++) {
    				JSONObject temp = (JSONObject)arr.get(i);
    				
    				System.out.println("address:" + temp.get("roadAddress"));
    				System.out.println("지번:" + temp.get("jibunAddress"));
    				System.out.println("경도:" + temp.get("x"));
    				System.out.println("위도:" + temp.get("y"));
    				x=(String)temp.get("x");
    				y=(String)temp.get("y");
    				z=(String)temp.get("roadAddress");
    			
    			}
    			map_service(x,y,z);
    		}catch(Exception e) {
    			e.printStackTrace();
    		}
    
    	}

     

    '미니' 카테고리의 다른 글

    Naver Maps openAPI (1) -JSON  (0) 2023.06.23
    자바 - BattleShip Game  (0) 2023.05.14
    자바 콘솔 -bulls and cows 게임  (0) 2023.03.10
    자바 콘솔 -커피머신  (0) 2023.03.09
Designed by Tistory.