﻿function getxuelong(dtype)
{
	stopxuelongpan();//停止自动漫游航迹点
	var para="key=chinare2009";
	var ajurl="ajaxxuelonggps.php";
	if(dtype == 1)//在当前地图范围内，抽样选点
	{
		ajurl="ajaxxuelonggps1.php";
		
		var zlev=_map.getZoom();

		var np=20;
		if(zlev < 10) np=20;
		else np=10;

		para +="&npoints="+np;
		para +="&"+getBound();
		cleanMarkerRow();
	}
	else if(dtype == 2)//在指定日期选点
	{
		para +="&day="+document.getElementById("searchday").value;
		cleanMarkerRow();
	}
$.ajax({
	type: "GET",
	url:ajurl,
	dataType: "html",
	data:para,
	beforeSend: function()
	{
		$("#showarea").html("<img src=images/loading.gif border=0><br/>Waiting...");
	},
	error: function(request)
	{
		$("#showarea").html(request.responseText);
	},
	success: function(msg)
	{
		var strss="";
		if (strlen(msg)<20)
		{
			if(dtype == 1)			
				strss="当前图幅内没有找到雪龙GPS航迹点.";
			else
				strss="没有找到雪龙GPS航迹点.";
		}
		else
		{
			nx=xuelongshow(msg,dtype);
			
			
			if(nx > 0)
			{
				if(dtype == 2)
					pan2marker(_fixedrow -1);
				else if(dtype < 1)
					pan2marker1(_fixedrow -2);
			}

			
			if(dtype == 1)
			{		
				get_xuelong_line();
				strss="当前图幅内抽样显示"+nx+"个航迹点。<br/>";
			}
			else if(dtype == 2)
			{
				showXLline();//显示当日连线长度
				strss="以上是<b style='color:#ffff00;background-color:#ff0000'>"+_searchday+"</b>的"+nx+"个整点航迹。<br/>";
			}
			else
			{
				get_xuelong_line();
				strss="";
			}			
		}
		
		strss +=getShowareaButton();
		$("#showarea").html(strss);
		
	}
	});
}

function getShowareaLink()
{
	var strss="";
	strss +=" <b style='cursor:hand' onClick='getxuelong(1)'>[Sample]</b>";
	
	if(rowid >= _fixedrow)
	{
		strss +="&nbsp;&nbsp;<b style='cursor:hand' onClick='cleanXLMarkers()'>[Clear]</b>";
		strss +="&nbsp;&nbsp;<b id='xlshowhide' style='cursor:hand' onClick='hideXLMarkers()'>[Hide]</b>";
	}
	
	strss +="&nbsp;&nbsp;<b style='cursor:hand' onClick='createSearchWindow()'>[Search...]</b>";
	
	return strss;
}

function getShowareaButton()
{
	var strss="";
	strss +=" <input type='button' style= 'width:50px;background:#aaaaff;' onClick='getxuelong(1)' value='Sample' accesskey='s' title='在当前图幅内抽样显示航迹点(alt+s)' />";
	
	if(rowid >= _fixedrow)
	{
		strss +=" <input type='button' style= 'width:50px;' onClick='cleanXLMarkers()' value='Clear' accesskey='c' title='清除所有航迹点(alt+c)' />";
		strss +=" <input id='xlshowhide' type='button' style= 'width:50px;background:#99ff99;' onClick='hideXLMarkersb()' value='Hide' accesskey='h' title='隐藏所有航迹点标记(alt+h)' />";
		strss +=" <input id='xlpanstop' type='button' style= 'width:50px;background:#99ff99;' onClick='panxuelongLine()' value='AutoPan' accesskey='a' title='自动演示航迹(alt+a)' />";
	}
	
	strss +=" <input type='button' style= 'width:50px;background:#ff9900;' onClick='createSearchWindow()' value='Search..' title='按照日期搜索航迹点' />";
	
	return strss;
}

var visiableXLMarkers_=true;
function hideXLMarkers()
{
	if(visiableXLMarkers_)//hide it
	{
		visiableXLMarkers_=false;
		for(var i=_fixedrow-1;i<rowid;i++)
		_markers[i].hide();
		$("#xlshowhide").html("[Show]");
		stopxuelongpan();
	}
	else
	{
		visiableXLMarkers_=true;
		for(var i=_fixedrow-1;i<rowid;i++)
		_markers[i].show();
		$("#xlshowhide").html("[Hide]");
	}
	
}
function stopxuelongpan()
{
	if(_intervalid > 0)
	{
		window.clearInterval(_intervalid);
		_intervalid=0;
  		document.getElementById("xlpanstop").title="自动演示航迹(alt+a)";
		$("#xlpanstop").val("AutoPan");
	}
}
function panxuelongLine()
{
	if(_intervalid > 0)
	{
		stopxuelongpan();
	}
	else
	{
		_currentid=0;
		_intervalid=self.setInterval("panXLline()",3000);
  		document.getElementById("xlpanstop").title="停止演示航迹(alt+a)";
		$("#xlpanstop").val("StopPan");
	}
}
function hideXLMarkersb()
{
	if(visiableXLMarkers_)//hide it
	{
		visiableXLMarkers_=false;
		for(var i=_fixedrow-1;i<rowid;i++)
		_markers[i].hide();
  		document.getElementById("xlshowhide").title="显示所有航迹点(alt+h)";
		$("#xlshowhide").val("Show");
		stopxuelongpan();
	}
	else
	{
		visiableXLMarkers_=true;
		for(var i=_fixedrow-1;i<rowid;i++)
		_markers[i].show();
  		document.getElementById("xlshowhide").title="隐藏所有航迹点(alt+h)";
		$("#xlshowhide").val("Hide");
	}
	
}
function add1xuelong(str,i)
{
	var xy=str.split(",");
	var tt=xy[1];
	var lat=xy[2];
	var lng=xy[3];
	var memo="";
	var memo1="";
	var zlevel=8;
	
	var ic="";
	if(i == 0)
	 memo="“雪龙”号原系乌克兰赫尔松船厂1993年建造的一艘北极供应船, 我国购进后改装成为唯一的极地综合科学考察专用船舶，于1994年代替“极地”号服役至今，已完成多个南北极航次。该船主要技术指标：总长167.0米、型宽22.6米、型深13.5米、满载吃水9.0米、满载排水量21025吨、最大航速18节、续航力20000海里、主机13200千瓦 *1台、副机800千瓦*3台。能在1.1米厚的冰层中（含20公分积雪）以1.5节航速连续破冰前行，并能携带两架直升机。";
	
	memo +="<br/>当前航速："+xy[6]+"节；航向："+xy[7]+"度。";
	
	memo1="<span style='cursor:hand' id=odata><img src=images/cloudsun.png border=0 onClick='getxldata("+xy[0]+",0)' alt='Meteorological Data'><img src=images/dam.png border=0 onClick='getxldata("+xy[0]+",2)' alt='Depth'><img src=images/compass.png border=0 onClick='getxldata("+xy[0]+",1)' alt='Compass'><img src=images/sbe.png border=0 onClick='getxldata("+xy[0]+",3)' alt='SBE'><img src=images/gear.png border=0 onClick='getxldata("+xy[0]+",4)' alt='Engine'></span><br/><span id=info"+xy[0]+"><br/><br/></span>";
	var scolor="blue";
	
	if(i == 0)
	{ 
		ic='H';
		zlevel=5;
		memo1+="<br/>电话：00870 763677986(F站),341210310(B站),773121916(BGAN)；传真:00870 341210311&nbsp;<a href=http://polar.chinare.gov.cn/meteo/record.html?stationen=xuelong target=blank><img src=images/weather.png border=0 alt=实时气象 /></a>&nbsp;<a href='javascript:void(0)' onClick=xopen('http://polar.chinare.gov.cn/xuelong/news/news.php?sid=8') ><img src=images/news.png border=0 alt=雪龙之声 /></a>&nbsp;<a href=http://polar.chinare.gov.cn/xuelong/image_xuelong.html target=blank><img src=images/linefig.png border=0 alt=数据曲线图 /></a>&nbsp;<a href='javascript:void(0)' onClick=xopen('http://polar.chinare.gov.cn/xuelong/seaice.htm') ><img src=images/seaice.png border=0 alt=海冰分布图 /></a>&nbsp;<a href=http://www.oceanweather.com/data/ target=blank><img src=images/wave.png border=0 alt=当前海浪数据 /></a>";
		tt ="雪龙船 "+tt;
		_fixedrow +=1;
	}
	else
	{
		ic=(i-1)%25+1;//icon只有1-25
		//if(i%2 == 0) scolor="green";
	}

          mm=createIconMarker(new GLatLng(lat,lng), ic,scolor,zlevel,tt,memo,1000-i,memo1);
          _map.addOverlay(mm);
          AddMarkerRow(mm,ic,scolor);
}

function xuelongshow(str,dtype)
{
	var xy=str.split("\n");
	for(var i=0;i<xy.length;i++)
	{
		if(dtype > 0)
		add1xuelong(xy[i],i+1);
		else
		add1xuelong(xy[i],i);
	}
	if(xy.length > 0)
		visiableXLMarkers_=true;
	return xy.length;
}

function strlen(str)
{
	var len;
	var i;
	len = 0;
	for (i=0;i<str.length;i++)
	{
	if (str.charCodeAt(i)>255) len+=2; else len++;
	}
	return len;
}
var _ajaxinfo=new Array();
_ajaxinfo[0]=new Array();
_ajaxinfo[1]=new Array();
_ajaxinfo[2]=new Array();
_ajaxinfo[3]=new Array();
_ajaxinfo[4]=new Array();

function getxldata(gpsid,dtype)
{
	var wid="info"+gpsid;

	if(_ajaxinfo[dtype][gpsid])
	{
		show_xl_info(dtype,wid,_ajaxinfo[dtype][gpsid]);
		return;
	}
	
	var ajurl="";
	var strno="";
	if(dtype == 1)//compass
	{
		ajurl="ajaxcompass.php";
		strno="no Compass data found";
	}
	else if(dtype == 2)//depth
	{
		ajurl="ajaxdepth.php";
		strno="no Depth data found";
	}
	else if(dtype == 3)//sbe
	{
		ajurl="ajaxsbe.php";
		strno="no SBE data found";
	}
	else if(dtype == 4)//engine
	{
		ajurl="ajaxengine.php";
		strno="no Engine data found";
	}
	else //weather
	{
		ajurl="ajaxweather.php";
		strno="no Weather data found";
	}

$.ajax({
	type: "GET",
	url: ajurl,
	dataType: "html",
	data:"id="+gpsid,
	beforeSend: function()
	{
		$("#"+wid).html("<img src=images/loading.gif border=0 />");
	},
	error: function(request)
	{
		$("#"+wid).html(request.responseText);
	},
	success: function(msg)
	{
		if (msg.split(",").length < 3)
		{
			$("#"+wid).html(msg);
		}
		else
		{
			show_xl_info(dtype,wid,msg);
			
			_ajaxinfo[dtype][gpsid]=msg;

		}
	}
	});
}

function show_xl_info(dtype,wid,msg)
{
	if(dtype == 1)//compass
		compassShow(wid,msg);
	else if(dtype == 2)//depth
		depthShow(wid,msg);
	else if(dtype == 3)//SBE
		sbeShow(wid,msg);
	else if(dtype == 4)//engine
		engineShow(wid,msg);
	else
		weatherShow(wid,msg);	
}

function weatherShow(wid,str)
{
	var xy=str.split(",");
	var ww="<span style='color:red;background-color:#00eeee'>气象数据</span>("+xy[1]+")<br/>";
	ww+="温度:"+xy[6]+"℃,";
	ww+="湿度:"+xy[7]+"%,";
	ww+="气压:"+xy[8]+"hPa,";
	ww+="风速:"+xy[3]+"m/s,";
	ww+="风向:"+xy[2]+"度";
	
	$("#"+wid).html(ww);			
}


function depthShow(wid,str)
{
	var xy=str.split(",");
	var ww="<span style='color:blue;background-color:#aaaaaa'>测深仪数据</span>("+xy[1]+")<br/>";
	ww+="水深:"+xy[2]+"m";
	
	$("#"+wid).html(ww);			
}


function compassShow(wid,str)
{
	var xy=str.split(",");
	var ww="<span style='color:red;background-color:#0000ff'>罗经数据</span>("+xy[1]+")<br/>";
	ww+="船艏向:"+xy[2]+"°";
	ww+=",船头回转速率:"+xy[3]+"°/min";
	
	$("#"+wid).html(ww);			
}

function sbeShow(wid,str)
{
	var xy=str.split(",");
	var ww="<span style='color:blue;background-color:#eeeeee'>表层海水自动传感器</span>("+xy[1]+")<br/>";
	ww+="水温:"+xy[2]+"℃";
	ww+=",盐度:"+xy[3]+"PSU";
	ww+=",荧光:"+xy[4]+"μg/l";
	ww+=",有色溶解有机物:"+xy[5]+"ppb";
	
	$("#"+wid).html(ww);			
}

function engineShow(wid,str)
{
	var xy=str.split(",");
	var ww="<span style='color:yellow;background-color:#888888'>机舱数据</span>("+xy[1]+")<br/>";
	ww+="主机转速:"+xy[2]+"转/分";
	ww+=",螺距:"+xy[3]+"%";
	ww+=",电网功率:"+xy[7]+"KW";
	ww+=",电压:"+xy[8]+"V";
	ww+=",频率:"+xy[9]+"Hz";
	
	$("#"+wid).html(ww);			
}

 
  
function createSearchWindow() 
{
  var input1 = document.createElement('input');
  
  // 为气泡提示窗口创建动态 DOM 对象，这里我们用 DIV 标签
  var div = document.createElement('div');
  div.style.fontSize = '9pt';
  div.style.width = '200px';
  
  // 创建点名输入框
  input1.id = 'searchday';
  input1.type = 'TEXT';
  input1.name = 'searchday';
  input1.size = '20';
  if(_searchday == "")
  	input1.value = gettoday();  
  else
  	input1.value = _searchday;
  	
  var day = document.createElement('div');
  var tag = document.createTextNode("输入日期(YYYY-MM-DD):");
  div.appendChild(tag);   
  div.appendChild(day);
  day.appendChild(input1);

  var input2 = document.createElement('input');
  input2.id = 'submit';
  input2.type = 'button';
  input2.value = '确定';
  input2.onclick = function ()
  {	
  if(input1.value.length < 1 ) {alert("请输入查询日期");input1.focus();return;}
  _searchday=input1.value;
  getxuelong(2);
  }
  day.appendChild(input2);
  document.getElementById("showarea").innerHTML="";
  document.getElementById("showarea").appendChild(div);
  
}

function gettoday()
{
	var today = new Date(); 
	var day= (today.getDate()+100).toString();
	var mm= (today.getMonth()+1+100).toString();
	var sdate=today.getYear()+"-"+mm.substring(1,3)+"-"+day.substring(1,3);
	return sdate;	
}

function cleanXLMarkers()
{
	cleanMarkerRow();
	$("#showarea").html(getShowareaButton());
	stopxuelongpan();
		
}

var xuelong_line_linking=false;
var xuelong_line_handle=[];

﻿function get_xuelong_line(bDel)
{
	while(xuelong_line_handle.length > 0)
	{
		_map.removeOverlay(xuelong_line_handle.pop());
	}
	if(bDel)//仅仅是删除当前航线
	{
		return;
	}
	
	if(xuelong_line_linking) return;
	else xuelong_line_linking=true;
	
	var zlev=_map.getZoom();
	var np=20;
	if(zlev < 4) np=160;//1、2、3级
	else if(zlev < 7) np=80;//4、5、6级
	else if(zlev < 10) np=40;//7、8、9级
	else if(zlev < 13) np=20;//10、11、12级
	else np=10;//13级以上只显示10个

	var ajurl="ajaxxuelonggps2.php";
	var para="key=chinare2009";
	para +="&npoints="+np;
	para +="&"+getBound();

$.ajax({
	type: "GET",
	url:ajurl,
	dataType: "html",
	data:para,
	beforeSend: function()
	{
	},
	error: function(request)
	{
		$("#showarea").html(request.responseText);
		xuelong_line_linking=false;	
	},
	success: function(msg)
	{
		var xys=msg.split("\n");

		if (xys.length > 1)
		{
			var i;
			var xy=[];
			var daysep=0;
			var dayold=0;
			
			var totaldis=0;
			var templine=null;
			for(i=0;i<xys.length;i++)
			{
				var latlng=xys[i].split(",");
				
				if(i == 1) daysep=latlng[2] - dayold;
				if(i > 1) //判断是否连续
				{
					if( latlng[2] - dayold - daysep > 0.5) //断了
					{
					  if(xy.length > 1)
					  {
						templine=new GPolyline(xy,"#ff0088", 5,0.5);						
						xuelong_line_handle.push(templine);
						totaldis += templine.getLength();
						_map.addOverlay(templine);
					  }
						
					  while(xy.length > 0) xy.pop();						
					}
				}
				dayold=latlng[2];				
				
				xy.push(new GLatLng(latlng[0],latlng[1]));			
			}
			if(xy.length > 1)
			{
				templine=new GPolyline(xy,"#ff0088", 5,0.5);			
				xuelong_line_handle.push(templine);
				totaldis += templine.getLength();
				_map.addOverlay(templine);
			}			
			
			var lenxl=Math.round(totaldis);
			
			$("#_memodiv").html("当前显示雪龙航线长度 "+formatLength_(lenxl)+"["+xys.length+"pts]");
			xy.length=0;
			xys.length=0;
		}
		xuelong_line_linking=false;	
	}
	});
	
}
