Home » HTML » API trong HTML5 » Geolocation – Định vị vị trí trong HTML5
Ví dụ và cách sử dụng Geolocation để định vị vị trí người dùng trong HTML5. Hiển thị vị trí người dùng và thông tin liên quan trên bản đồ.

Geolocation – Định vị vị trí trong HTML5

Geolocation được sử dụng để xác định vị trí người dùng trong HTML5.

Nhấn vào nút dưới đây để hiển thị vị trí của bạn trên bản đồ:

Định vị người dùng trong HTML5

Geolocation được sử dụng để xác định vị trí địa lý của người dùng.

Để bảo vệ quyền riêng tư, việc xác định vị trí chỉ được thực hiện khi người dùng chấp thuận.

Trình duyệt hỗ trợ

Số trong bảng dưới đây thể hiện phiên bản đầu tiên của trình duyệt hỗ trợ đầy đủ cho thuộc tính.

Thuộc tính Icon Chrome Icon FireFox Icon IE Icon Safari Icon Opera
Geolocation 5.0 3.5 9.0 5.0 16.0

Lưu ý: Việc định vị sẽ cho kết quả chính xác hơn với các thiết bị có GPS, như iPhone, iPad.

Sử dụng Geolocation để định vị trong HTML

Để xác định vị trí người dùng bạn sử dụng hàm getCurrentPosition().

Dưới đây là ví dụ đơn giản về việc sử dụng Geolocation để lấy tọa độ người dùng:

Demo

Giải thích ví dụ:

  1. Kiểm tra xem Geolocation có được hỗ trợ hay không
  2. Nếu được hỗ trợ, chạy hàm getCurrentPosition(). Nếu không hỗ trợ, hiển thị thông báo tới người dùng
  3. Nếu hàm getCurrentPosition() được thực hiện thành công, trả về tọa độ của người dùng thông qua hàm showPosition()
  4. Hàm showPosition() làm nhiệm vụ hiển thị Kinh độ và Vĩ độ của người dùng

Trên đây là ví dụ rất căn bản về Geolocation, chưa bao gồm việc xác định và hiển thị các lỗi phát sinh.

Xác định và hiển thị lỗi

Tham số thứ 2 của hàm getCurrentPosition() được sử dụng để xử lý các lỗi phát sinh trong quá trình định vị. Nó sẽ tự động gọi tới hàm định sẵn nếu xảy ra lỗi:

Demo

Các mã lỗi trả về:

  • Permission denied – Người dùng không cho phép sử dụng Geolocation để định vị
  • Position unavailable – Không lấy được thông tin về vị trí người dùng
  • Timeout – Hết thời gian để thực hiện yêu cầu định vị

Hiển thị vị trí trên bản đồ

Để hiển thị kết quả định vị trên bản đồ, bạn cần tới các dịch vụ cung cấp bản đồ trực tuyến có hỗ trợ Kinh độ và Vĩ độ, chẳng hạn như Google Maps:

Demo

Trong ví dụ trên, chúng ta sử dụng dữ liệu về Kinh độ và Vĩ độ để hiển thị vị trí trên Google maps (bằng ảnh tĩnh).

Để hiển thị vị trí người dùng trên bản đồ trực tuyến mà bạn có thể tương tác, phóng to, thu nhỏ,… tham khảo ví dụ dưới đây:

Hiển thị vị trí người dùng trên Google Maps

Sử dụng thông tin vị trí

Ngoài việc hiển thị vị trí người dùng trên bản đồ, bạn có thể sử dụng Geolocation để:

  • Hiển thị các địa điểm được yêu thích gần người dùng
  • Chỉ đường cho người dùng (GPS)
  • Cập nhật, lưu trữ thông tin về vị trí người dùng

getCurrentPosition() – Hàm trả về kết quả

Hàm getCurrentPosition() sẽ trả về kết quả là một đối tượng (object) nếu định vị thành công. Kinh độ, Vĩ độ và độ chính xác là những thuộc tính luôn luôn được trả về. Những thuộc tính khác sẽ được trả về nếu có đủ thông tin cần thiết. Chi tiết về các thuộc tính trả về:

Thuộc tínhMiêu tả
coords.latitudeVĩ độ
coords.longitudeKinh độ
coords.accuracyĐộ chính xác của việc định vị
coords.altitudeĐộ cao so với mực nước biển, đơn vị là mét
coords.altitudeAccuracySự chính xác của độ cao vừa định vị
coords.headingHướng người dùng đang đi, đơn vị là độ, lấy Hướng Bắc làm gốc
coords.speedTốc độ di chuyển, đơn vị là met / giây
timestampThời điểm phản hồi yêu cầu định vị

Những hàm thú vị trong Geolocation

watchPosition() – Trả về vị trí hiện tại của người dùng và tiếp tục cập nhật vị trí khi người dùng di chuyển (giống như hệ thống GPS trong xe ô tô).

clearWatch() – Ngừng sử dụng hàm watchPosition().

Ví dụ dưới đây sẽ cho bạn thấy cách làm việc của hàm watchPosition(). Bạn cần phải có một thiết bị GPS để thực hiện ví dụ này (một chiếc điện thoại di động như iPhone chẳng hạn):

Demo

Leave a Reply

Your email address will not be published. Required fields are marked *

*