Đăng nhập
Bạn chưa có tài khoản? Đăng ký.
Bạn đã quên password?
API định vị địa lý HTML được sử dụng để xác định vị trí địa lý 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ư cá nhân, nên vị trí sẽ không được lấy trừ khi người dùng chấp thuận nó.
Các số trong bảng bên dưới chỉ định phiên bản tối thiểu trình duyệt hỗ trợ đầy đủ cho vị trí địa lý.
Phần tử | |||||
---|---|---|---|---|---|
Vị trí địa lý | 5.0-49.0 (http) 50.0 (https) |
9.0 | 3.5 | 5.0 | 16.0 |
Phương thức getCurrentPosition()
được sử dụng để trả vị trí hiện tại 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.
Ví dụ
<script> var 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 = "Vĩ độ: " + position.coords.latitude + "<br>Kinh độ: " + position.coords.longitude; } </script>
Ví dụ được giải thích như sau:
getCurrentPosition()
. Nếu không, hãy hiển thị thông báo cho người dùnggetCurrentPosition()
thành công, nó trả về một đối tượng tọa độ cho hàm được chỉ định trong tham số (showPosition)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ý.
Tham số thứ hai của phương thức getCurrentPosition()
đượ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.
Ví 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ả dưới dạng bản đồ, chúng ta 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)
Ví dụ
function showPosition(position) { var latlon = position.coords.latitude + "," + position.coords.longitude; var 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+"'>"; }
Nếu phương thức getCurrentPosition()
trả về một đối tượng trên thành công, các thuộc tính vĩ độ, kinh độ được trả về luôn có độ chính xác cao. Các thuộc tính khác được trả lại (nếu có) như sau:
Property | Returns |
---|---|
coords.latitude | Vĩ độ dưới dạng số thập phân (luôn được trả về) |
coords.longitude | Kinh độ dưới dạng số thập phân (luôn được trả về) |
coords.accuracy | Độ chính xác của vị trí (luôn được trả về) |
coords.altitude | Độ cao tính bằng mét trên mực nước biển trung bình (trả lại nếu có) |
coords.altitudeAccuracy | Độ chính xác độ cao của vị trí (được trả lại nếu có) |
coords.heading | Tọa độ theo chiều kim đồng hồ từ Bắc (trả lại nếu có) |
coords.speed | Tốc độ tính bằng mét trên giây (trả về nếu có) |
timestamp | Ngày/giờ phản hồi (trả lại nếu có) |
Đối tượng Geolocation cũng có một số 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 phương thức watchPosition()
.Ví dụ dưới đây minh họa phương thức watchPosition()
. Chúng ta sẽ cần một thiết bị GPS chính xác để kiểm tra (như điện thoại thông minh).
Ví dụ
<script> var 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="Vĩ độ: " + position.coords.latitude + "<br>Kinh độ: " + position.coords.longitude; } </script>