HTML+javascript写的GIS地图投影
老师总是认为咱们GISER有力量啊!咱们啥语言都能自学啊!吐血!!!
渣渣自学,还能用
<html>
<head>
<title>
地图投影
</title>
</head>
<body>
<p>
<input type="file" id="file">
<input type="submit" id="button1" value="确定" οnclick="readfile()">
</p>
<p>
<th>
中国版图数据
</th>
</p>
<p>
<input type="button" id="button2" value="北京54" οnclick="beijing(canvas)">
<input type="button" id="button3" value="兰伯特投影" οnclick="lanbote(canvas)">
<input type="button" id="button4" value="墨卡托投影" οnclick="mokatuo(canvas)">
</p>
<p>
<th>
世界版图数据
</th>
</p>
<p>
<input type="button" id="button5" value="WGS84" οnclick="WGS(canvas)">
<input type="button" id="button6" value="墨卡托投影" οnclick="mokatuo2(canvas)
</p>
<div id="tt">
</div>
<table width="1600" height="600" border="1">
<tr>
<th scope="col"><canvas name=canvas width="1600px" height="800px"></canvas></th>
</tr>
</table>
<head>
<title>
地图投影
</title>
</head>
<body>
<p>
<input type="file" id="file">
<input type="submit" id="button1" value="确定" οnclick="readfile()">
</p>
<p>
<th>
中国版图数据
</th>
</p>
<p>
<input type="button" id="button2" value="北京54" οnclick="beijing(canvas)">
<input type="button" id="button3" value="兰伯特投影" οnclick="lanbote(canvas)">
<input type="button" id="button4" value="墨卡托投影" οnclick="mokatuo(canvas)">
</p>
<p>
<th>
世界版图数据
</th>
</p>
<p>
<input type="button" id="button5" value="WGS84" οnclick="WGS(canvas)">
<input type="button" id="button6" value="墨卡托投影" οnclick="mokatuo2(canvas)
</p>
<div id="tt">
</div>
<table width="1600" height="600" border="1">
<tr>
<th scope="col"><canvas name=canvas width="1600px" height="800px"></canvas></th>
</tr>
</table>
</body>
<script>
var MAXAMOUNT=500000;
var canvas=document.getElementsByName("canvas")[0];
var x=new Array();
var y=new Array();
for(var i=0;i<MAXAMOUNT;i++)
{
x[i]=0;
y[i]=0;
}
var MAXAMOUNT=500000;
var canvas=document.getElementsByName("canvas")[0];
var x=new Array();
var y=new Array();
for(var i=0;i<MAXAMOUNT;i++)
{
x[i]=0;
y[i]=0;
}
/*中国版图*/
/*墨卡托投影*/
var B00=0;//原始纬线
var L00=0;//中央经线
function readfile()
{
var file=document.getElementById("file").files[0];
var reader=new FileReader();
reader.readAsText(file);
reader.onload = function (w)
{
var fileText = w.target.result.split("\n");
for(var i=0;i<fileText.length;i++)
{
if(fileText[i].length!=1&&fileText[i]!="END") //排除END行和序号行
{
var arr=fileText[i].split(",");//以逗号分隔
x[i]=arr[0];
y[i]=arr[1];
}
else
{
x[i]=0;
y[i]=0;
}
}
}
}
/*北京54坐标系参数*/
var a=6378245; //长半轴
var b=63756863.01877;//短半轴
var e=1/298.3;//扁率
var r1=6399698.90178;//极曲率半径
var e1=0.006693421622966;//第一偏心率平方
var e2=0.006738525414684;//第二偏心率平方
var B00=0;//原始纬线
var L00=0;//中央经线
function readfile()
{
var file=document.getElementById("file").files[0];
var reader=new FileReader();
reader.readAsText(file);
reader.onload = function (w)
{
var fileText = w.target.result.split("\n");
for(var i=0;i<fileText.length;i++)
{
if(fileText[i].length!=1&&fileText[i]!="END") //排除END行和序号行
{
var arr=fileText[i].split(",");//以逗号分隔
x[i]=arr[0];
y[i]=arr[1];
}
else
{
x[i]=0;
y[i]=0;
}
}
}
}
/*北京54坐标系参数*/
var a=6378245; //长半轴
var b=63756863.01877;//短半轴
var e=1/298.3;//扁率
var r1=6399698.90178;//极曲率半径
var e1=0.006693421622966;//第一偏心率平方
var e2=0.006738525414684;//第二偏心率平方
function jingwei_beijing(canvas) //中国版图北京54经纬线
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
//ctx.fillStyle='black';
//画经线
for(var i=0;i<1600;i+=50)
{
ctx.beginPath();
ctx.moveTo(i, 0);
ctx.lineTo(i,800);
ctx.fillText(i/10,0,800-i)//纬线刻度
ctx.stroke();
ctx.closePath();
}
//画纬线
for(var i=0;i<1600;i+=50)
{
ctx.beginPath();
ctx.moveTo(0, i);
ctx.lineTo(1600,i);
ctx.fillText(i/10,i,800);//经线刻度
ctx.stroke();
ctx.closePath();
}
}
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
//ctx.fillStyle='black';
//画经线
for(var i=0;i<1600;i+=50)
{
ctx.beginPath();
ctx.moveTo(i, 0);
ctx.lineTo(i,800);
ctx.fillText(i/10,0,800-i)//纬线刻度
ctx.stroke();
ctx.closePath();
}
//画纬线
for(var i=0;i<1600;i+=50)
{
ctx.beginPath();
ctx.moveTo(0, i);
ctx.lineTo(1600,i);
ctx.fillText(i/10,i,800);//经线刻度
ctx.stroke();
ctx.closePath();
}
}
function jingwei_lanbote(canvas) //中国版图兰伯特投影经纬线
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
var Ox=800;
var Oy=-600;//兰伯特投影的圆心在屏幕上坐标是(500,-600)
var r=1600;//半径为1600
//画经线,5度一条,画72条
for(var i=0;i<72;i++)
{
var x=r*Math.sin(Math.PI*5*i/180);
var y=r*Math.cos(Math.PI*5*i/180);
ctx.beginPath();
ctx.moveTo(Ox, Oy);
ctx.lineTo(Ox-x,Oy+y);
ctx.stroke();
ctx.closePath();
}
//画纬线,5度一条,画18条
for (var i=0;i<=18;i++)
{
var x1=0*Math.PI;
var y1=Math.PI*2;
ctx.arc(Ox,Oy,r/18*i,x1,y1,true);
ctx.stroke();
ctx.closePath();
}
}
/*北京54投影*/
function beijing(canvas)
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_beijing(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='red';
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
var Ox=800;
var Oy=-600;//兰伯特投影的圆心在屏幕上坐标是(500,-600)
var r=1600;//半径为1600
//画经线,5度一条,画72条
for(var i=0;i<72;i++)
{
var x=r*Math.sin(Math.PI*5*i/180);
var y=r*Math.cos(Math.PI*5*i/180);
ctx.beginPath();
ctx.moveTo(Ox, Oy);
ctx.lineTo(Ox-x,Oy+y);
ctx.stroke();
ctx.closePath();
}
//画纬线,5度一条,画18条
for (var i=0;i<=18;i++)
{
var x1=0*Math.PI;
var y1=Math.PI*2;
ctx.arc(Ox,Oy,r/18*i,x1,y1,true);
ctx.stroke();
ctx.closePath();
}
}
/*北京54投影*/
function beijing(canvas)
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_beijing(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='red';
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
ctx.beginPath();
ctx.moveTo(x[i]*10,800-y[i]*10);
ctx.lineTo(x[i+1]*10,800-y[i+1]*10);
ctx.stroke();
}
}
}
{
if((x[i]!=0)&&(x[i+1]!=0))
{
ctx.beginPath();
ctx.moveTo(x[i]*10,800-y[i]*10);
ctx.lineTo(x[i+1]*10,800-y[i+1]*10);
ctx.stroke();
}
}
}
/*兰伯特投影*/
var B0=0;//原始纬线
var L0=105*Math.PI/180;//中央经线
var B1=20*Math.PI/180;//第一标准纬线
var B2=40*Math.PI/180;//第二标准纬线
/*兰伯特投影*/
function lanbote(canvas)
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_lanbote(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='red';
/*mB1和mB2为标准纬线B1和B2处的m值*/
var mB1=Math.cos(B1)/Math.sqrt(1-e1*Math.pow(Math.sin(B1),2));
var mB2=Math.cos(B2)/Math.sqrt(1-e1*Math.pow(Math.sin(B2),2));
/*tB1和tB2位标准纬线B1和B2处的t值*/
var tB1=Math.tan(Math.PI/4-B1/2)/((Math.pow((1-e1*Math.sin(B1)),e1/2))/Math.pow((1+e1*Math.sin(B1)),e1/2));
var tB2=Math.tan(Math.PI/4-B2/2)/((Math.pow((1-e1*Math.sin(B2)),e1/2))/Math.pow((1+e1*Math.sin(B2)),e1/2));
var n=Math.log(mB1/mB2,Math.E)/Math.log(tB1/tB2,Math.E);
var f=mB1/(n*Math.pow(tB1,n));
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
var r1=a * f * Math.pow(Math.tan(Math.PI / 4 - (y[i] * Math.PI / 180) / 2) / Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180))), (Math.sqrt(e1) / 2)), n);
var r2=a * f * Math.pow(Math.tan(Math.PI / 4 - (y[i+1] * Math.PI / 180) / 2) / Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i+1] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i+1] * Math.PI / 180))), (Math.sqrt(e1) / 2)), n);
var ct1=n * (x[i] * Math.PI / 180-L0);
var ct2=n * (x[i+1] * Math.PI / 180-L0);
var xx1=a * f - r1 * Math.cos(ct1);
var yy1 = r1 * Math.sin(ct1);
var xx2=a * f - r2 * Math.cos(ct2);
var yy2 = r2 * Math.sin(ct2);
ctx.beginPath();
ctx.moveTo(yy1*0.0001+800,800-xx1*0.0001);
ctx.lineTo(yy2*0.0001+800,800-xx2*0.0001);
ctx.stroke();
}
}
}
var B0=0;//原始纬线
var L0=105*Math.PI/180;//中央经线
var B1=20*Math.PI/180;//第一标准纬线
var B2=40*Math.PI/180;//第二标准纬线
/*兰伯特投影*/
function lanbote(canvas)
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_lanbote(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='red';
/*mB1和mB2为标准纬线B1和B2处的m值*/
var mB1=Math.cos(B1)/Math.sqrt(1-e1*Math.pow(Math.sin(B1),2));
var mB2=Math.cos(B2)/Math.sqrt(1-e1*Math.pow(Math.sin(B2),2));
/*tB1和tB2位标准纬线B1和B2处的t值*/
var tB1=Math.tan(Math.PI/4-B1/2)/((Math.pow((1-e1*Math.sin(B1)),e1/2))/Math.pow((1+e1*Math.sin(B1)),e1/2));
var tB2=Math.tan(Math.PI/4-B2/2)/((Math.pow((1-e1*Math.sin(B2)),e1/2))/Math.pow((1+e1*Math.sin(B2)),e1/2));
var n=Math.log(mB1/mB2,Math.E)/Math.log(tB1/tB2,Math.E);
var f=mB1/(n*Math.pow(tB1,n));
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
var r1=a * f * Math.pow(Math.tan(Math.PI / 4 - (y[i] * Math.PI / 180) / 2) / Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180))), (Math.sqrt(e1) / 2)), n);
var r2=a * f * Math.pow(Math.tan(Math.PI / 4 - (y[i+1] * Math.PI / 180) / 2) / Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i+1] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i+1] * Math.PI / 180))), (Math.sqrt(e1) / 2)), n);
var ct1=n * (x[i] * Math.PI / 180-L0);
var ct2=n * (x[i+1] * Math.PI / 180-L0);
var xx1=a * f - r1 * Math.cos(ct1);
var yy1 = r1 * Math.sin(ct1);
var xx2=a * f - r2 * Math.cos(ct2);
var yy2 = r2 * Math.sin(ct2);
ctx.beginPath();
ctx.moveTo(yy1*0.0001+800,800-xx1*0.0001);
ctx.lineTo(yy2*0.0001+800,800-xx2*0.0001);
ctx.stroke();
}
}
}
/*墨卡托投影*/
/*墨卡托投影经纬网*/
/*WGS84坐标系 基本参数*/
var a1 = 6378137;//长半轴
var b1 = 6356752.3142;//短半轴
var e01 = 0.00669437999013;//第一偏心率平方
var e11 = 0.006739496742227;//第二偏心率平方
function jingwei_mokatuo(canvas)
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
//画经线
for(var i=0;i<1600;i+=50)
{
ctx.beginPath();
ctx.moveTo(i, 0);
ctx.lineTo(i,800);
ctx.stroke();
ctx.closePath();
}
//画纬线
for(var i=0;i<1600;i+=50)
{
var jjz = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((i * Math.PI / 180) - 0);
ctx.beginPath();
ctx.moveTo(0, jjz*0.00001+50);
ctx.lineTo(1600,jjz*0.00001+50);
ctx.fillText(i/10,i,800);//经线刻度
ctx.stroke();
ctx.closePath();
}
/*墨卡托投影经纬网*/
/*WGS84坐标系 基本参数*/
var a1 = 6378137;//长半轴
var b1 = 6356752.3142;//短半轴
var e01 = 0.00669437999013;//第一偏心率平方
var e11 = 0.006739496742227;//第二偏心率平方
function jingwei_mokatuo(canvas)
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
//画经线
for(var i=0;i<1600;i+=50)
{
ctx.beginPath();
ctx.moveTo(i, 0);
ctx.lineTo(i,800);
ctx.stroke();
ctx.closePath();
}
//画纬线
for(var i=0;i<1600;i+=50)
{
var jjz = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((i * Math.PI / 180) - 0);
ctx.beginPath();
ctx.moveTo(0, jjz*0.00001+50);
ctx.lineTo(1600,jjz*0.00001+50);
ctx.fillText(i/10,i,800);//经线刻度
ctx.stroke();
ctx.closePath();
}
}
function mokatuo(canvas)
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_mokatuo(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='red';
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
var xxx1 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * Math.log((Math.tan(Math.PI / 4 + (y[i] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180))), (Math.sqrt(e1) / 2)), Math.E);
var yyy1 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * ((x[i] * Math.PI / 180) - L0);
var xxx2 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * Math.log((Math.tan(Math.PI / 4 + (y[i+1] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i+1] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i+1]* Math.PI / 180))), (Math.sqrt(e1) / 2)), Math.E);
var yyy2 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * ((x[i+1] * Math.PI / 180) - L0);
ctx.beginPath();
ctx.moveTo(yyy1*0.001+800,800-xxx1*0.001);
ctx.lineTo(yyy2*0.001+800,800-xxx2*0.001);
ctx.stroke();
}
}
}
/*世界版图*/
/*WGS84*/
/*WGS84经纬*/
/*WGS84坐标系 基本参数*/
var a1 = 6378137;//长半轴
var b1 = 6356752.3142;//短半轴
var e11 = 0.00669437999013;//第一偏心率平方
var e12 = 0.006739496742227;//第二偏心率平方
function jingwei_WGS(canvas)
{
var x11=0;
var y11=0;
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
/*经度360,每5度一根线,一共72根*/
for(var i=0;i<72;i++)
{
ctx.beginPath();
ctx.moveTo(x11, 0);
ctx.lineTo(x11,800);
x11=x11+23;
ctx.stroke();
ctx.closePath();
}
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_mokatuo(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='red';
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
var xxx1 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * Math.log((Math.tan(Math.PI / 4 + (y[i] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i] * Math.PI / 180))), (Math.sqrt(e1) / 2)), Math.E);
var yyy1 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * ((x[i] * Math.PI / 180) - L0);
var xxx2 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * Math.log((Math.tan(Math.PI / 4 + (y[i+1] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e1) * Math.sin(y[i+1] * Math.PI / 180)) / (1 + Math.sqrt(e1) * Math.sin(y[i+1]* Math.PI / 180))), (Math.sqrt(e1) / 2)), Math.E);
var yyy2 = ((Math.pow(a, 2) / b) / Math.sqrt(1 + e2)) * ((x[i+1] * Math.PI / 180) - L0);
ctx.beginPath();
ctx.moveTo(yyy1*0.001+800,800-xxx1*0.001);
ctx.lineTo(yyy2*0.001+800,800-xxx2*0.001);
ctx.stroke();
}
}
}
/*世界版图*/
/*WGS84*/
/*WGS84经纬*/
/*WGS84坐标系 基本参数*/
var a1 = 6378137;//长半轴
var b1 = 6356752.3142;//短半轴
var e11 = 0.00669437999013;//第一偏心率平方
var e12 = 0.006739496742227;//第二偏心率平方
function jingwei_WGS(canvas)
{
var x11=0;
var y11=0;
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
/*经度360,每5度一根线,一共72根*/
for(var i=0;i<72;i++)
{
ctx.beginPath();
ctx.moveTo(x11, 0);
ctx.lineTo(x11,800);
x11=x11+23;
ctx.stroke();
ctx.closePath();
}
/*纬度180度,每5度一根线,一共36根*/
for(var i=0;i<36;i++)
{
ctx.beginPath();
ctx.moveTo(0, y11);
ctx.lineTo(1600,y11);
y11=y11+23;
ctx.stroke();
ctx.closePath();
}
for(var i=0;i<36;i++)
{
ctx.beginPath();
ctx.moveTo(0, y11);
ctx.lineTo(1600,y11);
y11=y11+23;
ctx.stroke();
ctx.closePath();
}
}
function WGS(canvas)
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_WGS(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='blue';
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
ctx.beginPath();
ctx.moveTo(x[i]*4+800,500-y[i]*4);
ctx.lineTo(x[i+1]*4+800,500-y[i+1]*4);
ctx.stroke();
}
}
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_WGS(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='blue';
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
ctx.beginPath();
ctx.moveTo(x[i]*4+800,500-y[i]*4);
ctx.lineTo(x[i+1]*4+800,500-y[i+1]*4);
ctx.stroke();
}
}
}
/*墨卡托投影世界*/
function jingwei_mokatuo2(canvas)
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
var jx1=0;
var jy1=0;
var z=0;
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
//画经线
for(var i=0;i<1600;i+=23)
{
ctx.beginPath();
ctx.moveTo(i, 0);
ctx.lineTo(i,800);
ctx.stroke();
ctx.closePath();
}
//画纬线
for(var i=0;i<1600;i+=23)
{
var jjz = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((i * Math.PI / 180) - 0);
ctx.beginPath();
ctx.moveTo(0, jjz*0.00001+20);
ctx.lineTo(1600,jjz*0.00001+20);
ctx.stroke();
ctx.closePath();
}
function jingwei_mokatuo2(canvas)
{
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
var jx1=0;
var jy1=0;
var z=0;
var ctx = canvas.getContext("2d");
ctx.save();
ctx.lineWidth=1;
ctx.strokeStyle='black';
//画经线
for(var i=0;i<1600;i+=23)
{
ctx.beginPath();
ctx.moveTo(i, 0);
ctx.lineTo(i,800);
ctx.stroke();
ctx.closePath();
}
//画纬线
for(var i=0;i<1600;i+=23)
{
var jjz = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((i * Math.PI / 180) - 0);
ctx.beginPath();
ctx.moveTo(0, jjz*0.00001+20);
ctx.lineTo(1600,jjz*0.00001+20);
ctx.stroke();
ctx.closePath();
}
}
function mokatuo2(canvas)
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_mokatuo2(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='blue';
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
var xxx1 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * Math.log((Math.tan(Math.PI / 4 + (y[i] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e01) * Math.sin(y[i] * Math.PI / 180)) / (1 + Math.sqrt(e01) * Math.sin(y[i] * Math.PI / 180))), (Math.sqrt(e01) / 2)), Math.E);
var yyy1 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((x[i] * Math.PI / 180));
var xxx2 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * Math.log((Math.tan(Math.PI / 4 + (y[i+1] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e01) * Math.sin(y[i+1] * Math.PI / 180)) / (1 + Math.sqrt(e01) * Math.sin(y[i+1]* Math.PI / 180))), (Math.sqrt(e01) / 2)), Math.E);
var yyy2 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((x[i+1] * Math.PI / 180));
ctx.beginPath();
ctx.moveTo(yyy1*0.00003+800,500-xxx1*0.00002);
ctx.lineTo(yyy2*0.00003+800,500-xxx2*0.00002);
ctx.stroke();
}
}
{
var ctx = canvas.getContext("2d");
ctx.clearRect(0,0,1600,800);
jingwei_mokatuo2(canvas);
ctx.lineWidth =1.5;
ctx.strokeStyle ='blue';
for(var i=0;i<MAXAMOUNT-1;i++)
{
if((x[i]!=0)&&(x[i+1]!=0))
{
var xxx1 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * Math.log((Math.tan(Math.PI / 4 + (y[i] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e01) * Math.sin(y[i] * Math.PI / 180)) / (1 + Math.sqrt(e01) * Math.sin(y[i] * Math.PI / 180))), (Math.sqrt(e01) / 2)), Math.E);
var yyy1 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((x[i] * Math.PI / 180));
var xxx2 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * Math.log((Math.tan(Math.PI / 4 + (y[i+1] * Math.PI / 180) / 2)) * Math.pow(((1 - Math.sqrt(e01) * Math.sin(y[i+1] * Math.PI / 180)) / (1 + Math.sqrt(e01) * Math.sin(y[i+1]* Math.PI / 180))), (Math.sqrt(e01) / 2)), Math.E);
var yyy2 = ((Math.pow(a1, 2) / b1) / Math.sqrt(1 + e11)) * ((x[i+1] * Math.PI / 180));
ctx.beginPath();
ctx.moveTo(yyy1*0.00003+800,500-xxx1*0.00002);
ctx.lineTo(yyy2*0.00003+800,500-xxx2*0.00002);
ctx.stroke();
}
}
}
</script>
</html>