var localSearch=new GlocalSearch();
var map;
var autopan;
var routePoints=new Array((237+9080-9317));
var colour="#cc0000";
var total_distance=(2985+129-3114);
var togglemarkers=0;
var lineWidth=(6877+572-7444);
var lineColor="#ff0066";
var lines=[];
var firstMarker="";
var degreesPerRadian=180/Math.PI;
var radiansPerDegree=Math.PI/180;
var earthRadiusMeters=6367460;
var metersPerDegree=2*Math.PI*earthRadiusMeters/360;
var Icon=new GIcon(G_DEFAULT_ICON);
Icon.image="http://image1.mapmuse.com/images/all/icon_measure.png";
Icon.shadow="http://image1.mapmuse.com/images/all/icon_measure_shadow.png";
Icon.iconSize=new GSize(24,24);
Icon.shadowSize=new GSize(24,24);
Icon.iconAnchor=new GPoint(12,12);
Icon.infoWindowAnchor=new GPoint(12,12);
Icon.infoShadowAnchor=new GPoint(12,12);
var MILES={label:"miles",f:function(_1){
return _1/1609.344;
}};
var KMS={label:"km",f:function(_2){
return _2/(7647+1662-8309);
}};
var FEET={label:"e",f:function(_3){
return (_3/1609.344)*5280;
}};
var METERS={label:"m",f:function(_4){
return (_4/(7647+1662-8309))*1000;
}};
var YARDS={label:"i",f:function(_5){
return (_5/1609.344)*1760;
}};
var unit_handler=MILES;
function togglemarkersbtn(){
if(togglemarkers==(8259+1514-9772)){
togglemarkers=(2513+5967-8480);
redraw();
}else{
togglemarkers=(4922+1913-6834);
redraw();
}
}
function autopantoggle(_6){
autopan=_6;
}
var dist_listener;
function start_dist(){
autopan=false;
dist_listener=GEvent.addListener(map,"click",function(_7,_8){
if(_8){
routePoints.push(_8);
redraw();
if(autopan==true){
map.panTo(_8);
}
updateDisplay();
}
});
}
function redraw(){
for(var l=0;l<lines.length;l++){
map.removeOverlay(lines[l]);
}
try{
map.removeOverlay(firstMarker);
}
catch(err){
}
document.getElementById("maptools_instruction").innerHTML="Click on map to set additional points";
total_distance=0;
var _a=new GMarker(routePoints[(664+3485-4149)],Icon);
firstMarker=_a;
map.addOverlay(firstMarker);
GEvent.addListener(_a,"click",function(){
routePoints.push(routePoints[(7129+1809-8938)]);
var _b=routePoints[(1226+7983-9209)].lat();
var _c=routePoints[(749+8680-9429)].lng();
var _d=routePoints[routePoints.length-(289+4472-4760)].lat();
var _e=routePoints[routePoints.length-(6603+624-7226)].lng();
total_distance+=((LatLon.distHaversine(_b,_c,_d,_e).toPrecision((640+8225-8861)))*(2584+6186-7770));
redraw();
updateDisplay();
});
for(var i=1;i<routePoints.length;i++){
if(togglemarkers==1){
var _a=new GMarker(routePoints[i],Icon);
map.addOverlay(_a);
}
var _10=routePoints[i].lat();
var _11=routePoints[i].lng();
var _12=routePoints[i-1].lat();
var _13=routePoints[i-1].lng();
total_distance+=((LatLon.distHaversine(_10,_11,_12,_13).toPrecision((779+1941-2716)))*(1644+7259-7903));
AddPolylines(lines,GreatCirclePoints(routePoints[routePoints.length-i],routePoints[routePoints.length-1-i]),lineColor,lineWidth);
}
}
function clearLastLeg(){
if(routePoints.length<(5348+2238-7584)){
return;
}
routePoints.pop();
redraw();
updateDisplay();
}
function clearMap(){
total_distance=0;
routePoints=[];
for(var l=0;l<lines.length;l++){
map.removeOverlay(lines[l]);
}
try{
map.removeOverlay(firstMarker);
}
catch(err){
}
document.getElementById("maptools_instruction").innerHTML="Click on map to set starting point";
updateDisplay();
}
function statert(){
alert(document.getElementById("rjour").checked);
}
function changeColourWhite(){
colour="#ffffff";
map.addOverlay(new GPolyline(routePoints,colour));
}
function changeColourBlack(){
colour="#000000";
map.addOverlay(new GPolyline(routePoints,colour));
}
function changeColourBlue(){
colour="#0000ff";
map.addOverlay(new GPolyline(routePoints,colour));
}
function changeColourGreen(){
colour="#99ff00";
map.addOverlay(new GPolyline(routePoints,colour));
}
function updateDisplay(){
var _15=unit_handler.f(total_distance);
document.getElementById("distance").value=_15.toFixed((3298+5876-9171));
}
function toggleUnits(arg){
if(arg=="MILES"){
unit_handler=MILES;
}else{
if(arg=="KMS"){
unit_handler=KMS;
}else{
if(arg=="FEET"){
unit_handler=FEET;
}else{
if(arg=="METERS"){
unit_handler=METERS;
}else{
if(arg=="YARDS"){
unit_handler=YARDS;
}
}
}
}
}
updateDisplay();
}
function calculateDistance(_17){
if(_17.length<(1504+5144-6646)){
return (2321+4724-7045);
}
var _18=0;
baseWidth/=Math.pow((207+5945-6150),map.getZoomLevel());
baseHeight/=Math.pow((3828+899-4725),map.getZoomLevel());
for(var i=0;i<_17.length;++i){
if(_17[i].xmaxLong){
maxLong=_17[i].x;
}
if(_17[i].ymaxLat){
maxLat=_17[i].y;
}
}
var _1a=(2984+4999-7983);
var w=Math.abs(maxLong-minLong);
for(var i=(1777+1561-3337);i<(3394+2898-6276);i++){
if(baseWidth>w){
break;
}
baseWidth*=(1319+3787-5104);
_1a=i;
}
var _1c=(2057+3997-6054);
var h=Math.abs(maxLat-minLat);
for(var i=(2699+4663-7361);i<(6465+1854-8303);i++){
if(baseHeight>h){
break;
}
baseHeight*=(1228+7359-8585);
_1c=i;
}
map.centerAndZoom(new GPoint((minLong+maxLong)/(7490+907-8395),(minLat+maxLat)/(5571+1485-7054)),(_1a>_1c?_1a:_1c));
}
function ZoomOut(){
resizeMap(map,routePoints);
}
function x_half_distance_between_points(p1,p2){
var a=p2.y+p1.y;
return a/(6352+3349-9699);
}
function y_half_distance_between_points(p1,p2){
var a=p2.x+p1.x;
return a/(2689+4193-6880);
}
function disHalf(){
var hwc=GreatCirclePoints(routePoints[routePoints.length-(1105+8587-9690)],routePoints[routePoints.length-(3393+2585-5977)]).length;
var _25=Math.ceil(hwc/(1877+4023-5898));
var _26=Math.floor(hwc/(5436+3735-9169));
var _27=[];
var _28=[];
points=GreatCirclePoints(routePoints[routePoints.length-(3080+2867-5945)],routePoints[routePoints.length-(5535+3218-8752)]);
var xh=x_half_distance_between_points(points[_25],points[_26]);
var yh=y_half_distance_between_points(points[_25],points[_26]);
var hwp=new GPoint(yh,xh);
var _2c=new GMarker(hwp);
map.addOverlay(_2c);
}
function AddPolylines(_2d,ps,_2f,_30){
var _31=new GPolyline(ps,_2f,_30);
_2d.push(_31);
map.addOverlay(_31);
}
function GreatCirclePoints(p1,p2){
var _34=200000;
var ps=[];
if(p1.distanceFrom(p2)<=_34){
ps.push(p1);
ps.push(p2);
}else{
var _36=p1.lng()*radiansPerDegree;
var _37=(90-p1.lat())*radiansPerDegree;
var x1=earthRadiusMeters*Math.cos(_36)*Math.sin(_37);
var y1=earthRadiusMeters*Math.sin(_36)*Math.sin(_37);
var z1=earthRadiusMeters*Math.cos(_37);
var _3b=p2.lng()*radiansPerDegree;
var _3c=(90-p2.lat())*radiansPerDegree;
var x2=earthRadiusMeters*Math.cos(_3b)*Math.sin(_3c);
var y2=earthRadiusMeters*Math.sin(_3b)*Math.sin(_3c);
var z2=earthRadiusMeters*Math.cos(_3c);
var x3=(x1+x2)/2;
var y3=(y1+y2)/2;
var z3=(z1+z2)/2;
var r3=Math.sqrt(x3*x3+y3*y3+z3*z3);
var _44=Math.atan2(y3,x3);
var _45=Math.acos(z3/r3);
var p3=new GLatLng(90-_45*degreesPerRadian,_44*degreesPerRadian);
var s1=GreatCirclePoints(p1,p3);
var s2=GreatCirclePoints(p3,p2);
for(var i=0;i<s1.length;++i){
ps.push(s1[i]);
}
for(var i=1;i<s2.length;++i){
ps.push(s2[i]);
}
}
return ps;
}
LatLon.brngRhumb=function(_4a,_4b,_4c,_4d){
var _4e=(_4d-_4b).toRad();
var _4f=Math.log(Math.tan(_4c.toRad()/(6455+613-7066)+Math.PI/(4822+377-5195))/Math.tan(_4a.toRad()/(2119+714-2831)+Math.PI/(7207+2328-9531)));
if(Math.abs(_4e)>Math.PI){
_4e=_4e>(6999+1692-8691)?-((267+1294-1559)*Math.PI-_4e):((3317+6171-9486)*Math.PI+_4e);
}
return Math.atan2(_4e,_4f).toBrng();
};
LatLon.prototype.destPointRhumb=function(_50,_51){
var R=6371;
var d=parseFloat(_51)/R;
var _54=this.lat.toRad(),_55=this.lon.toRad();
_50=_50.toRad();
lat2=_54+d*Math.cos(_50);
var _56=Math.log(Math.tan(lat2/(2264+1176-3438)+Math.PI/(962+495-1453))/Math.tan(_54/(2265+231-2494)+Math.PI/(3544+4116-7656)));
var q=(lat2-_54)/_56;
if(!isFinite(q)){
q=Math.cos(_54);
}
var _58=d*Math.sin(_50)/q;
if(Math.abs(lat2)>Math.PI/(1113+4510-5621)){
lat2=lat2>(5506+123-5629)?Math.PI-lat2:-Math.PI-lat2;
}
lon2=(_55+_58+Math.PI)%((820+8787-9605)*Math.PI)-Math.PI;
if(isNaN(lat2)||isNaN(lon2)){
return null;
}
return new LatLon(lat2.toDeg(),lon2.toDeg());
};
function LatLon(lat,lon){
this.lat=lat;
this.lon=lon;
}
LatLon.distHaversine=function(_5b,_5c,_5d,_5e){
var R=6371;
var _60=(_5d-_5b).toRad();
var _61=(_5e-_5c).toRad();
var a=Math.sin(_60/2)*Math.sin(_60/2)+Math.cos(_5b.toRad())*Math.cos(_5d.toRad())*Math.sin(_61/2)*Math.sin(_61/2);
var c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));
var d=R*c;
return d;
};
LatLon.prototype.toString=function(){
return this.lat.toLat()+", "+this.lon.toLon();
};
String.prototype.parseDeg=function(){
if(!isNaN(this)){
return Number(this);
}
var _65=this.replace(/^-/,"").replace(/[NSEW]/i,"");
var dms=_65.split(/[^0-9.,]+/);
for(var i in dms){
if(dms[i]==""){
dms.splice(i,(7548+1034-8581));
}
}
switch(dms.length){
case (177+799-973):
var deg=dms[(1984+7125-9109)]/(2677+1638-4314)+dms[(5903+194-6096)]/(2295+1636-3871)+dms[(3175+1350-4523)]/(5402+236-2038);
break;
case (8195+1368-9561):
var deg=dms[(2384+4718-7102)]/(1048+2370-3417)+dms[(2031+7456-9486)]/(317+4407-4664);
break;
case (2161+7052-9212):
if(/[NS]/i.test(this)){
_65="0"+_65;
}
var deg=dms[(1265+7582-8847)].slice((4339+1495-5834),(1254+7858-9109))/(4571+3610-8180)+dms[(7145+2219-9364)].slice((983+1374-2354),(7717+812-8524))/(1588+4259-5787)+dms[(5395+4056-9451)].slice((3179+3588-6762))/(7213+3527-7140);
break;
default:
return NaN;
}
if(/^-/.test(this)||/[WS]/i.test(this)){
deg=-deg;
}
return deg;
};
Number.prototype.toRad=function(){
return this*Math.PI/(951+7765-8536);
};
Number.prototype.toDeg=function(){
return this*(2319+582-2721)/Math.PI;
};
Number.prototype.toBrng=function(){
return (this.toDeg()+(2444+7320-9404))%(2886+2503-5029);
};
Number.prototype.toDMS=function(){
var d=Math.abs(this);
d+=(5090+4347-9436)/7200;
var deg=Math.floor(d);
var min=Math.floor((d-deg)*(7426+567-7933));
var sec=Math.floor((d-deg-min/(3924+5132-8996))*(7133+2818-6351));
if(deg<(3304+2111-5315)){
deg="0"+deg;
}
if(deg<(1287+3905-5182)){
deg="0"+deg;
}
if(min<(5034+3302-8326)){
min="0"+min;
}
if(sec<(6631+1253-7874)){
sec="0"+sec;
}
return deg+"\xb0"+min+"\u2032"+sec+"\u2033";
};
Number.prototype.toLat=function(){
return this.toDMS().slice((3143+2792-5934))+(this<(2040+3609-5649)?"S":"N");
};
Number.prototype.toLon=function(){
return this.toDMS()+(this>(5389+1824-7213)?"E":"W");
};
Number.prototype.toPrecision=function(fig){
if(this==(4573+1918-6491)){
return (5527+3928-9455);
}
var _6e=Math.ceil(Math.log(this)*Math.LOG10E);
var _6f=Math.pow((3296+62-3348),fig-_6e);
return Math.round(this*_6f)/_6f;
};
function usePointFromPostcode(_70,_71){
localSearch.setSearchCompleteCallback(null,function(){
if(localSearch.results[(7684+1994-9678)]){
var _72=localSearch.results[(2349+7293-9642)].lat;
var _73=localSearch.results[(105+3107-3212)].lng;
var _74=new GLatLng(_72,_73);
_71(_74);
}else{
alert("Postcode not found!");
}
});
localSearch.execute(_70);
}
function placeMarkerAtPoint(_75){
setCenterToPoint(_75);
}
function setCenterToPoint(_76){
map.setCenter(_76,(7782+668-8440));
}
var maptools_start=false;
function maptools_change(_77){
if(_77!=""){
if(_77.indexOf("area")>-1){
if(maptools_start==true){
maptools_quit2();
}
if(_77=="areaMt"){
changeTool(1);
}
if(_77=="areaKm"){
changeTool(2);
}
if(_77=="areaHe"){
changeTool(3);
}
if(_77=="areaFt"){
changeTool(4);
}
if(_77=="areaMi"){
changeTool(5);
}
if(_77=="areaNm"){
changeTool(6);
}
if(_77=="areaAc"){
changeTool(7);
}
}else{
if(areatools_start==true){
StopArea2();
}
if(maptools_start==false){
maptools_startup();
}
if(_77=="distMi"){
toggleUnits("MILES");
}
if(_77=="distKm"){
toggleUnits("KMS");
}
if(_77=="distFt"){
toggleUnits("FEET");
}
if(_77=="distMt"){
toggleUnits("METERS");
}
if(_77=="distYd"){
toggleUnits("YARDS");
}
}
if(document.getElementById("biBox")){
document.getElementById("biBox").style.visibility="hidden";
}
}else{
if(maptools_start==true){
maptools_quit();
}
if(areatools_start==true){
StopArea();
}
if(document.getElementById("biBox")){
document.getElementById("biBox").style.visibility="visible";
}
}
}
function maptools_startup(){
var mtd=document.getElementById("maptools_display");
var _79="";
_79+="&nbsp;";
_79+="<b>Distance:</b> <input id='distance' type='text' style='width:60px;' value='0.000'/>";
_79+="<input type='button' value='Undo' onclick='clearLastLeg();' class='formButton' />";
_79+="<input type='button' value='Reset' onclick='clearMap();' class='formButton' />";
_79+="<input type='button' value='Quit' onclick='maptools_quit();' class='formButtonRED' />";
_79+="&nbsp;&nbsp;";
_79+="<span id='maptools_instruction' class='microText'>Click on map to set starting point</span>\t";
mtd.innerHTML=_79;
start_dist();
maptools_start=true;
}
function maptools_quit(){
if(maptools_start){
clearMap();
var mtd=document.getElementById("maptools_display");
mtd.innerHTML="";
GEvent.removeListener(dist_listener);
document.getElementById("maptools_mode").selectedIndex=0;
maptools_start=false;
if(document.getElementById("biBox")){
document.getElementById("biBox").style.visibility="visible";
}
}
}
function maptools_quit2(){
if(maptools_start){
clearMap();
var mtd=document.getElementById("maptools_display");
mtd.innerHTML="";
GEvent.removeListener(dist_listener);
maptools_start=false;
if(document.getElementById("biBox")){
document.getElementById("biBox").style.visibility="visible";
}
}
}
function myPoint(cx,cy){
this.x=cx;
this.y=cy;
}
var juncid=0;
var EXMin=0;
var EYMin=0;
var EXMax=1000;
var EYMax=1000;
var zIconId="DEFAULT";
var UTMZone=12;
var Datum_a=zGeo_WGS84_a();
var Datum_f=zGeo_WGS84_f();
var Datum_b=zGeo_Datumb(Datum_a,Datum_f);
var Datum_e2=zGeo_Datume2(Datum_f);
var zTool=0;
var xmlhttp;
var NumPoint=0;
var PtsList=[];
var lines2=[];
var OldPoint=new myPoint(0,0);
var uL=1;
var uA=1;
var TXTQuery="";
function zGeo_WGS84_a(){
return 6378137;
}
function zGeo_WGS84_f(){
return 1/298.2572236;
}
function zGeo_Datumb(a,f){
return a-(a*f);
}
function zGeo_Datume2(f){
return 2*f-(f*f);
}
function zGeo_GetUTMZones(_81,Cad){
if(Cad==""){
Cad="UTM Zone ";
}
for(i=1;i<61;i++){
_81.options[_81.options.length]=new Option(Cad+i,"Zone");
}
_81.options.selectedIndex=11;
}
function zGeo_calcUTMZoneOld(_83){
var _84=12;
if(_83<0){
_84=Math.round((180+_83)/6)+1;
}else{
_84=Math.round(_83/6)+31;
}
if(_84>60){
_84=60;
}
if(_84<1){
_84=1;
}
return _84;
}
function zGeo_calcUTMZone(_85){
var _86=12;
var _87="";
_87=" "+_85;
_85=_85+180;
if(_85<=0){
_85=1;
}
if(_85>359){
_85=359;
}
_87+=" "+_85;
_86=""+((_85/6)+1);
_86=parseInt(_86);
if(_86>60){
_86=60;
}
if(_86<1){
_86=1;
}
return _86;
}
function zGeo_LatLon2UTM_pt(_88,Lat,_8a){
var X=0;
var Y=0;
var _8d=(Lat>0);
ZoneCM=6*_88-183;
p=(_8a-ZoneCM)*3600/10000;
Lat=Lat*Math.PI/180;
_8a=_8a*Math.PI/180;
b=Datum_b;
a=Datum_a;
e2=Datum_e2;
e=Math.sqrt(e2);
e2p=e2/(1-e2);
k0=0.9996;
sin1=Math.PI/(180*60*60);
nu=a/Math.sqrt(1-e2*Math.pow(Math.sin(Lat),2));
n=(a-b)/(a+b);
Ap=a*(1-n+(5/4)*(Math.pow(n,2)-Math.pow(n,3))+(81/64)*(Math.pow(n,4)-Math.pow(n,5)));
Bp=(3*a*n/2)*(1-n+(7/8)*(Math.pow(n,2)-Math.pow(n,3))+(55/64)*(Math.pow(n,4)-Math.pow(n,5)));
Cp=(15*a*Math.pow(n,2)/16)*(1-n+(3/4)*(Math.pow(n,2)-Math.pow(n,3)));
Dp=(35*a*Math.pow(n,3)/48)*(1-n+(11/16)*(Math.pow(n,2)-Math.pow(n,3)));
Ep=(315*a*Math.pow(n,4)/51)*(1-n);
S=Ap*Lat-Bp*Math.sin(2*Lat)+Cp*Math.sin(4*Lat)-Dp*Math.sin(6*Lat)+Ep*Math.sin(8*Lat);
K1=S*k0;
K2=k0*Math.pow(sin1,2)*nu*Math.sin(Lat)*Math.cos(Lat)*100000000/2;
K3=(k0*Math.pow(sin1,4)*nu*Math.sin(Lat)*Math.pow(Math.cos(Lat),3)/24)*(5-Math.pow(Math.tan(Lat),2)+9*e2p*Math.pow(Math.cos(Lat),2)+4*e2p*e2p*Math.pow(Math.cos(Lat),4))*10000000000000000;
Y=K1+K2*Math.pow(p,2)+K3*Math.pow(p,4);
if(_8d==false){
Y=10000000+Y;
}
K4=k0*sin1*nu*Math.cos(Lat)*10000;
K5=(k0*Math.pow(sin1,3)*nu*Math.pow(Math.cos(Lat),3)/6)*(1-Math.pow(Math.tan(Lat),2)+e2p*Math.pow(Math.cos(Lat),2))*1000000000000;
X=500000+K4*p+K5*Math.pow(p,3);
this.CY=Y;
this.CX=X;
}
function zGeo_LatLon2UTM(_8e,Lat,_90,csp){
var X=0;
var Y=0;
ZoneCM=6*_8e-183;
p=(_90-ZoneCM)*3600/10000;
Lat=Lat*Math.PI/180;
_90=_90*Math.PI/180;
b=Datum_b;
a=Datum_a;
e2=Datum_e2;
e=Math.sqrt(e2);
e2p=e2/(1-e2);
k0=0.9996;
sin1=Math.PI/(180*60*60);
nu=a/Math.sqrt(1-e2*Math.pow(Math.sin(Lat),2));
n=(a-b)/(a+b);
Ap=a*(1-n+(5/4)*(Math.pow(n,2)-Math.pow(n,3))+(81/64)*(Math.pow(n,4)-Math.pow(n,5)));
Bp=(3*a*n/2)*(1-n+(7/8)*(Math.pow(n,2)-Math.pow(n,3))+(55/64)*(Math.pow(n,4)-Math.pow(n,5)));
Cp=(15*a*Math.pow(n,2)/16)*(1-n+(3/4)*(Math.pow(n,2)-Math.pow(n,3)));
Dp=(35*a*Math.pow(n,3)/48)*(1-n+(11/16)*(Math.pow(n,2)-Math.pow(n,3)));
Ep=(315*a*Math.pow(n,4)/51)*(1-n);
S=Ap*Lat-Bp*Math.sin(2*Lat)+Cp*Math.sin(4*Lat)-Dp*Math.sin(6*Lat)+Ep*Math.sin(8*Lat);
K1=S*k0;
K2=k0*Math.pow(sin1,2)*nu*Math.sin(Lat)*Math.cos(Lat)*100000000/2;
K3=(k0*Math.pow(sin1,4)*nu*Math.sin(Lat)*Math.pow(Math.cos(Lat),3)/24)*(5-Math.pow(Math.tan(Lat),2)+9*e2p*Math.pow(Math.cos(Lat),2)+4*e2p*e2p*Math.pow(Math.cos(Lat),4))*10000000000000000;
Y=K1+K2*Math.pow(p,2)+K3*Math.pow(p,4);
K4=k0*sin1*nu*Math.cos(Lat)*10000;
K5=(k0*Math.pow(sin1,3)*nu*Math.pow(Math.cos(Lat),3)/6)*(1-Math.pow(Math.tan(Lat),2)+e2p*Math.pow(Math.cos(Lat),2))*1000000000000;
X=500000+K4*p+K5*Math.pow(p,3);
return X+csp+Y;
}
function zGeo_LatLon2UTM2(_94,Lat,_96,csp){
var pt=new zGeo_LatLon2UTM_pt(_94,Lat,_96);
var X=parseInt(""+pt.CX);
var Y=parseInt(""+pt.CY);
var _9b=(Lat>0);
var _9c=(_96<0);
if(_9c==true){
X=""+X+" W";
}else{
X=""+X+" E";
}
if(_9b==true){
Y=""+Y+" N";
}else{
Y=""+Y+" S";
}
return X+csp+Y;
}
var areatools_start=false;
var area_click;
var area_move;
function areatools_startup(){
area_click=GEvent.addListener(map,"click",function(_9d,_9e){
zmapclick(_9d,_9e);
});
area_move=GEvent.addListener(map,"mousemove",function(_9f){
zmouse_move(_9f);
});
}
function zlist_addItem(_a0,_a1,_a2){
_a0.options[_a0.options.length]=new Option(_a1,_a2);
}
function zget_TXT(_a3,_a4,_a5){
var _a6=_a4;
if(_a5>0){
var _a7=_a3.split("|");
_a6=_a7[_a5-1];
}
return _a6;
}
function zweb_setindex(_a8,_a9){
_a8.options.selectedIndex=_a9;
}
function zweb_listIndex(_aa){
return _aa.options.selectedIndex;
}
function zweb_list_getselected(_ab){
var _ac=_ab.options.selectedIndex;
if(_ac<0){
_ac=0;
}
return _ab.options[_ac].value;
}
function StopArea(){
ClearAreaLines();
NumPoint=0;
PtsList=[];
var mtd=document.getElementById("maptools_display");
mtd.innerHTML="";
GEvent.removeListener(area_click);
GEvent.removeListener(area_move);
document.getElementById("maptools_mode").selectedIndex=0;
areatools_start=false;
if(document.getElementById("biBox")){
document.getElementById("biBox").style.visibility="visible";
}
}
function StopArea2(){
ClearAreaLines();
NumPoint=0;
PtsList=[];
var mtd=document.getElementById("maptools_display");
mtd.innerHTML="";
GEvent.removeListener(area_click);
GEvent.removeListener(area_move);
areatools_start=false;
if(document.getElementById("biBox")){
document.getElementById("biBox").style.visibility="visible";
}
}
function ClearAreaLines(){
for(var l=0;l<lines2.length;l++){
map.removeOverlay(lines2[l]);
}
lines2=[];
try{
map.removeOverlay(firstMarker);
}
catch(err){
}
}
function ClearArea(){
ClearAreaLines();
NumPoint=0;
PtsList=[];
var mtd=document.getElementById("maptools_display");
var _b1="";
_b1+="&nbsp;";
_b1+="<b>Area:</b> <input id='area' type='text' style='width:60px;' value='0.000'/>";
_b1+="<input type='button' value='Undo' onclick='Undo();' class='formButton' />";
_b1+="<input type='button' value='Reset' onclick='ClearArea();' class='formButton' />";
_b1+="<input type='button' value='Quit' onclick='StopArea();' class='formButtonRED' />";
_b1+="&nbsp;&nbsp;";
_b1+="<span id='maptools_instruction' class='microText'>Click on map to set starting point</span>";
mtd.innerHTML=_b1;
}
function changeTool(_b2){
zTool=_b2;
if(areatools_start==false){
areatools_startup();
areatools_start=true;
}
NumPoint=0;
PtsList=[];
ClearAreaLines();
document.getElementById("maptools_display").innerHTML="";
uA=zTool;
if(uA<=3){
uL=1;
}else{
uL=5;
}
var mtd=document.getElementById("maptools_display");
var _b4="";
_b4+="&nbsp;";
_b4+="<b>Area:</b> <input id='area' type='text' style='width:60px;' value='0.000'/>";
_b4+="<input type='button' value='Undo' onclick='Undo();' class='formButton' />";
_b4+="<input type='button' value='Reset' onclick='ClearArea();' class='formButton' />";
_b4+="<input type='button' value='Quit' onclick='StopArea();' class='formButtonRED' />";
_b4+="&nbsp;&nbsp;";
_b4+="<span id='maptools_instruction' class='microText'>Click on map to set starting point</span>";
mtd.innerHTML=_b4;
}
function getUnitL_Text(_b5){
var _b6="uknown";
if(_b5==1){
_b6="meters";
}
if(_b5==2){
_b6="km";
}
if(_b5==3){
_b6="feet";
}
if(_b5==4){
_b6="yards";
}
if(_b5==5){
_b6="miles";
}
return _b6;
}
function conv_length(_b7,_b8){
if(_b8==2){
_b7=_b7*0.001;
}
if(_b8==3){
_b7=_b7*3.280839895;
}
if(_b8==4){
_b7=_b7*1.0936132983377078;
}
if(_b8==5){
_b7=_b7*0.000621371192237;
}
return _b7;
}
function getUnitA_Text(_b9){
var _ba="uknown";
if(_b9==1){
_ba="sq. meters";
}
if(_b9==2){
_ba="sq. km";
}
if(_b9==3){
_ba="hectare";
}
if(_b9==4){
_ba="sq. feet";
}
if(_b9==5){
_ba="sq. mile";
}
if(_b9==6){
_ba="sq. nautical miles";
}
if(_b9==7){
_ba="acre";
}
return _ba;
}
function conv_area(_bb,_bc){
if(_bc==2){
_bb=_bb*0.000001;
}
if(_bc==3){
_bb=_bb*0.0001;
}
if(_bc==4){
_bb=_bb*10.763910416709722;
}
if(_bc==5){
_bb=_bb*3.8610215859e-7;
}
if(_bc==6){
_bb=_bb*2.91e-7;
}
if(_bc==7){
_bb=_bb*0.00024710538149;
}
return _bb;
}
function zpt(lat,lon){
var _bf=new GLatLng(lat,lon);
}
function add_pointLayer(){
zpt(32.231857,-110.953474);
}
function getcoords(_c0,_c1){
var _c2="";
if(_c1==true){
UTMZone=zGeo_calcUTMZone(_c0.lng());
_c2=zGeo_LatLon2UTM2(UTMZone,_c0.lat(),_c0.lng(),", ");
x=_c2.split(" ")[0];
y=_c2.split(" ")[2];
x=parseFloat(x);
y=parseFloat(y);
_c2=_c2+" Zone "+UTMZone;
}else{
_c2="Lat/Lon: "+_c0.toUrlValue();
}
return _c2;
}
var globalPoint;
function zmouse_move(_c3){
globalPoint=_c3;
var _c4=1;
var _c5=getcoords(_c3,_c4);
}
function changemaptype(_c6){
map.setMapType(_c6);
document.getElementById("maptools_display").innerHTML="Map style has changed";
}
function getDist(Pt1,Pt2){
DX=Pt2.x-Pt1.x;
DY=Pt2.y-Pt1.y;
tmpdist=Math.pow(DX,2)+Math.pow(DY,2);
if(tmpdist>0){
tmpdist=Math.sqrt(tmpdist);
}else{
tmpdist=0;
}
return tmpdist;
}
function PtLatLon2UTM(Pt){
outcoo=zGeo_LatLon2UTM(UTMZone,Pt.y,Pt.x,",");
x=parseFloat(outcoo.split(",")[0]);
y=parseFloat(outcoo.split(",")[1]);
return new myPoint(x,y);
}
function getSegDist(_ca,_cb,_cc){
UTMZone=zGeo_calcUTMZone(_ca[_cb].x);
var Pt1=PtLatLon2UTM(_ca[_cb]);
var Pt2=PtLatLon2UTM(_ca[_cc]);
return getDist(Pt1,Pt2);
}
function calDist(_cf){
var _d0=0;
UTMZone=zGeo_calcUTMZone(_cf[0].x);
for(i=0;i<_cf.length;i++){
if(i==0){
Pt1=PtLatLon2UTM(_cf[0]);
}else{
Pt2=PtLatLon2UTM(_cf[i]);
_d0=_d0+getDist(Pt1,Pt2);
Pt1.x=Pt2.x;
Pt1.y=Pt2.y;
}
}
return _d0;
}
function calPerimeter(_d1){
var _d2=calDist(_d1);
var _d3=getSegDist(_d1,0,_d1.length-1);
_d2=_d2+_d3;
return _d2;
}
function calArea(_d4){
var _d5=0;
UTMZone=zGeo_calcUTMZone(_d4[0].x);
Pt1=PtLatLon2UTM(_d4[_d4.length-1]);
for(k=0;k<_d4.length;k++){
Pt2=PtLatLon2UTM(_d4[k]);
xDiff=Pt2.x-Pt1.x;
yDiff=Pt2.y-Pt1.y;
_d5=_d5+Pt1.x*yDiff-Pt1.y*xDiff;
Pt1.x=Pt2.x;
Pt1.y=Pt2.y;
}
_d5=0.5*Math.abs(_d5);
_d5=conv_area(_d5,uA);
return _d5;
}
function PointClick(_d6){
doGetElevation(_d6.y,_d6.x);
}
function AreaClick(_d7){
if(NumPoint==0){
PtsList.push(new GLatLng(_d7.y,_d7.x));
OldPoint.x=_d7.x;
OldPoint.y=_d7.y;
document.getElementById("maptools_instruction").innerHTML="Click on map to set additional points";
NumPoint=1;
var _d8=new GMarker(PtsList[0],Icon);
firstMarker=_d8;
map.addOverlay(firstMarker);
}else{
document.getElementById("maptools_instruction").innerHTML="Click on map to set additional points";
PtsList.push(new GLatLng(_d7.y,_d7.x));
var _d9="0.000";
var _da="";
if(PtsList.length>2){
ClearAreaLines();
var _db=new GPolygon(PtsList,"#FF0000",3,1,"#0000FF",0.2);
lines2.push(_db);
map.addOverlay(_db);
_d9=calArea(PtsList);
_d9=_d9.toFixed(3);
_da=conv_length(calPerimeter(PtsList),uL);
_da="Perimeter = "+_da.toFixed(3)+" "+getUnitL_Text(uL);
}else{
var _dc=new GPolyline(PtsList,"#FF0000",4,1);
lines2.push(_dc);
map.addOverlay(_dc);
}
if(PtsList.length>0){
var _d8=new GMarker(PtsList[0],Icon);
firstMarker=_d8;
map.addOverlay(firstMarker);
}
if(PtsList.length>2){
document.getElementById("area").value=_d9;
}else{
document.getElementById("area").value=_d9;
}
NumPoint=NumPoint+1;
}
}
function Undo(){
ClearAreaLines();
PtsList.pop();
if(PtsList.length>0){
var _dd=new GMarker(PtsList[0],Icon);
firstMarker=_dd;
map.addOverlay(firstMarker);
}
if(PtsList.length>2){
var _de=new GPolygon(PtsList,"#FF0000",3,1,"#0000FF",0.2);
lines2.push(_de);
map.addOverlay(_de);
TotArea=calArea(PtsList);
TotArea=TotArea.toFixed(3);
TotDist=conv_length(calPerimeter(PtsList),uL);
TotDist="Perimeter = "+TotDist.toFixed(3)+" "+getUnitL_Text(uL);
}else{
var _df=new GPolyline(PtsList,"#FF0000",4,1);
lines2.push(_df);
map.addOverlay(_df);
}
if(PtsList.length>2){
document.getElementById("area").value=TotArea;
}else{
document.getElementById("area").value="0.000";
}
if(PtsList.length==0){
document.getElementById("maptools_instruction").innerHTML=" Click on map to set starting point";
}
}
function zmapclick(_e0,_e1){
if(_e1){
ClearAreaLines();
if(zTool>=1&&zTool<=7){
AreaClick(_e1);
}
}else{
_e1=globalPoint;
ClearAreaLines();
if(zTool>=1&&zTool<=7){
AreaClick(_e1);
}
}
}
function zRequest(url){
document.getElementById("maptools_display").innerHTML="Wait...";
xmlhttp=null;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
if(window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(xmlhttp!=null){
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}else{
document.getElementById("maptools_display").innerHTML="Your browser does not support XMLHTTP.";
}
}



