HTML5 Geolocation API ช่วยให้คุณแบ่งปันตำแหน่งของคุณกับเว็บไซต์โปรดของคุณ จาวาสคริปต์สามารถจับละติจูดและลองจิจูดของคุณ และสามารถส่งไปยังเว็บเซิร์ฟเวอร์ส่วนหลัง และทำสิ่งต่าง ๆ ที่เกี่ยวข้องกับการรับรู้ตำแหน่ง เช่น ค้นหาธุรกิจในท้องถิ่นหรือแสดงตำแหน่งของคุณบนแผนที่ พิกัดตำแหน่งทางภูมิศาสตร์ระบุตำแหน่งทางภูมิศาสตร์ของอุปกรณ์
วิธีการระบุตำแหน่งทางภูมิศาสตร์ getCurrentPosition() และ getPositionUsingMethodName() ระบุวิธีการเรียกกลับที่ดึงข้อมูลตำแหน่ง เมธอดเหล่านี้เรียกว่าอะซิงโครนัสกับตำแหน่งของอ็อบเจ็กต์ซึ่งเก็บข้อมูลตำแหน่งทั้งหมดไว้
อ็อบเจ็กต์ Position ระบุตำแหน่งทางภูมิศาสตร์ปัจจุบันของอุปกรณ์ ตำแหน่งจะแสดงเป็นชุดพิกัดทางภูมิศาสตร์พร้อมกับข้อมูลเกี่ยวกับหัวเรื่องและความเร็ว
คุณสมบัติของออบเจ็กต์ตำแหน่งประกอบด้วย −
คุณสมบัติ | ประเภท | คำอธิบาย |
coords | วัตถุ | ระบุตำแหน่งทางภูมิศาสตร์ของอุปกรณ์ ตำแหน่งจะแสดงเป็นชุดพิกัดทางภูมิศาสตร์พร้อมกับข้อมูลเกี่ยวกับหัวเรื่องและความเร็ว |
coords.latitude | Number | ระบุค่าประมาณละติจูดเป็นองศาทศนิยม ช่วงค่าคือ [-90.00, +90.00] |
coords.longitude | Number | ระบุค่าประมาณลองจิจูดเป็นองศาทศนิยม ช่วงค่าคือ [-180.00, +180.00] |
ต่อไปนี้ใช้วัตถุตำแหน่งที่มีพิกัดสำหรับละติจูดและลองจิจูด -
วัตถุระบุตำแหน่งทางภูมิศาสตร์มีวิธีการดังต่อไปนี้ ทั้งหมดใช้พิกัดเพื่อดึงข้อมูลตำแหน่ง -
วิธีการ | คำอธิบาย |
getCurrentPosition() | เมธอดนี้จะดึงข้อมูลตำแหน่งทางภูมิศาสตร์ปัจจุบันของผู้ใช้ |
watchPosition() | เมธอดนี้จะดึงข้อมูลอัปเดตเป็นระยะเกี่ยวกับตำแหน่งทางภูมิศาสตร์ปัจจุบันของอุปกรณ์ |
clearWatch() | เมธอดนี้จะยกเลิกการเรียก watchPosition ที่กำลังดำเนินอยู่ |
ตัวอย่าง
คุณสามารถลองเรียกใช้โค้ดต่อไปนี้เพื่อเรียนรู้วิธีทำงานกับตำแหน่งทางภูมิศาสตร์และใช้พิกัดตำแหน่งทางภูมิศาสตร์ใน HTML5 จะดึงข้อมูลอัปเดตเป็นระยะเกี่ยวกับตำแหน่งทางภูมิศาสตร์ปัจจุบันของอุปกรณ์ ตำแหน่งจะแสดงเป็นชุดพิกัดทางภูมิศาสตร์พร้อมกับข้อมูลเกี่ยวกับหัวเรื่องและความเร็ว
<!DOCTYPE HTML> <html> <head> <script type="text/javascript"> var watchID; var geoLoc; function showLocation(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; alert("Latitude : " + latitude + " Longitude: " + longitude); } function errorHandler(err) { if(err.code == 1) { alert("Error: Access is denied!"); } else if( err.code == 2) { alert("Error: Position is unavailable!"); } } function getLocationUpdate(){ if(navigator.geolocation){ // timeout at 60000 milliseconds (60 seconds) var options = {timeout:60000}; geoLoc = navigator.geolocation; watchID = geoLoc.watchPosition(showLocation, errorHandler, options); } else{ alert("Sorry, browser does not support geolocation!");| } } </script> </head> <body> <form> <input type="button" onclick="getLocationUpdate();" value="Watch Update"/> </form> </body> </html>