๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์์ ์์น ์ ๋ณด๋ฅผ ๋ฐ์์ค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
Geolocation API๋ฅผ ํตํด์ ์ฌ์ฉ์์ ๋์๋ฅผ ๋ฐ์ ์์น ์ ๋ณด์ ์ ๊ทผํ ์ ์๋ค.
์ด๋ฅผํตํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์ ์์น ์ ๋ณด๋ฅผ ๋ฐ์์ ์ง๋์ ํ์ํ๊ฑฐ๋, ์ฌ์ฉ์์ ์์น ๊ธฐ๋ฐ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค.
Geolocation API๋ navigator.geolocation ์ ํตํด ์ ๊ทผํ ์ ์๋ค.
if ("geolocation" in navigator) {
/* ์์น์ ๋ณด ์ฌ์ฉ ๊ฐ๋ฅ */
} else {
/* ์์น์ ๋ณด ์ฌ์ฉ ๋ถ๊ฐ๋ฅ */
}
๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์์๊ฒ ์์น ์ ๋ณด ๊ถํ์ ์์ฒญํ๊ณ , ์ฌ์ฉ์๊ฐ ๋์ํ๋ฉด ํ์ฌ ์ฅ์น์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์ ์ ๋ฐฉ๋ฒ(GPS๋ฑ)์ ํตํด ์์น ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.
- Geolocation.getCurrentPosition() : ์ฅ์น์ ํ์ฌ ์์น๋ฅผ ๊ฐ์ ธ์ด.
- Geolocation.watchPosition(): ์ฅ์น์ ์์น๊ฐ ๋ฐ๋ ๋๋ง๋ค, ์๋์ผ๋ก ์๋ก์ด ์์น๋ฅผ ์ฌ์ฉํด ํธ์ถํ ์ฒ๋ฆฌ๊ธฐ ํจ์๋ฅผ ๋ฑ๋ก.
์ด ๋๊ฐ์ ๋ฉ์๋๋ 3๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋๋ค.
- ์ฑ๊ณต ์ฝ๋ฐฑ (ํ์) : ์์น ์ ๋ณด๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๊ฐ์ ธ์จ ๊ฒฝ์ฐ, ์์น ๋ฐ์ดํฐ๋ฅผ ๋ด์ GeolocationPosition ๊ฐ์ฒด๋ฅผ ์ ์ผํ ๋งค๊ฐ๋ณ์๋ก ํ์ฌ ์ฝ๋ฐฑ์ ํธ์ถํ๋ค.
- ์คํจ ์ฝ๋ฐฑ (์ ํ์ ) : ์์น ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํ ๊ฒฝ์ฐ, ์คํจ ์์ธ์ ๋ด์ GeolocationPositionError ๊ฐ์ฒด๋ฅผ ์ ์ผํ ๋งค๊ฐ๋ณ์๋ก ํ์ฌ ์ฝ๋ฐฑ์ ํธ์ถํ๋ค.
- ๊ฐ์ฒด (์ ํ์ ) : ์์น ์ ๋ณด ํ์์ ์ฌ์ฉํ ์ต์ ์ ์ง์ ํ๋ค.
function success(position) {
doSomething(position.coords.latitude, position.coords.longitude);
}
function error() {
alert("์ฃ์กํฉ๋๋ค. ์์น ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.");
}
const options = {
enableHighAccuracy: true,
maximumAge: 30000,
timeout: 27000,
};
const watchID = navigator.geolocation.watchPosition(success, error, options);
Geolocation API์ ์ฃผ์ ํด๋์ค๋ก์ ์ฌ์ฉ์์ ํ์ฌ ์์น๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์์น ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ , ์ด์ ์ ๋ฑ๋กํ๋ ๊ฐ์ง๊ธฐ๋ฅผ ์ ๊ฑฐํ๋ ๋ฉ์๋๋ฅผ ๋ด๊ณ ์๋ค.
์ฌ์ฉ์์ ์์น๋ฅผ ๋ํ๋ด๋ฉฐ, GeolocationPosition ์ธ์คํด์ค๋ Geolocation ๊ฐ์ฒด ๋ฉ์๋์ ์ฑ๊ณต ์ฝ๋ฐฑ์ ์ ๊ณต๋๋ค. ํ์์คํฌํ์ ํจ๊ป GeolocationCoordinates ๊ฐ์ฒด ์ธ์คํด์ค๋ฅผ ํฌํจํ๋ค.
์ฌ์ฉ์ ์์น์ ์ขํ๋ฅผ ๋ํ๋ธ๋ค. GeolocationCoordinates ์ธ์คํด์ค๋ ์๋, ๊ฒฝ๋ ์ธ์๋ ๊ธฐํ ์ค์ํ ๊ด๋ จ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
GeolocationPositionError๋ Geolocation ๊ฐ์ฒด ๋ฉ์๋์ ์ค๋ฅ ์ฝ๋ฐฑ์ ์ ๊ณต๋๋ฉฐ, ์ค๋ฅ ์ฝ๋์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ด๊ณ ์๋ค.
API ์ง์ ์ ์ผ๋ก, Geolocation API์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Geolocation ๊ฐ์ฒด ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ค.
๐ธ ์ถ์ฒ ๐ธ
Geolocation API ์ฌ์ฉํ๊ธฐ - MDN
'WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ WEB ] ์นํ๋ก ํธ์๋์์ ์ฑ ์ฑ๋ฅ ์ต์ ํ ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ (0) | 2024.09.01 |
---|---|
[ WEB ] iOS์์ SVG ์ด๋ฏธ์ง๊ฐ ๊นจ์ ธ ๋ณด์ผ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2024.04.28 |
[ LocalStorage ] localStorage์์ ๋ฐฐ์ด(Array)๋ค๋ฃจ๊ธฐ. (0) | 2023.08.06 |
[ CSS ] white-space ์์ฑ (0) | 2023.07.31 |
[ CSS ] list-style-type์์๋ณด๊ธฐ. (0) | 2023.07.23 |