【问题标题】:PHP Google map url with odd lat lng convert in urlPHP 谷歌地图 url 带有奇数 lat lng 在 url 中转换
【发布时间】:2017-04-15 08:44:49
【问题描述】:

我开发了一个从谷歌地图网址收集纬度 lng 的脚本。

http://maps.google.com/maps?f=q&ie=UTF8&om=1&q=24+56.7266'67+00.8324”

但是当我放置这个 url 浏览器时,它会将 lat lng 从 this-> "24+56.7266'67+00.8324" 转换为 this-> "24.945443, 67.013873" 这是正确的。他们有什么方法可以在 php 变量中获得正确的 lat lng。

目前我已经尝试过了。

$url = "http://maps.google.com/maps?f=q&ie=UTF8&om=1&q=24+56.7266'67+00.8324";
$output = file_get_contents($url);
echo $output;

当我运行我的脚本时,它像这样重定向了我的网址。

http://localhost/maps/place/24%C2%B056'43.6%22N+67%C2%B000'49.9%22E/@24.9454433,67.0138733,16z

所以我尝试在变量中获取最终 url,但失败了。它捕获旧网址而不是重定向后的最终网址。

PS:我们不想在我们的服务器上使用谷歌地图。只需要来自提供的 url 的变量中的正确 lat lng。

【问题讨论】:

    标签: php google-maps url curl


    【解决方案1】:

    这种方式你需要用google maps。

    $url = "http://maps.google.com/maps?f=q&ie=UTF8&om=1&q=24+56.7266'67+00.8324";
    header("Location:".$url."");
    

    【讨论】:

    • 我想在变量中输出数据。来自@24.9454433,67.0138733
    • 其实我不想打开这个网址。我想要最终的重定向链接数据到变量中。
    【解决方案2】:

    此问题已通过以下代码解决。我不知道 url 包含以度、分、秒为单位的 gps 数据。

    function DMStoDD($deg,$min,$sec)
    {
        // Converting DMS ( Degrees / minutes / seconds ) to decimal format
        return $deg+((($min*60)+($sec))/3600);
    } 
    
        $coords = explode("'", $vars['q']);
        $lat_temp = $coords[0];
        $long_temp = $coords[1];
        $lat_decimal = explode(".", $lat_temp);
        $long_decimal = explode(".", $long_temp);
        $lat_sec = "0.".$lat_decimal[1];
        $lng_sec = "0.".$long_decimal[1];
        $lat_sec = round($lat_sec * 60,1);
        $lng_sec = round($lng_sec * 60,1);
        $lat_dd_space = explode(" ", $lat_temp);
        $lng_dd_space = explode(" ", $long_temp);
        $lat_dd = $lat_dd_space[0];
        $lng_dd = $lng_dd_space[0];
        $lat_mm = explode(".", $lat_dd_space[1]);
        $lng_mm = explode(".", $lng_dd_space[1]);
        $lat_mm = $lat_mm[0];
        $lng_mm = $lng_mm[0];
        $lat = round(DMStoDD($lat_dd,$lat_mm,$lat_sec),6);
        $long = round(DMStoDD($lng_dd,$lng_mm,$lng_sec),6);
    

    【讨论】:

      猜你喜欢
      • 2017-09-06
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多