JS กวดวิชา

เจเอสโฮม JS Introduction JS Where To JS เอาท์พุต งบ JS JS ไวยากรณ์ JS ความคิดเห็น ตัวแปร JS เจเอส เลท JS Const JS Operators JS เลขคณิต JS Assignment ประเภทข้อมูล JS ฟังก์ชัน JS วัตถุ JS JS Events JS Strings JS String Methods JS String Search เทมเพลตสตริง JS JS Numbers JS Number Methods JS Arrays JS Array Methods JS Array Sort JS Array Iteration JS Array Const JS Dates รูปแบบวันที่ JS JS วันที่รับเมธอด JS Date Set Methods JS Math JS สุ่ม JS Booleans JS เปรียบเทียบ JS Conditions JS Switch JS ลูปสำหรับ JS Loop สำหรับ In JS วนสำหรับ Of JS วนรอบในขณะที่ JS Break JS Iterables JS ชุด JS Maps JS Typeof JS ประเภทการแปลง JS Bitwise JS RegExp JS Errors JS ขอบเขต JS Hoisting JS โหมดเข้มงวด JS คำสำคัญนี้ JS Arrow Function JS Classes JS JSON JS Debugging คู่มือสไตล์ JS JS แนวทางปฏิบัติที่ดีที่สุด JS ความผิดพลาด JS Performance JS สงวนคำ

เวอร์ชัน JS

เวอร์ชัน JS JS 2009 (ES5) เจเอส 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / ขอบ JS History

วัตถุ JS

คำจำกัดความของวัตถุ คุณสมบัติของวัตถุ วิธีการวัตถุ การแสดงวัตถุ อุปกรณ์เสริมวัตถุ ตัวสร้างวัตถุ ต้นแบบวัตถุ วัตถุ Iterables ชุดวัตถุ แผนที่วัตถุ การอ้างอิงวัตถุ

ฟังก์ชัน JS

คำจำกัดความของฟังก์ชัน พารามิเตอร์ฟังก์ชัน เรียกใช้ฟังก์ชัน เรียกฟังก์ชัน ฟังก์ชัน สมัคร การปิดฟังก์ชัน

JS Classes

แนะนำคลาส การสืบทอดคลาส คลาสคงที่

JS Async

JS Callbacks JS แบบอะซิงโครนัส JS Promises JS Async/รอ

JS HTML DOM

บทนำ DOM วิธี DOM เอกสาร DOM องค์ประกอบ DOM DOM HTML แบบฟอร์ม DOM DOM CSS ภาพเคลื่อนไหว DOM กิจกรรม DOM DOM Event Listener การนำทาง DOM โหนด DOM DOM Collections รายการโหนด DOM

JS เบราว์เซอร์ BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Web APIs

แนะนำ Web API เว็บฟอร์ม API API ประวัติเว็บ API ที่เก็บข้อมูลเว็บ Web Worker API API ดึงเว็บ เว็บ Geolocation API

JS AJAX

บทนำ AJAX AJAX XMLHttp คำขอ AJAX การตอบสนอง AJAX ไฟล์ AJAX XML AJAX PHP AJAX ASP ฐานข้อมูล AJAX แอปพลิเคชัน AJAX ตัวอย่าง AJAX

JS JSON

บทนำ JSON ไวยากรณ์ JSON JSON กับ XML ประเภทข้อมูล JSON JSON Parse JSON สตริงริฟาย วัตถุ JSON อาร์เรย์ JSON เซิร์ฟเวอร์ JSON JSON PHP JSON HTML JSON JSONP

JS กับ jQuery

ตัวเลือก jQuery jQuery HTML jQuery CSS jQuery DOM

JS กราฟิก

JS กราฟิก JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

ตัวอย่าง JS

ตัวอย่าง JS JS HTML DOM JS HTML อินพุต JS HTML Objects JS HTML Events JS Browser JS Editor JS แบบฝึกหัด JS Quiz ใบรับรอง JS

JS References

วัตถุ JavaScript วัตถุ HTML DOM


เว็บ Geolocation API


ค้นหาตำแหน่งของผู้ใช้

HTML Geolocation API ใช้เพื่อรับตำแหน่งทางภูมิศาสตร์ของผู้ใช้

เนื่องจากสิ่งนี้สามารถประนีประนอมความเป็นส่วนตัว ตำแหน่งจึงไม่สามารถใช้ได้เว้นแต่ผู้ใช้จะอนุมัติ

หมายเหตุ: การระบุตำแหน่งทางภูมิศาสตร์นั้นแม่นยำที่สุดสำหรับอุปกรณ์ที่มี GPS เช่น สมาร์ทโฟน


Geolocation API รองรับในทุกเบราว์เซอร์:

Yes Yes Yes Yes Yes

หมายเหตุ:ตั้งแต่ Chrome 50 เป็นต้นไป Geolocation API จะทำงานบนบริบทที่ปลอดภัย เช่น HTTPS เท่านั้น หากไซต์ของคุณโฮสต์บนต้นทางที่ไม่ปลอดภัย (เช่น HTTP) คำขอรับตำแหน่งของผู้ใช้จะไม่ทำงานอีกต่อไป


การใช้ Geolocation API

วิธี การ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>

ตัวอย่างอธิบาย:

  • ตรวจสอบว่ารองรับตำแหน่งทางภูมิศาสตร์หรือไม่
  • หากได้รับการสนับสนุน ให้เรียกใช้เมธอด getCurrentPosition() ถ้าไม่แสดงข้อความถึงผู้ใช้
  • หากเมธอด getCurrentPosition() สำเร็จ มันจะส่งคืนอ็อบเจ็กต์พิกัดไปยังฟังก์ชันที่ระบุในพารามิเตอร์ (showPosition)
  • ฟังก์ชัน showPosition() จะแสดงค่าละติจูดและลองจิจูด

ตัวอย่างข้างต้นเป็นสคริปต์ตำแหน่งทางภูมิศาสตร์พื้นฐาน โดยไม่มีข้อผิดพลาดในการจัดการ



การจัดการข้อผิดพลาดและการปฏิเสธ

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

ตัวอย่าง

function showError(error) {
  switch(error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation."
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable."
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out."
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred."
      break;
  }
}

แสดงผลในแผนที่

หากต้องการแสดงผลลัพธ์ในแผนที่ คุณต้องเข้าถึงบริการแผนที่ เช่น Google Maps

ในตัวอย่างด้านล่าง ละติจูดและลองจิจูดที่ส่งคืนถูกใช้เพื่อแสดงตำแหน่งใน Google Map (โดยใช้ภาพนิ่ง):

ตัวอย่าง

function showPosition(position) {
  let latlon = position.coords.latitude + "," + position.coords.longitude;

  let img_url = "https://maps.googleapis.com/maps/api/staticmap?center=
  "+latlon+"&zoom=14&size=400x300&sensor=false&key=YOUR_KEY";

  document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}

ข้อมูลเฉพาะสถานที่

หน้านี้แสดงวิธีแสดงตำแหน่งของผู้ใช้บนแผนที่

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

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

เมธอด getCurrentPosition() - ส่งคืน Data

วิธี การgetCurrentPosition()ส่งคืนวัตถุเมื่อสำเร็จ คุณสมบัติละติจูด ลองจิจูด และความแม่นยำจะถูกส่งกลับเสมอ คุณสมบัติอื่น ๆ จะถูกส่งคืนหากมี:

Property Returns
coords.latitude The latitude as a decimal number (always returned)
coords.longitude The longitude as a decimal number (always returned)
coords.accuracy The accuracy of position (always returned)
coords.altitude The altitude in meters above the mean sea level (returned if available)
coords.altitudeAccuracy The altitude accuracy of position (returned if available)
coords.heading The heading as degrees clockwise from North (returned if available)
coords.speed The speed in meters per second (returned if available)
timestamp The date/time of the response (returned if available)

Geolocation Object - วิธีการที่น่าสนใจอื่น ๆ

วัตถุ Geolocation ยังมีวิธีการอื่นๆ ที่น่าสนใจอีกด้วย:

  • watchPosition()- ส่งคืนตำแหน่งปัจจุบันของผู้ใช้และยังคงส่งคืนตำแหน่งที่อัปเดตเมื่อผู้ใช้เคลื่อนที่ (เช่น GPS ในรถยนต์)
  • clearWatch()- หยุดwatchPosition()วิธีการ

ตัวอย่างด้านล่างแสดงwatchPosition()วิธีการ คุณต้องมีอุปกรณ์ GPS ที่แม่นยำเพื่อทดสอบสิ่งนี้ (เช่นสมาร์ทโฟน):

ตัวอย่าง

<script>
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;
}
</script>