javaScriptで測量計算


 
SIN COS TAN
 

 測量計算はSIN,COS,TANが使えないといけません。javaScriptでは関数も MATHオブジェクトです。
<SCRIPT LANGUAGE="JavaScript">
PI=Math.PI
A=Math.sin (30/180*PI)
document.write("π=",PI”<BR>");
document.write("sin(30°)=",A、”<BR>");
</SCRIPT>


 いけそうですね。

 
文字列と数値
 

角度はLBのように1802030.00の形式にしましょう。
北から時計回りに0〜360度とします。

<HEAD>
<SCRIPT LANGUAGE="JavaScript">
	var L;
        var D;
	var F;
	var B;
	var degr; 
	var radi
	function DFB() {
                        L=document.IN.Lati.value;
			 D=eval(L.substring(0,3));
			 F=eval(L.substring(3,5));
			 B=eval(L.substring(5,10));
				PI=Math.PI;
		    degr=D+F/60+B/3600;
			 radi=degr/180*PI;

			document.IN.D.value=D;
			document.IN.F.value=F;
			document.IN.B.value=B;
			document.IN.deg.value=degr;
			document.IN.rad.value=radi;
</SCRIPT>
</HEAD>

<FORM NAME='IN' >
角度=<INPUT  NAME='Lati' onChange="DFB()">注)度は3桁:75°−>  075<br>
<INPUT TYPE='button' NAME='CAL' VALUE='分解' size=20><br>
度=<INPUT  NAME='D' size=7>分=<INPUT  NAME='F' size=7>秒=<INPUT  NAME='B' size=7><br>
<INPUT  NAME='degr' size=7>度=<INPUT  NAME='radi' size=20>ラジアン<br>
</FORM>

角度=注)度は3桁:75°−>  075

度=分=秒=

度=ラジアン

 

少数点でエラー
 

 角度の入力ルーチンも出来たので、色んなケースを入力して チエック。順調と思っていたらエラケースがある。色々 試してみると、秒の読み取りでエラーが発生する。絞り込んで 行くと秒の頭が0の場合ということになった。
 javaScriptは厳密な変数の型を宣言しない。文字列と数値を加算しようとすると、数値が文字列に変換され、文字列の連結が行われる。  この辺がファジーで測量計算にはjavaScriptは使えないと言われる。確かに そうなのだが。
 1冊手元に置いているjavaScriptの本からeval()関数を見付けて 対処したつもりだが。0をnulで拾っておかしくなっている とは想像できる。マイクロソフトのサイトでリファランスを読んでみた。 javaScriptはネットスケープの商標でIEに搭載されているのは、 jScriptということだ。そして、浮動小数点数を含む文字列には parseFloat(numString)を使うことになっていた。


2003.9.20
by Kon