﻿var AbstractCoverage={eo:null,intersects:function(minLat,minLon,maxLat,maxLon){if(typeof this.LATITUDE=="undefined"){return true;}this.vv();if(this.eo.minLat>maxLat||this.eo.maxLat<minLat||this.eo.minLon>maxLon||this.eo.maxLon<minLon){return false;}else if(this.eo.maxLat<=maxLat&&this.eo.minLat>=minLat&&this.eo.minLon>=minLon&&this.eo.maxLon<=maxLon){return true;}var length=10;var resLat=maxLat-minLat;var resLon=maxLon-minLon;var latStep=resLat/length;var lonStep=resLon/length;var upperBoundaryLat=new Array(length);var upperBoundaryLon=new Array(length);var leftBoundaryLat=new Array(length);var leftBoundaryLon=new Array(length);var rightBoundaryLat=new Array(length);var rightBoundaryLon=new Array(length);var bottomBoundaryLat=new Array(length);var bottomBoundaryLon=new Array(length);for(var i=0;i<length;i++){upperBoundaryLon[i]=bottomBoundaryLon[i]=minLon+lonStep*i;leftBoundaryLat[i]=rightBoundaryLat[i]=minLat+latStep*i;upperBoundaryLat[i]=maxLat;leftBoundaryLon[i]=minLon;bottomBoundaryLat[i]=minLat;rightBoundaryLon[i]=maxLon;if(this.within(upperBoundaryLat[i],upperBoundaryLon[i])||this.within(leftBoundaryLat[i],leftBoundaryLon[i])||this.within(bottomBoundaryLat[i],bottomBoundaryLon[i])||this.within(rightBoundaryLat[i],rightBoundaryLon[i])){return true;}}return false;},within:function(lat,lon){var i,j=0;var oddNODES=false;var polySides=this.LATITUDE.length;for(i=0;i<polySides;i++){j++;if(j==polySides)j=0;if(this.LONGITUDE[i]<lon&&this.LONGITUDE[j]>=lon||this.LONGITUDE[j]<lon&&this.LONGITUDE[i]>=lon){if(this.LATITUDE[i]+(lon-this.LONGITUDE[i])/(this.LONGITUDE[j]-this.LONGITUDE[i])*(this.LATITUDE[j]-this.LATITUDE[i])<lat){oddNODES= !oddNODES;}}}return oddNODES;},vv:function(){if(this.eo==null){var polylength=this.LATITUDE.length;var polMinLat=90,polMinLon=180,polMaxLat= -90,polMaxLon= -180;for(var i=0;i<polylength;i++){if(this.LATITUDE[i]<polMinLat)polMinLat=this.LATITUDE[i];if(this.LATITUDE[i]>polMaxLat)polMaxLat=this.LATITUDE[i];if(this.LONGITUDE[i]<polMinLon)polMinLon=this.LONGITUDE[i];if(this.LONGITUDE[i]>polMaxLon)polMaxLon=this.LONGITUDE[i];}this.eo={minLat:polMinLat,minLon:polMinLon,maxLat:polMaxLat,maxLon:polMaxLon};}}}