API geolocation trong HTML5 giúp bạn lấy được vị trí người dùng nếu được quyền cho phép, giúp bạn sử xác định vị trí khách hàng để hiện thị google maps trên website… Nhưng tọa độ này sẽ được định vị chính xác hơn khi xử dụng bằng thiết bị có GPS.

Cách dùng Geolocation

Dùng hàm getCurrentPosition() để lấy vị trí người dùng.

Ví dụ: Định vị đơn giản trả về các vĩ độ và kinh độ của vị trí của người sử dụng:

<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 = "Latitude: " + position.coords.latitude + " Longitude: " + position.coords.longitude;
    }
</script>

Giải thích :

• Kiểm tra xem có hỗ trợ định vị hay không
• Nếu có hỗ trợ, chạy hàm getCurrentPosition(). Nếu không, hiển thị thông báo
• Nếu hàm getCurrentPosition() thực thi thành công, trả về tọa độ cho hàm showPosition()
• Hàm showPosition() hiển thị ra kinh độ và vĩ độ

Ví dụ trên là một đoạn xử lý rất cơ bản, không có bắt lỗi.

Xử lý lỗi hoặc khi người dùng từ chối tiết lộ thông tin vị trí

Tham số thứ hai của phương thức getCurrentPosition() được dùng để xử lý lỗi. Nó quy định hàm nào sẽ chạy nếu có lỗi.

Hệ thống sẽ chỉ định một hàm sẽ chạy khi lấy vị trí người dùng thất bại:

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

– Permission denied – Người dùng không cho phép truy xuất đến vị trí
– Position unavailable – không lấy được vị trí
– Timeout – chờ quá lâu

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

Để hiển thị kết quả ra bản đồ, bạn cần truy cập vào dịch vụ bản đồ như dịch vụ Google Maps để sử dụng kinh độ và vĩ độ.

function showPosition(position) {
    var latlon = position.coords.latitude + “,” + position.coords.longitude;
    var img_url = “http://maps.googleapis.com/maps/api/staticmap?center=“+latlon+”&amp;amp;zoom=14&amp;amp;size=400×300&amp;amp;sensor=false”;
    document.getElementById(“mapholder”).innerHTML = <img src=‘”+img_url+”‘>“;
}

Thông tin địa điểm cụ thể

Geolocation rất hữu ích cho việc tìm kiếm các địa điểm cụ thể xung quanh bạn.

Ví dụ:

Các thông tin về khu vực hiện tại
Địa điểm gần nhất so với vị trí hiện tại
Định hướng (GPS)

Chúc các bạn thành công!

  • HTML/CSS
  • April 13, 2017
  • 0 comment
  • 50 views

Recent posts

Mẹo giúp ngưng cuộc gọi đến iPhone một cách lịch sự

Mẹo giúp ngưng cuộc gọi đến iPhone một cách lịch sự

Nếu đã từng gặp phải tình huống muốn bỏ qua cuộc gọi trên iPhone mà không tỏ ra thô lỗ, […]

4 mẫu iPhone 16 series sắp ra mắt có giá bán bao nhiêu?

4 mẫu iPhone 16 series sắp ra mắt có giá bán bao nhiêu?

Với những nâng cấp mới mẻ, liệu giá bán của iPhone 16 series có tăng so với năm ngoái? Mới […]

Giá bán iPhone 16 dự đoán đắt hơn 100 USD so với bản tiền nhiệm

Giá bán iPhone 16 dự đoán đắt hơn 100 USD so với bản tiền nhiệm

Apple không thay đổi kích thước màn hình iPhone hoặc iPhone Pro kể từ dòng iPhone 12. Vì vậy, iPhone […]

Thủ đoạn hack Zalo cần cảnh giác: Nhiều người dùng đã sập bẫy!

Thủ đoạn hack Zalo cần cảnh giác: Nhiều người dùng đã sập bẫy!

Thời gian qua, lực lượng Công an và các cơ quan chức năng đã có nhiều cảnh báo về việc […]

Ứng dụng vừa bị Google gỡ bỏ, người dùng cần xoá ngay kẻo mất sạch tiền trong tài khoản ngân hàng

Ứng dụng vừa bị Google gỡ bỏ, người dùng cần xoá ngay kẻo mất sạch tiền trong tài khoản ngân hàng

Nếu trót tải về ứng dụng, người dùng có thể bị chiếm đoạt tiền trong tài khoản ngân hàng mà […]

© 2021 Tạp Chí CNTT. Mr Hoang