HTML5์์ ์ ๊ณตํ๋ geolocation API๋ฅผ ํตํด ์์น ๊ฒ์์ ํ์ฉํ๋ฉด ํ์ฌ ์ขํ๋ฅผ ์ป์ด๋ธ๋ค.
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
let lon = position.coords.latitude; //์๋
let lat = position.coords.longitude; //๊ฒฝ๋
toAddress(lon,lat);
}, function(error) {
console.error(error);
}, {
enableHighAccuracy: false,
maximumAge: 0,
timeout: Infinity
});
}
}
์ฌ๊ธฐ์ ์ป์ด๋ธ ์ขํ๋ฅผ ์นด์นด์ค API๋ฅผ ์ด์ฉํด ์,๋ ๋จ์์ ์์น๋ฅผ ๋ฝ์๋ด๊ณ ์ถ์๋ค.
https://developers.kakao.com/docs/latest/ko/local/dev-guide
์นด์นด์ค ๋๋ฒจ๋กํผ ์ฌ์ดํธ์์ ์ขํ๋ก ํ์ ๊ตฌ์ญ์ ๋ณด ๋ฐ๊ธฐ ๋ถ๋ถ์ ์ฐธ๊ณ ํด์ผ ํ๋ค.
์ ์ฉํ ๋์ ์ฝ๋ (๋ถ์กฑํจ์ด ๋ง๋ค..)
function toAddress(lon,lat){
console.log(`lon: ${lon}, lat: ${lat}`);
$.ajax({
url : `https://dapi.kakao.com/v2/local/geo/coord2address.json?x=${lat}&y=${lon}&input_coord=WGS84`,
type : 'GET',
headers : {
'Authorization' : '๋์ ์นด์นด์ค API ์ฝ๋'
},
success : function(result) {
let totatlCount = result.meta.total_count; //์ด ๋ฌธ์ ์
if (totatlCount > 0) {
if (result.documents[0].road_address === null) {
addressName = result.documents[0].address.region_1depth_name; //์ง์ญ(์) ์ด๋ฆ
} else {
addressName = result.documents[0].road_address.region_1depth_name;
}
}
addr = addressName;
},
error : function(e) {
console.log(e);
}
});
}
์ค์ํ ๊ฒ์ url์์ ์๋, ๊ฒฝ๋ ์์ผ๋ก ์ค๋ ๊ฒ์ด ์๋๋ผ ๊ฒฝ๋, ์๋ ์์ผ๋ก ์ค๋ ๊ฒ์ด๋ค!
https://dapi.kakao.com/v2/local/geo/coord2address.json?x=${lat}&y=${lon}&input_coord=WGS84
์ด๊ฒ ๋๋ฌธ์ ๋ช์๊ฐ์ ๋ ์ฝ์งํ๋ค. ๐๐
html ์์์ ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด์ฃผ์ด ํด๋น ํจ์๊ฐ ์คํ๋ ์ ์๋๋ก ํ๋ค.
๐์ฐธ๊ณ
https://developer.mozilla.org/ko/docs/Web/API/Geolocation_API/Using_the_Geolocation_API
** ์ฃผ๋์ด๋ผ ๋ถ์กฑํจ์ด ๋ง์ต๋๋ค. ์๋ชป๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ง์ ์ ๊ฐ์ฌํ ๋ฐ๊ฒ ์ต๋๋ค!
'๐ Retrospect > Personal Projects' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript+SCSS] ๋ธ๋ผ์ฐ์ ํ์ ํ์ธ, ์ฌํ๋ฆฌ์์๋ง ์ ์ฉ๋๋ SCSS (0) | 2022.06.27 |
---|---|
[JSTL] ftm ํ๊ทธ๋ก ๊ธ์ก ์ผํ ํ์ (0) | 2021.09.27 |
[JS] URL ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ๊ธฐ (0) | 2021.09.15 |
[java] ์ค์๊ฐ ๋ฌธ์ (0) | 2021.09.08 |
[JS] ํ์ฌ ํ์ด์ง ํจ์ค ์์๋ด๊ธฐ (0) | 2021.09.08 |
Comment