1度、1分、1秒の長さ

緯度

子午線弧長の平均約40008km。
平均的な長さは
1度 約111km 1分 約1.85km 1秒 約30.9m
GRS 80楕円体表面上の代表地点
緯度00度上 1秒 約30.7m 1度 約111km
緯度35度上 1秒 約30.8m 1度 約111km
緯度90度上 1秒 約31.0m 1度 約112km
http://ja.wikipedia.org/wiki/%E7%B7%AF%E5%BA%A6#.E7.B7.AF.E5.BA.A61.E7.A7.92.E3.81.AE.E9.95.B7.E3.81.95

経度

赤道上では約40075 km 緯度90度上では0m
GRS 80地球楕円体表面上の代表的な地点における値は次のとおりである。
緯度00度上 1秒 約30.92m 1度 約111km
緯度35度上 1秒 約25.36m 1度 約92km
緯度90度上 1秒 0m 1度 0km
http://ja.wikipedia.org/wiki/%E7%B5%8C%E5%BA%A6#.E7.B5.8C.E5.BA.A61.E7.A7.92.E3.81.AE.E7.B7.AF.E7.B7.9A.E3.81.AE.E9.95.B7.E3.81.95

二地点の緯度・経度からその距離を計算する

日本は山だらけ〜 技術研究本部 報告書 第一号 平成二十一年八月十五日 公開
http://yamadarake.jp/trdi/report000001.html


・・・を、度分ように改変してみました。

dist <- function(x1, y1, x2, y2, a = 6378137.0, b = 6356752.314140,type="ddd.dddd",splitter=":"){
	if(type=="ddd:mm.mm"){
		xx <- as.numeric(unlist(strsplit(x1,splitter)));x1 <- xx[1]+xx[2]/60
		xx <- as.numeric(unlist(strsplit(y1,splitter)));y1 <- xx[1]+xx[2]/60
		xx <- as.numeric(unlist(strsplit(x2,splitter)));x2 <- xx[1]+xx[2]/60
		xx <- as.numeric(unlist(strsplit(y2,splitter)));y2 <- xx[1]+xx[2]/60
	}
  deg2rad <- function(x){ x * pi / 180 }
  dy <- deg2rad(y1 - y2)
  dx <- deg2rad(x1 - x2)
  my <- deg2rad((y1 + y2) / 2)
  e2 <- (a^2 - b^2) / a^2
  Mnum <- a * (1 - e2)
  W <- sqrt(1 - e2 * sin(my)^2)
  M <- Mnum / W^3
  N <- a / W
  d <- sqrt((dy * M)^2 + (dx * N * cos(my))^2)
  d
}

#XYそれぞれ1分ずれた時の距離のズレ(m)
dist(142+(19.0/60),39+(25.5/60),142+(20.0/60),39+(26.5/60))

("142:20.0","39:25.5","142:19.0","39:26.5",type="ddd:mm.mm",splitter=":")


#1mあたり、何分か?
1/dist("142:19.0","39:25.5","142:19.0","39:26.5",type="ddd:mm.mm",splitter=":")

1/dist("142:20.0","39:25.5","142:19.0","39:25.5",type="ddd:mm.mm",splitter=":")