HTML5 - Vị trí địa lý

API vị trí địa lý HTML5 cho phép bạn chia sẻ vị trí của mình với các trang web yêu thích của bạn. JavaScript có thể nắm bắt được vĩ độ và kinh độ của bạn và có thể được gửi đến máy chủ web phụ trợ và thực hiện những việc quan tâm đến vị trí như tìm các doanh nghiệp địa phương hoặc hiển thị vị trí của bạn trên bản đồ.

Ngày nay hầu hết các trình duyệt và thiết bị di động đều hỗ trợ API vị trí địa lý. Các API định vị địa lý hoạt động với một thuộc tính mới của đối tượng điều hướng toàn cầu, tức là. Đối tượng định vị địa lý có thể được tạo như sau:

var geolocation = navigator.geolocation;

Đối tượng định vị địa lý là một đối tượng dịch vụ cho phép các widget truy xuất thông tin về vị trí địa lý của thiết bị.

Phương pháp định vị địa lý

Đối tượng định vị địa lý cung cấp các phương thức sau:

Sr.No. Phương pháp & Mô tả
1 getCurrentPosition ()

Phương pháp này truy xuất vị trí địa lý hiện tại của người dùng.

2 watchPosition ()

Phương pháp này truy xuất các bản cập nhật định kỳ về vị trí địa lý hiện tại của thiết bị.

3 clearWatch ()

Phương thức này hủy cuộc gọi watchPosition đang diễn ra.

Thí dụ

Sau đây là mã mẫu để sử dụng bất kỳ phương pháp nào ở trên:

function getLocation() {
   var geolocation = navigator.geolocation;
   geolocation.getCurrentPosition(showLocation, errorHandler);
}

Ở đây showLocation và errorHandler là các phương thức gọi lại sẽ được sử dụng để có được vị trí thực tế như được giải thích trong phần tiếp theo và để xử lý lỗi nếu có.

Thuộc tính vị trí

Các phương thức định vị địa lý getCurrentPosition () và getPositionUsingMethodName () chỉ định phương thức gọi lại lấy thông tin vị trí. Các phương thức này được gọi là không đồng bộ với một đối tượngPosition nơi lưu trữ thông tin vị trí đầy đủ.

Các Positionđối tượng chỉ định vị trí địa lý hiện tại của thiết bị. Vị trí được biểu thị dưới dạng một tập hợp các tọa độ địa lý cùng với thông tin về hướng và tốc độ.

Bảng sau đây mô tả các thuộc tính của đối tượng Vị trí. Đối với các thuộc tính tùy chọn nếu hệ thống không thể cung cấp giá trị, thì giá trị của thuộc tính được đặt thành null.

Bất động sản Kiểu Sự miêu tả
coords các đối tượng Chỉ định vị trí địa lý của thiết bị. Vị trí được biểu thị dưới dạng một tập hợp các tọa độ địa lý cùng với thông tin về hướng và tốc độ.
coords.latitude Con số Chỉ định ước tính vĩ độ theo độ thập phân. Phạm vi giá trị là [-90,00, +90,00].
coords.longitude Con số Chỉ định ước tính kinh độ theo độ thập phân. Phạm vi giá trị là [-180,00, +180,00].
coords.altitude Con số [Tùy chọn] Chỉ định ước tính độ cao tính bằng mét trên WGS 84 ellipsoid.
coords.accuracy Con số [Tùy chọn] Chỉ định độ chính xác của các ước tính vĩ độ và kinh độ tính bằng mét.
coords.altitudeAccuracy Con số [Tùy chọn] Chỉ định độ chính xác của ước tính độ cao tính bằng mét.
coords.heading Con số [Tùy chọn] Chỉ định hướng di chuyển hiện tại của thiết bị theo độ đếm theo chiều kim đồng hồ so với hướng bắc thực.
coords.speed Con số [Tùy chọn] Chỉ định tốc độ mặt đất hiện tại của thiết bị tính bằng mét trên giây.
dấu thời gian ngày Chỉ định thời gian khi thông tin vị trí được truy xuất và đối tượng Vị trí được tạo.

Thí dụ

Sau đây là một mã mẫu sử dụng đối tượng Vị trí. Ở đây phương thức showLocation là một phương thức gọi lại -

function showLocation( position ) {
   var latitude = position.coords.latitude;
   var longitude = position.coords.longitude;
   ...
}

Xử lý lỗi

Việc xác định vị trí địa lý rất phức tạp và rất cần phải bắt lỗi và xử lý nó một cách khéo léo.

Các phương thức định vị địa lý getCurrentPosition () và watchPosition () sử dụng phương thức gọi lại trình xử lý lỗi mang lại PositionErrorvật. Đối tượng này có hai thuộc tính sau:

Bất động sản Kiểu Sự miêu tả
Con số Chứa một mã số cho lỗi.
thông điệp Chuỗi Chứa mô tả lỗi mà con người có thể đọc được.

Bảng sau đây mô tả các mã lỗi có thể được trả về trong đối tượng PositionError.

Không thay đổi Sự miêu tả
0 LỖI KHÔNG RÕ Phương pháp này không thể truy xuất vị trí của thiết bị do lỗi không xác định.
1 PERMISSION_DENIED Phương pháp này không thể truy xuất vị trí của thiết bị vì ứng dụng không có quyền sử dụng Dịch vụ vị trí.
2 POSITION_UNAVAILABLE Không thể xác định vị trí của thiết bị.
3 HẾT GIỜ Phương pháp này không thể truy xuất thông tin vị trí trong khoảng thời gian chờ tối đa được chỉ định.

Thí dụ

Sau đây là một mã mẫu sử dụng đối tượng PositionError. Ở đây phương thức errorHandler là một phương thức gọi lại -

function errorHandler( err ) {
   
   if (err.code == 1) {
      
      // access is denied
   }
   ...
}

Tùy chọn vị trí

Sau đây là cú pháp thực tế của phương thức getCurrentPosition ():

getCurrentPosition(callback, ErrorCallback, options)

Đây đối số thứ ba là PositionOptions đối tượng chỉ định một tập hợp các tùy chọn để truy xuất vị trí địa lý của thiết bị.

Sau đây là các tùy chọn có thể được chỉ định làm đối số thứ ba:

Bất động sản Kiểu Sự miêu tả
enableHighAccuracy Boolean Chỉ định xem tiện ích con có muốn nhận ước tính vị trí chính xác nhất có thể hay không. Theo mặc định, điều này là sai.
hết giờ Con số Thuộc tính thời gian chờ là số mili giây ứng dụng web của bạn sẵn sàng chờ một vị trí.
tối đa Con số Chỉ định thời gian hết hạn tính bằng mili giây cho thông tin vị trí được lưu trong bộ nhớ cache.

Thí dụ

Sau đây là mã mẫu cho thấy cách sử dụng các phương pháp đã đề cập ở trên:

function getLocation() {
   var geolocation = navigator.geolocation;
   geolocation.getCurrentPosition(showLocation, errorHandler, {maximumAge: 75000});
}