네이버 지도 API를 사용하였을 때 현재 내 위치를 확인하여 지도를 현재 위치 중심으로 두는 것은 완료하였다. (천 만 건까지는 무료)
<!DOCTYPE html>
<!-- 네이버 지도 API 예제 사용 -->
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<title>간단한 지도 표시하기</title>
<script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=zi6w8887xq"></script>
</head>
<body>
<div id="map" style="width:100%;height:600px;"></div>
<script>
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
function success(pos) {
var crd = pos.coords;
};
function error(err) {
console.warn('ERROR(' + err.code + '): ' + err.message);
};
// 동기화를 위해 적용, 비동기일 시 지도가 먼저 나오고 현재 위치가 반영됨.
function getCurrentPosition() {
return new Promise(function (resolve, reject) {
navigator.geolocation.getCurrentPosition(resolve, reject)
});
};
function createMap(point) {
var mapOptions = {
center: new naver.maps.LatLng(point.coords.latitude, point.coords.longitude),
zoom: 12
};
console.log(point.coords)
return new naver.maps.Map('map', mapOptions);
}
getCurrentPosition().then(point => createMap(point))
</script>
</body>
</html>
https://rumor1993.tistory.com/77
네이버 지도 현재 위치 가져오기
그런데 문제는 검색이었다. 지역 검색에서 JSON으로 가져온 데이터를 따로 꺼내서 읽어오지 못하였다. (지역 검색 하루 천 건까지 무료)
<!-- 네이버 블로그 검색 API 예제 사용 -->
public MapResponseDto search() {
String clientId = "YOUR_CLIENT_ID"; //애플리케이션 클라이언트 아이디
String clientSecret = "YOUR_CLIENT_PASSWORD"; //애플리케이션 클라이언트 시크릿
Integer start = 1;
Integer end = 5;
Integer display = 5; // api상 한 번에 보여줄 수 있는 데이터 수는 최대 5개
String text = null;
try {
text = URLEncoder.encode("헬스장", "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("검색어 인코딩 실패", e);
}
ArrayList<String> name = new ArrayList<>();
for (int start_idx = start; start_idx <= end; start_idx += display) {
String apiURL = "https://openapi.naver.com/v1/search/local.json?query=" + text // JSON 결과
+ "&display=" + display + "&total=comment";
//String apiURL = "https://openapi.naver.com/v1/search/blog.xml?query="+ text; // XML 결과
Map<String, String> requestHeaders = new HashMap<>();
requestHeaders.put("X-Naver-Client-Id", clientId);
requestHeaders.put("X-Naver-Client-Secret", clientSecret);
String responseBody = get(apiURL, requestHeaders);
System.out.println(responseBody);
JSONParser jsonParser = new JSONParser(responseBody);
JSONPObject jsonpObject = new JSONPObject(jsonParser);
jsonpObject.getValue("title");
JsonArrayFormatVisitor
}
return null;
여러가지로 해결하지 못한 부분이 많다.
일단 이 부분은 놔두고 카카오에 더 간편한 방법이 있는 것 같아 해보기로 한다.