人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

(1)インプットに住所、アウトプットに径度、緯度を実現するサイト、またはプロクラム、ASPを紹介ください

(2)二地点の径度、緯度情報から二点間の距離をメートル単位で算出する式を教えてください。
例題:池袋駅からサンシャイン60までの距離を各地点径度、緯度を基に求めよ

●質問者: r8820004
●カテゴリ:コンピュータ 学習・教育
✍キーワード:ASP アウトプット インプット サイト サンシャイン60
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● osarivan
●0ポイント

http://www.hatena.ne.jp/1090378478

人力検索はてな - ある住所(東京23区でOK)を入力すると、その場所の緯度・経度がわかるようなサイトはないでしょうか?ソフトウェアではありそうですが、できればWebサイトで。どうぞよろ..

インプットに住所、アウトプットに径度、緯度を実現するサイト

前出です。

http://www.hatena.ne.jp/1090387555

人力検索はてな - ある2地点においてそれぞれ緯度と経度が分かっている場合、その2地点の距離はどのように計算すれば出るでしょうか?例えば「北緯35.50.20.100東経139.40.10.200」と「北..

二地点の径度、緯度情報から二点間の距離をメートル単位で算出する式

前出です。


2 ● Blank
●10ポイント

http://www.hatena.ne.jp/awindow?qid=1105008401

awindowさんのプロフィール - はてな

国土地理院のこのサイトから世界測地系による緯度経度が得られます。

http://www.tawatawa.com/chizu1/page009.html

経緯度計算

経緯度計算についてはここに書いてあります。

◎質問者からの返答

具体的にどなたか計算していただけますか?

池袋駅:nl=35.43.36.491/el=139.42.51.509

サンシャイン60:nl=35.43.32.053/el=139.43.21.266

YAHOO!MAPでは、

(1)住所などから径度・緯度を出した後、

(2)径度・緯度と縮尺を基に地図画像を出力

(3)地図画像をクリックしたx,y情報を基に径度・緯度を算出

(4)径度・緯度と縮尺を基に地図画像を出力

このようなことをしていると思われますが、

どういった計算をしているのか教えて下さい


3 ● zizz_walla
●0ポイント

http://www02.so-net.ne.jp/~fland/fla/make/0top.htm

ここには、経度緯度から距離を計算するVBのサンプルがあります。(少し精度が落ちますが)

http://www02.so-net.ne.jp/~fland/fla/make/ckyoho.htm

にあるソースの

Option Explicit

の下に

Sub main()

Dim Kyori#, Houi#

GetKyoriHoui 354336, 1394251, 354332, 1394321, Kyori#, Houi#

MsgBox Str(Kyori#) + ” km”

End Sub

とメイン関数を実装し実行した結果、およそ0.78km という結果となりました。

WordかExcelをお持ちなら実際に動かしてみることができます。

http://www.zenrin.co.jp/product/z7.html

電子地図帳Z[zi:]では距離や面積を計測することができます。このソフトで上記2地点の距離を計測した結果、760m という結果が得られました。


4 ● osarivan
●30ポイント

http://vldb.gsi.go.jp/sokuchi/surveycalc/bl2stf.html

測量計算(距離と方位角の計算)

計算結果

緯度経度の入力値 楕円体 GRS80

出発点 北緯 35°43′36.4910″

東経 139°42′51.5090″

到着点 北緯 35°43′32.0530″

東経 139°43′21.2660″

距離と方位角 測地線長 760.252(m)

方位角 出発点→到着点 100°21′44.86″

到着点→出発点 280°22′02.24″

760.252mってことですか。。。


5 ● zizz_walla
●60ポイント

http://nlftp.mlit.go.jp/kj/

住所から緯度経度の対応データは国土交通省国土計画局の街区レベル位置参照情報ダウンロードサービスから取得することができます。番地レベルで緯度経度を知ることができます。

http://www.hatena.ne.jp/1105008401#

(1)インプットに住所、アウトプットに径度、緯度を実現するサイト、またはプロクラム、ASPを紹介ください (2)二地点の径度、緯度情報から二点間の距離をメートル単位で算出.. - 人力検索はてな

2回目の回答ですみません。前回回答した座標指定が間違っていました。緯度経度指定できるように修正しました。

この結果、池袋駅からサンシャイン60までの直線距離は930mとなりました。以下VBAのソースです。

’ From FLand

’(C) Yobito Kayanuma 1996-2004 All rights reserved

’Created: April 12, 1996

Private Const mATN1P45 = 0.0174533 ’atn(1)/45

Private Const ER = 6378.14

Private Const PI = 3.14159265358979

’LHT座標値例

’北緯36度30分 → 365000

’南緯40度45分 → - 407500

’北緯136度30分 → 1365000

’南緯140度45分 → -1407500

Option Explicit

Sub main()

Dim Mypx&, Mypy&, Topx&, Topy&, Kyori#, Houi#

’池袋駅:nl=35.43.36.491/el=139.42.51.509

Mypx& = lht(35, 43, 36.491) ’位置1経度

Mypy& = lht(139, 42, 51.509) ’位置2緯度

’サンシャイン60:nl=35.43.32.053/el=139.43.21.266

Topx& = lht(35, 43, 32.053) ’位置2経度

Topy& = lht(139, 43, 21.266) ’位置2緯度

’距離と方位の計算

GetKyoriHoui Mypx&, Mypy&, Topx&, Topy&, Kyori#, Houi#

MsgBox Str(Kyori# * 1000) + ”m”

End Sub

’度分秒をLHT座標に変換する

Function lht(dig#, min#, sec#)

’dig 度

’min 分

’sec 秒

lht = (dig# + (min# / 60#) + (sec# / 3600#)) * 10000#

End Function

’2点の位置を指定して距離と方位を求める。

Public Sub GetKyoriHoui(ByVal Mypx&, ByVal Mypy&, ByVal Topx&, ByVal Topy&, Kyori#, Houi#)

’Mypx 位置1経度 Mypy 位置2緯度 LHT座標

’Topx 位置2経度 Topy 位置2緯度 LHT座標

’Kyori 計算結果距離 km Houi 計算結果方位 度

Dim xx#, ram#, sig#, ssig#

Dim mx#, my#, tx#, ty#

On Error GoTo getkher

’2点の位置を設定

mx = Mypx

tx = Topx

my = Mypy

ty = Topy

If mx = tx And my = ty Then ’010711

Kyori = 0

Houi = 0

Exit Sub

End If

’ラジアン変換

mx = mx * PI / 1800000

my = my * PI / 1800000

tx = tx * PI / 1800000

ty = ty * PI / 1800000

’距離を求める

ram = tx - mx

xx = Sin(my) * Sin(ty) + Cos(my) * Cos(ty) * Cos(ram)

If xx = -1# Then

sig = PI

ElseIf xx = 1# Then

sig = 0

Else

sig = Atn(-xx / Sqr(-xx * xx + 1)) + PI / 2

End If

Kyori = ER * sig

’方位を求める

ssig = Sin(sig)

If ssig = 0 Then

Houi = 0

Else

xx = Cos(ty) * Sin(ram) / ssig

If -xx * xx + 1 < 0 Then

If Sin(ram) > 0 Then

Houi = 90

Else

Houi = 270

End If

ElseIf Sqr(-xx * xx + 1) = 0 Then

If Sin(ram) > 0 Then

Houi = 90

Else

Houi = 270

End If

Else

Houi = Atn(xx / Sqr(-xx * xx + 1))

If 0 > Cos(my) * Sin(ty) - Sin(my) * Cos(ty) * Cos(ram) Then

Houi = PI - Houi

End If

Houi = Houi * 180 / PI

If Houi < 0 Then Houi = Houi + 360

End If

End If

Exit Sub

’参考

’Arcsin(x) = Atn(x / Sqr(-x * x + 1))

’Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)

getkher:

’Errmes Err, ”s_Getkyorihoui”

Resume Next

End Sub

◎質問者からの返答

ありがとうございます

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ