2017-04-15 3 views
-1

私はGoogleマップのURLから緯度経度を収集するスクリプトを開発しました。PHP奇妙な緯度経度でURLを変換するGoogleマップのURL

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

しかし、私はこのURLにブラウザを置くときには、this-から緯​​度LNGを変換> "24 + 56.7266'67 + 00.8324"「> 24.945443をthis-するために、 67.013873 "である。 PHP変数で正しいlat言語を取得する方法はありますか?

現在、私はこれを試しています。

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

私のスクリプトを実行しているうちに、このようなURLがリダイレクトされました。

http://localhost/maps/place/24%C2%B056 '43 0.6パーセントの22N + 67%C2%のB000'49.9の%の22E/@ 24.9454433,67.0138733,16z

だから私は、変数の最後のURLを取得するが、失敗しようとしました。リダイレクト後の最終URLではなく古いURLを取得します。

PS:私たちのサーバー上でGoogleマップを使用したくないです。提供されたURLから変数に正しいlat lngが必要です。

答えて

0

この問題は、以下のコードで解決されました。私は、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); 
0

この方法でGoogleマップを使用する必要があります。

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

出力データを変数にしたい。 〜から@ 24.9454433,67.0138733 – Aadeelyoo

+0

実際に私はこのURLを開きたくありません。私は最終的なリダイレクトリンクデータを変数に入れたい。 – Aadeelyoo

関連する問題