ชั้น 29 ออฟฟิศเศส แอท เซ็นทรัลเวิลด์

999/9 พระราม 1 กรุงเทพฯ 10330

บริการตลอด 24 ชั่วโมง

ทุกวัน ไม่เว้นวันหยุด

0-2107-3466

โทรเลยดิจะรออะไร

Home » HTML » HTML Geolocation API

HTML Geolocation API

Geolocation API คืออะไร

Geolocation API ใช้เพื่อเข้าถึงตำแหน่งปัจจุบันของผู้ใช้

เนื่องจากการเข้าถึงตำแหน่งอาจกระทบต่อ ความเป็นส่วนตัว (Privacy)
ดังนั้นเบราว์เซอร์จะไม่ให้ข้อมูลตำแหน่ง เว้นแต่ผู้ใช้จะอนุญาตก่อน

การใช้งาน HTML Geolocation API

สามารถเข้าถึง Geolocation API ได้โดยใช้คำสั่ง:
navigator.geolocation

เมื่อเรียกใช้งาน เบราว์เซอร์จะ ขออนุญาตจากผู้ใช้ เพื่อเข้าถึงข้อมูลตำแหน่ง หากผู้ใช้ยินยอม เบราว์เซอร์จะใช้วิธีที่ดีที่สุดจากอุปกรณ์ (เช่น GPS หรือ Wi-Fi) เพื่อหาตำแหน่ง

getCurrentPosition() ใช้สำหรับส่งคืนตำแหน่งปัจจุบันของผู้ใช้

ตัวอย่าง: แสดงละติจูดและลองจิจูดของผู้ใช้
				
					<script>
const x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + 
  "<br>Longitude: " + position.coords.longitude;
}
</script>
				
			

คำอธิบายตัวอย่าง

  • ตรวจสอบว่าเบราว์เซอร์รองรับ Geolocation หรือไม่
  • ถ้ารองรับ ให้เรียกใช้ getCurrentPosition()
  • ถ้าไม่รองรับ ให้แสดงข้อความเตือนผู้ใช้
  • ฟังก์ชัน success() แสดงตำแหน่งผู้ใช้ (ละติจูดและลองจิจูด)
  • ฟังก์ชัน error() จะแจ้งเตือนเมื่อเกิดข้อผิดพลาด

การจัดการข้อผิดพลาด (Error Handling)

พารามิเตอร์ลำดับที่ 2 ของ getCurrentPosition() ใช้สำหรับจัดการข้อผิดพลาด โดยจะระบุฟังก์ชันที่จะทำงาน เมื่อไม่สามารถรับตำแหน่งได้

ตัวอย่าง: การจัดการข้อผิดพลาดแบบละเอียด
				
					function showError(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "ผู้ใช้ปฏิเสธการร้องขอการระบุตำแหน่งทางภูมิศาสตร์"
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "ยังไม่มีข้อมูลตำแหน่งที่ตั้ง"
      break;
    case error.TIMEOUT:
      x.innerHTML = "การร้องขอเพื่อรับตำแหน่งของผู้ใช้หมดเวลาแล้ว"
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ"
      break;
  }
}
				
			

ข้อมูลที่ระบุด้วยตำแหน่ง (Location-specific Information)

Geolocation มีประโยชน์อย่างมากสำหรับการให้ข้อมูลที่อิงกับตำแหน่ง เช่น:

  • ข้อมูลท้องถิ่นล่าสุด
  • แสดงจุดที่น่าสนใจใกล้ผู้ใช้ (Point of Interest)
  • การนำทางแบบทีละขั้นตอน (GPS)

ข้อมูลที่ได้จาก getCurrentPosition()

เมื่อทำงานสำเร็จ getCurrentPosition()
จะส่งคืน Object ซึ่งประกอบด้วยคุณสมบัติดังนี้:

Propertyค่าที่ส่งคืนคำอธิบาย
coords.latitudeส่งคืนเสมอละติจูด (ค่าทศนิยม)
coords.longitudeส่งคืนเสมอลองจิจูด (ค่าทศนิยม)
coords.accuracyส่งคืนเสมอความแม่นยำของตำแหน่ง
coords.altitudeถ้ามีความสูงจากระดับน้ำทะเล (เมตร)
coords.altitudeAccuracyถ้ามีความแม่นยำของค่าความสูง
coords.headingถ้ามีทิศทาง (องศาจากทิศเหนือ)
coords.speedถ้ามีความเร็ว (เมตรต่อวินาที)
timestampถ้ามีวันและเวลาที่ได้ข้อมูล

คำสั่งอื่น ๆ ของ Geolocation Object

Object ของ Geolocation ยังมีคำสั่งที่ใช้งานได้อีก เช่น:
  • watchPosition() ใช้เพื่อติดตามตำแหน่งปัจจุบันของผู้ใช้แบบเรียลไทม์ (เช่น ระบบ GPS ในรถยนต์)
  • clearWatch() ใช้เพื่อหยุดการติดตามที่เริ่มจาก watchPosition()
				
					const x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.watchPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}
    
function showPosition(position) {
    x.innerHTML="Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude;
}
				
			
Categories