๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

WEB

[ WEB API ] Geolocation API๋ฅผ ํ†ตํ•ด ์œ„์น˜ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ.

 

 

 

 

๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉ์ž์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

 

 

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

Geolocation API์˜ ์ฃผ์š” ํด๋ž˜์Šค๋กœ์„œ ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ์œ„์น˜ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ , ์ด์ „์— ๋“ฑ๋กํ–ˆ๋˜ ๊ฐ์ง€๊ธฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

 

 

GeolocationPosition

์‚ฌ์šฉ์ž์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, GeolocationPosition ์ธ์Šคํ„ด์Šค๋Š” Geolocation ๊ฐ์ฒด ๋ฉ”์„œ๋“œ์˜ ์„ฑ๊ณต ์ฝœ๋ฐฑ์— ์ œ๊ณต๋œ๋‹ค. ํƒ€์ž„์Šคํƒฌํ”„์™€ ํ•จ๊ป˜ GeolocationCoordinates ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ํฌํ•จํ•œ๋‹ค.

 

 

GeolocationCoordinates

์‚ฌ์šฉ์ž ์œ„์น˜์˜ ์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. GeolocationCoordinates ์ธ์Šคํ„ด์Šค๋Š” ์œ„๋„, ๊ฒฝ๋„ ์™ธ์—๋„ ๊ธฐํƒ€ ์ค‘์š”ํ•œ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.

 

 

GeolocationPositionError

GeolocationPositionError๋Š” Geolocation ๊ฐ์ฒด ๋ฉ”์„œ๋“œ์˜ ์˜ค๋ฅ˜ ์ฝœ๋ฐฑ์— ์ œ๊ณต๋˜๋ฉฐ, ์˜ค๋ฅ˜ ์ฝ”๋“œ์™€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

 

 

Navigator.geolocation

API ์ง„์ž…์ ์œผ๋กœ, Geolocation API์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” Geolocation ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

 

 

 


 

๐ŸŒธ ์ถœ์ฒ˜ ๐ŸŒธ

 

Geolocation API - MDN

Geolocation API ์‚ฌ์šฉํ•˜๊ธฐ - MDN