- Try-with-resources are not supported at language level 5 에러
try구문이 들어간 코드를 쓰고 실행하려는데 이 에러가 발생하였다.
이 에러는 intellij에서 컴파일할때 사용하는 jdk의 버전이 낮아서 생기는 오류라고 한다.
File -> Project Structure...' 의 Modules에 가서 language level을 8이상으로 설정해주고 다시 실행해보니 잘 실행되었다.
- javascript geolocation.getCurrentPosition API를 써서 현재좌표를 html에 나타내야 하는데 javascript의 비동기적 실행특성 떄문에 API 응답이 오기도 전에 html태그 value를 수정하려고함
이를 해결하기 위해 async wait 함수로 구현해서 API 응답이 올때까지 기다리고 나서 lat lnt 변수에 응답결과를 할당해 주었고, 이를 input 태그 value에 반영을 해줌.
const locBtn = document.querySelector("#location");
function fetchLocation(){
async function getCurrentLocation() {
return new Promise((resolve, reject) => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(resolve, reject);
} else {
alert("위치를 불러올 수 없습니다.");
}
});
}
async function main() {
try {
const position = await getCurrentLocation();
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
document.getElementById("lat").value = latitude;
document.getElementById("lnt").value = longitude;
// $("#lat").val(latitude);
// $("#lnt").val(longitude);
} catch (error) {
console.log(error);
}
}
main();
}
locBtn.addEventListener('click',fetchLocation);
- input 태그 value에 한글을 적고 form으로 submit하면 request.getParameter()로 받았을때 한글이 깨져서 받아졌다.
찾아보니 이는 한글값이 인코딩되지 못해서 생기는 현상이였고
getParameter()로 받기 전에 request.setCharacterEncoding("UTF-8"); 을 해주니 해결되었다.
- 서울시 열린데이터 광장에서 서울시 공공 wifi 서비스 위치정보를 가져오는데, 위도와 경도값이 뒤바뀐 채로 오는 데이터들이 많이 존재했다. 이 때문에 나의 위치와 가까운 wifi들을 계산하는데 오류가 생겼다.
이를 해결하기 위해 우리나라 위도 경도 범위를 찾아보았고, 우리나라는 위도가 약 33.12 ~ 38.58도 사이이고 경도가 125.11 ~ 131.86도 이므로 만약 위도값이 100이상으로 오는 데이터가 있으면 위도와 경도 데이터를 바꿔서 DB에 저장해 주었다. 이렇게 해주니 나와 가까운 위치의 와이파이 정보가 정상적으로 계산되서 나오는 것을 확인했다.