Khi nhắc tới geolocation thì chúng ta sẽ nghĩ đến các khái niệm như tọa độ (kinh độ và vĩ độ), vậy thì nó được tính hợp với html5 như thế nào ?.

Hiện tại thì HTML5 geolocation được hỗ trợ tốt trên các nền điện thoại thông minh, với sự hỗ trợ của các thiết bị GPS (Global Positioning System) được tích hợp sẵn trên điện thoại.
Mình xin đi vào chi tiết cách sử dụng tính năng này:
do đây là tính năng mới và còn phụ thuộc vào trình duyệt, để sử dụng được chúng, ta sẽ sử dụng object navigator của browser mà bạn đang dùng, cụ thể như sau:
window.navigator.geolocation.getCurrentPosition(showMyPosition,errorCallback);
- getCurrentPosition : phương thức giúp chúng ta lấy được vị trí hiện tại của user
- showMyPosition : một callback function (phương thức này được gọi sau khi phương thức getCurrentPosition trả về thành công)
- errorCallback : một callback function (phương thức được gọi nếu xảy ra lỗi trong quá trình lấy vị trí của user)
void getCurrentPostition (successCallback,errorCallback) : chỉ lấy vị trí hiện tại của user
long watchPosition (successCallback,errorCallback) : lấy vị trí hiện tại của user và đồng thời tracking(theo dỏi) theo vị trí của user nếu có sự thay đổi vị trí
void clearWatch(long watchId) : chấm dứt chức năng tracking vị trí của user
successCallback (position) : phương thức này nhận 1 tham số position - chính là vị trí hiện tại của user
errorCallback (errorCode) : errorCode - chi tiết thông tin lỗi
chi tiết về các property của từng object các bạn có thể tham khảo trực tiếp trên http://www.w3.org/TR/html5/
Vậy thì các trình duyệt sẽ dựa vào dữ liệu nào từ phía user để lấy thông tin về vị trí của user và các trình duyệt sẽ lấy chúng từ đâu ?
- các trình duyệt sẽ sử dụng các hỗ trợ từ thiết bị phần cứng GPS trên điện thoại của bạn để trả về chính xác vị trí hiện tại
- vậy nếu bạn không có GPS hardware thì sao ? khi đó trình duyệt sẽ sử dụng dựa vào thông tin của các cell phone (trạm phát sóng) gần đó để tính toán vị trí của bạn.
- vậy nếu bạn dùng trên PC thì các browser sẽ sử dụng thông tin nhà cung cấp dịch vụ mạng mà bạn đang sử dụng hay sẽ dựa vào các cột sống wifi gần đó , nhưng kết quả trả về sẽ không đảm bảo độ chính xác cao (chỉ mang tính tham khảo).