Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Lấy thông tin địa điểm Lat & Lon sử dụng Javascript / PHP / Python - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Một trong những ứng dụng phổ biến trên web là ứng dụng bản đồ, mà thường được sử dụng để cung cấp thông tin về địa điểm, theo dõi hàng hóa hoặc tìm kiếm địa điểm. Trong bài viết này, chúng tôi sẽ giới thiệu kiến thức về việc làm thế nào để làm việc với bản đồ.

Lat và Lon là gì?

  • Lat viết tắt của Latitude là vĩ độ, là một tạo độ xác định vị trí bắc nam của một điểm trên bề mặt trái đất.
  • Lon viết tắt của Longitude là kinh độ, là một toạ độ xác định vị trí đông tây của một điểm trên bên mặt trái đất.

Từ kinh độ và vĩ độ ta xác định dễ dàng được vị trí của các đối tượng, từ đó tìm được tên đường phố, toà nhà, …

Lấy thông tin Lat & Lon của người dùng bằng Javascript

Khi người dùng sử dụng thiết bị có GPS và đã cho phép ứng dụng truy cập thông tin vị trí (location), chúng ta có thể xác định vị trí của họ với độ chính xác cao.

<!DOCTYPE html>
<html lang="en">
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getUserLocation()">Try It</button>
<p id="demo"></p>
<script>
    var x = document.getElementById("demo");
    function getUserLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
        } else {
            alert("Geolocation is not supported by this browser.")
        }
    }
    function showPosition(position) {
        var lat = position.coords.latitude;
        var lon = position.coords.longitude;
        alert('Your Latitude:' + lat + ' and Longitude:' + lon);
    }
</script>
</body>
</html>

Tính toán khoảng cách giữa 2 điểm

Bằng PHP

/**
 * @param $lat1 
 * @param $lon1
 * @param $lat2
 * @param $lon2
 * @param string $unit
 * @return float
 */
function getDistanceBetweenPoints($lat1, $lon1, $lat2, $lon2, string $unit = 'm'): float
{
    $theta = $lon1 - $lon2;
    $distance = (sin(deg2rad($lat1)) * sin(deg2rad($lat2))) + (cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)));
    $distance = acos($distance);
    $distance = rad2deg($distance);
    $distance = $distance * 60 * 1.1515;
    switch($unit) {
        case 'm':
            break;
        case 'km' :
            $distance = $distance * 1.609344;
    }
    return (round($distance,2));
}

Bằng Python

from numpy import sin, cos, arccos, pi, round


def get_distance_between_points(lat1, lon1, lat2, lon2, unit='miles'):
    """
    Get Distance Between Points - vinasupport.com
    :param lat1:
    :param lon1:
    :param lat2:
    :param lon2:
    :param unit:
    :return:
    """
    def rad2deg(radians):
        degrees = radians * 180 / pi
        return degrees

    def deg2rad(degrees):
        radians = degrees * pi / 180
        return radians

    theta = lon1 - lon2
    distance = 60 * 1.1515 * rad2deg(
        arccos(
            (sin(deg2rad(lat1)) * sin(deg2rad(lat2))) +
            (cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * cos(deg2rad(theta)))
        )
    )

    unit_to_distance = {
        'm': round(distance, 2),
        'km': round(distance * 1.609344, 2)
    }

    return unit_to_distance.get(unit, 0)


Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *