【问题标题】:PHP: Add miles to lat/lng pair to get new pairPHP:将英里添加到 lat/lng 对以获得新对
【发布时间】:2016-04-12 01:32:06
【问题描述】:

将距离(100 英里)添加到纬度/对数和方向(北等)以获得新的纬度/经度对的最简单方法是什么?

编辑添加:我一直在查看此页面上的示例,但似乎无法使用 PHP 使其工作:http://www.movable-type.co.uk/scripts/latlong.html

【问题讨论】:

  • 我投票结束这个问题,因为这与编程无关。
  • 和编程无关是什么意思?我正在尝试使用 PHP 自动化一些位置定位
  • 不,您必须进行计算。所以我建议你在mathematica.stackexchange.com 上提问。这里根本不涉及任何编程。
  • 从您链接的页面,Destination point given distance and bearing from start point 并记住,您需要在执行方程式之前将纬度/经度和方位转换为弧度,然后再将纬度/经度转换回度数.. .. 显示您的实际代码
  • 谢谢马克,其实我忘记转换成弧度了

标签: php geolocation gis geospatial geo


【解决方案1】:

这是我的工作代码,在此示例中采用 $lat/$lng 并添加 75 英里 EAST。

        $distance = 75;
        $bearing = deg2rad(90);
        $lat1 = deg2rad($lat);
        $lng1 = deg2rad($lng);
        echo $lat1 . ', ' . $lng1;
        echo '<br>';
        $lat2 = asin(sin($lat1)*cos($distance/ 3959) + cos($lat1)*sin($distance/ 3959)*cos($bearing));
        $lng2 = $lng1 + atan2(sin($bearing)*sin($distance/3959)*cos($lat1), cos($distance/3959)-sin($lat1)*sin($lat2));
        echo rad2deg($lat2) . ', ' . rad2deg($lng2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多