ただのSEの備忘録

技術からニュース、くだらない雑学まで何でもまとめるブログ

*

測地系変換をjavascriptでやってみた

   


世界測地⇔日本測地の変換や、度分秒⇔ミリ秒の変換などよく行うかと思います。

しかし、ネットで検索すると計算方法は載っていてもソースコードがないため、実装するのに一苦労しました。

特に今回私は「googlemapAPI」を使用した際に、javascriptでやりたいけど載ってない!!キーッ

となったので、作ったscriptを載せておきます。参考にしてみてください。

スポンサードリンク

//10進数表示(nn.nnnnnnn)をミリ秒表示に変換します。

shapingMilli: function(coord){
return parseInt(coord * 3600000);
},

//ミリ秒表示を10進数表示に変換します。
shapingMilliTo10: function(coord){
return coord / 3600000;
},

//10進数表示を度分秒(60進数)表示に変換します

shapingDohun: function(coord){
var d = parseInt(coord);
var h = parseInt((coord - d) * 60);
var b = parseInt((((coord - d) * 60) - h) * 60 * 1000) / 1000;
return d + "." + h + "." + b;
},

//度分秒(60進数)表示を10進数表示に変換します
shapingDohunTo10: function(coord){
var list = coord.split(".");
return parseFloat(list[0]) + parseFloat(list[1]/60) + (parseFloat(list[2] + "." + list[3])/3600);
},

//世界測地を日本測地に変換します。

shapingWtoJ: function(coord){
var lat = coord.lat + 0.00010696 * coord.lat - 0.000017467 * coord.lon - 0.0046020;
var lon = coord.lon + 0.000046047 * coord.lat + 0.000083049 * coord.lon - 0.010041;
var map = {};
map.lat = lat;
map.lon = lon;
return map;
}

 

また、これらを使ったでもサイトがあるので参考にしてみてください。

デモを見る

 - JavaScript/jQery, 未分類