[PHP]緯度経度がわかっている二点間の距離計算


緯度経度がわかっている二点間の距離計算をするためのPHPスクリプト、どっかで公開されてませんか?もしくは、さっくり書いてもらえませんか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/08/27 00:19:29
  • 終了:2006/08/27 14:51:14

回答(1件)

id:aiaina No.1

aiaina回答回数8179ベストアンサー獲得回数1312006/08/27 09:30:27

http://www.arknext.com/utility/contents/gccj.html

2地点の緯度と経度を入力すると距離を計算してくれるページ

id:catfrog

???

2006/08/27 12:38:46
  • id:kuippa
    <?php
    // さっくり書こうとして完全に難易度を見誤っていた……
    // というわけで途中で諦めあげ(゜Д゜=)ノ⌒゜
    // 参考のURLがやくにたつかも。
    // 三角関数の方程式が解けない自分に愕然とした。でも、ま、いいや…。
    //
    //
    // 参考
    // http://www2.neweb.ne.jp/wd/nobuaki/New_Homepage/okinawa703.htm
    // http://www.scn-net.ne.jp/~heigh-ho/html/kyori.htm
    // http://wwwsoc.nii.ac.jp/geod-soc/web-text/part2/2-1/2-1-6.html
    // http://mike.medic.mie-u.ac.jp/~kimunori/koumuin/tigaku1.htm
    // ・・・なんか二つの結果が違うのでどっちがあってるかわからんのだけど……。
    // 測地緯度(地理緯度)と呼ぶ.φ とψ の間には,
    // tanφ= b^2/a^2 *tanΨ
    // 赤道半径a ,極半径b の回転楕円体は,
    // 地球 極半径 6357km 赤道半径6378km



    $na1 = $_POST["NA1"];
    $na2 = $_POST["NA2"];
    $na3 = $_POST["NA3"];
    $ta1 = $_POST["TA1"];
    $ta2 = $_POST["TA2"];
    $ta3 = $_POST["TA3"];

    //

    $na = $na1 + $na2/60 + $na3/(60^2) ;
    $ta = $ta1 + $ta2/60 + $ta3/(60^2) ;

    print("係数 b^2/a^2 " . ((6357^2)/(6378^2))."<hr>");

    //↓これ間違ってるとおもう…
    $na_geo = $na - ((6357^2)/(6378^2)) * sin(2 * $na);
    $ta_geo = $ta - ((6357^2)/(6378^2)) * sin(2 * $ta);

    print("地心緯度1" . $na_geo."<hr>");
    print("地心緯度2" . $ta_geo."<hr>");

    // ここで球面三角法の方程式でラジアンをだす。
    //cos(Δ)=cos($na_geo)*cos($ta_geo)*cos(経度差)+sin($na_geo)*sin($ta_geo)
    // ( ´゚д゚`).... これでΔってどうやって計算するんだっけ…
    //print(6357*deg2rad(Δ));

    ?>

    <form method="post" action="">
    <H4>地点Aの緯度の入力 ⇒ <B>北緯<INPUT name="NA1" size="10">度<INPUT name="NA2" size="10">分<INPUT name="NA3" size="10">秒</B></H4>
    <H4>地点Aの経度の入力 ⇒ <B>東経<INPUT name="TA1" size="10">度<INPUT name="TA2" size="10">分<INPUT name="TA3" size="10">秒</B></H4>
    <H4>地点Bの緯度の入力 ⇒ <B>北緯<INPUT name="NB1" size="10">度<INPUT name="NB2" size="10">分<INPUT name="NB3" size="10">秒</B></H4>
    <H4>地点Bの経度の入力 ⇒ <B>東経<INPUT name="TB1" size="10">度<INPUT name="TB2" size="10">分<INPUT name="TB3" size="10">秒</B></H4>

    <input type="submit" value="オス">
    </form>


    途中で放棄記念。
  • id:catfrog
    あ、今気づきました。えーと結論から言うと海外のサイトで発見しますた。っていうかこの質問に意味不明な回答をくれた人、糾弾されて退会したみたいですね、、。
  • id:catfrog
    ちなみにできあがったのが以下。味気もそっけもないアレですが、別サービスの基礎部分を切り出しただけなのでまあいいかなと。

    http://ubin.info/Distance_Calculation.php

    これ、凄いのがファンクション関数としてちゃんと提供されてたんですよ。なのでそれを単に使っただけ、というw

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません