Hướng dẫn JS

JS TRANG CHỦ Giới thiệu JS JS Đến đâu Đầu ra JS Tuyên bố JS Cú pháp JS Bình luận JS Biến JS JS Hãy JS Const Toán tử JS Số học JS Chuyển nhượng JS Các loại dữ liệu JS Các hàm JS Đối tượng JS Sự kiện JS Chuỗi JS Phương thức chuỗi JS Tìm kiếm chuỗi JS Mẫu chuỗi JS Số JS Phương thức số JS Mảng JS Phương thức mảng JS Sắp xếp mảng JS Lặp lại mảng JS JS Array Const JS ngày Định dạng ngày JS Ngày lấy phương thức JS Phương pháp đặt ngày JS Toán JS JS ngẫu nhiên JS Booleans So sánh JS Điều kiện JS Chuyển đổi JS JS Loop cho JS Loop For In JS Loop For Of JS lặp trong khi JS Break JS lặp lại Bộ JS Bản đồ JS JS Typeof Chuyển đổi loại JS JS Bitwise JS RegExp Lỗi JS Phạm vi JS JS Hoists Chế độ nghiêm ngặt JS JS từ khóa này Hàm mũi tên JS Lớp JS JS JSON Gỡ lỗi JS Hướng dẫn kiểu JS Các phương pháp hay nhất về JS JS sai lầm Hiệu suất JS JS dành riêng từ

Phiên bản JS

Phiên bản JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Lịch sử JS

Đối tượng JS

Định nghĩa đối tượng Thuộc tính đối tượng Phương thức đối tượng Hiển thị đối tượng Người truy cập đối tượng Trình tạo đối tượng Nguyên mẫu đối tượng Đối tượng lặp lại Bộ đối tượng Bản đồ đối tượng Tham chiếu đối tượng

Các hàm JS

Định nghĩa hàm Tham số chức năng Lời mời hàm Gọi hàm Áp dụng chức năng Chức năng đóng cửa

Lớp JS

Giới thiệu Lớp học Kế thừa giai cấp Lớp tĩnh

JS Async

Gọi lại JS JS không đồng bộ JS hứa JS Async / Await

JS HTML DOM

Giới thiệu DOM Phương thức DOM Tài liệu DOM Phần tử DOM DOM HTML Các biểu mẫu DOM DOM CSS Hoạt ảnh DOM Sự kiện DOM Trình xử lý sự kiện DOM Điều hướng DOM Nút DOM Bộ sưu tập DOM Danh sách nút DOM

BOM trình duyệt JS

Cửa sổ JS Màn hình JS Vị trí JS Lịch sử JS JS Navigator JS Popup Alert Thời gian JS JS Cookies

API web JS

Giới thiệu API Web API biểu mẫu web API lịch sử web API lưu trữ web API công nhân web API tìm nạp web API vị trí địa lý web

JS AJAX

Giới thiệu về AJAX AJAX XMLHttp Yêu cầu AJAX Phản hồi AJAX Tệp XML AJAX AJAX PHP AJAX ASP Cơ sở dữ liệu AJAX Ứng dụng AJAX Ví dụ về AJAX

JS JSON

Giới thiệu JSON Cú pháp JSON JSON so với XML Các loại dữ liệu JSON Phân tích cú pháp JSON JSON Stringify Đối tượng JSON Mảng JSON Máy chủ JSON JSON PHP HTML JSON JSON JSONP

JS so với jQuery

Bộ chọn jQuery jQuery HTML jQuery CSS jQuery DOM

Đồ họa JS

Đồ họa JS JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

Ví dụ về JS

Ví dụ về JS JS HTML DOM Đầu vào HTML JS Đối tượng HTML JS Sự kiện HTML JS Trình duyệt JS Trình chỉnh sửa JS Bài tập JS JS Quiz Chứng chỉ JS

Tham khảo JS

Đối tượng JavaScript Đối tượng DOM HTML


API vị trí địa lý web


Xác định vị trí của người dùng

API định vị địa lý HTML được sử dụng để lấy vị trí địa lý của người dùng.

Vì điều này có thể ảnh hưởng đến quyền riêng tư, vị trí sẽ không khả dụng trừ khi người dùng chấp thuận.

Lưu ý: Vị trí địa lý là chính xác nhất cho các thiết bị có GPS, như điện thoại thông minh.


API vị trí địa lý được hỗ trợ trong tất cả các trình duyệt:

Yes Yes Yes Yes Yes

Lưu ý: Kể từ Chrome 50, API vị trí địa lý sẽ chỉ hoạt động trên các ngữ cảnh an toàn như HTTPS. Nếu trang web của bạn được lưu trữ trên một nguồn không an toàn (chẳng hạn như HTTP), các yêu cầu lấy vị trí của người dùng sẽ không còn hoạt động.


Sử dụng API vị trí địa lý

Phương getCurrentPosition()thức được sử dụng để trả về vị trí của người dùng.

Ví dụ dưới đây trả về vĩ độ và kinh độ của vị trí của người dùng:

Thí dụ

<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>

Ví dụ được giải thích:

  • Kiểm tra xem Vị trí địa lý có được hỗ trợ không
  • Nếu được hỗ trợ, hãy chạy phương thức getCurrentPosition (). Nếu không, hãy hiển thị thông báo cho người dùng
  • Nếu phương thức getCurrentPosition () thành công, nó trả về một đối tượng tọa độ cho hàm được chỉ định trong tham số (showPosition)
  • Hàm showPosition () xuất ra Vĩ độ và Kinh độ

Ví dụ trên là một script Định vị địa lý rất cơ bản, không có lỗi xử lý.



Xử lý lỗi và từ chối

Tham số thứ hai của getCurrentPosition()phương thức được sử dụng để xử lý lỗi. Nó chỉ định một hàm để chạy nếu nó không lấy được vị trí của người dùng:

Thí dụ

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

Hiển thị kết quả trong bản đồ

Để hiển thị kết quả dưới dạng bản đồ, bạn cần có quyền truy cập vào dịch vụ bản đồ, chẳng hạn như Google Maps.

Trong ví dụ dưới đây, vĩ độ và kinh độ trả về được sử dụng để hiển thị vị trí trong Google Map (sử dụng hình ảnh tĩnh):

Thí dụ

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+"'>";
}

Thông tin về vị trí cụ thể

Trang này đã trình bày cách hiển thị vị trí của người dùng trên bản đồ.

Vị trí địa lý cũng rất hữu ích cho thông tin cụ thể về vị trí, như:

  • Thông tin địa phương cập nhật
  • Hiển thị Điểm ưa thích gần người dùng
  • Điều hướng từng chặng (GPS)

Phương thức getCurrentPosition () - Trả về dữ liệu

Phương getCurrentPosition()thức trả về một đối tượng khi thành công. Các thuộc tính vĩ độ, kinh độ và độ chính xác luôn được trả về. Các thuộc tính khác được trả lại nếu có:

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)

Đối tượng định vị địa lý - Các phương pháp thú vị khác

Đối tượng Geolocation cũng có các phương thức thú vị khác:

  • watchPosition()- Trả lại vị trí hiện tại của người dùng và tiếp tục trả lại vị trí đã cập nhật khi người dùng di chuyển (giống như GPS trên ô tô).
  • clearWatch()- Dừng watchPosition()phương thức.

Ví dụ dưới đây cho thấy watchPosition()phương pháp. Bạn cần một thiết bị GPS chính xác để kiểm tra điều này (như điện thoại thông minh):

Thí dụ

<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>