//Source: glihtdata.gsfc.nasa.gov, anika.halota@nasa.gov, bruce.cook@nasa.gov //The following javascript snippet was used to calculate the bounding box shown on the website. //Use this as a starting point if you need to recreate the bounding box in another system alaska.getActiveBounds = function(activeMarker){ //Nikon D7100 //60.7 x 42.6 deg FOV w/DX sensor + 20 mm lens (392 x 261 m @ 335 m AGL) var xtrack_fov=42.6; //cross track FOV var atrack_fov=60.7; //along track FOV var utm6n = 'PROJCS["WGS84/UTMzone6N",GEOGCS["WGS84",DATUM["WGS_1984",SPHEROID["WGS84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-147],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32606"]]'; var llProj = "+proj=gnom +lat_0=90 +lon_0=0 +x_0=6300000 +y_0=6300000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"; var lng_adj = activeMarker._latlng.lng; //lng->x var lat_adj = activeMarker._latlng.lat; //lat->y var xy_adj = proj4(utm6n).forward([lng_adj,lat_adj]); var x_adj = xy_adj[0]; var y_adj = xy_adj[1]; var agl_height = activeMarker.options.agl_height; var heading_deg = activeMarker.options.heading; //compute length of pic sides (cross- and along-track) based on altitude var xtrack_dist = Math.tan(xtrack_fov/2*Math.PI/180)*agl_height*2; var atrack_dist = Math.tan(atrack_fov/2*Math.PI/180)*agl_height*2; //positions w/o accounting for heading var ul = [x_adj-(xtrack_dist/2),y_adj+(atrack_dist/2)] var ur = [ul[0]+xtrack_dist,ul[1]] var lr = [ul[0]+xtrack_dist,ul[1]-atrack_dist] var ll = [ul[0],ul[1]-atrack_dist] //easting/northing coordinates for closed box around pic centroid (i.e., origin) var e_centroid=[ul[0]-x_adj,ur[0]-x_adj,lr[0]-x_adj,ll[0]-x_adj,ul[0]-x_adj]; var n_centroid=[ul[1]-y_adj,ur[1]-y_adj,lr[1]-y_adj,ll[1]-y_adj,ul[1]-y_adj]; //compute new frame coordinates w/rotation var theta=heading_deg*Math.PI/180; var easting_adj = [0,0,0,0]; var northing_adj = [0,0,0,0]; var bounds = [0,0,0,0]; for (var i=0; i<4; i++){ easting_adj[i] = x_adj+(e_centroid[i]*Math.cos(theta))+(n_centroid[i]*Math.sin(theta)) //; x1,x2,x3,x4 northing_adj[i] = y_adj+(n_centroid[i]*Math.cos(theta))-(e_centroid[i]*Math.sin(theta)) //; y1,y2,y3,y4 var ll = proj4(utm6n).inverse([easting_adj[i],northing_adj[i]]); bounds[i] = [ll[1],ll[0]]; } var activeBounds = new L.Polygon(bounds, {fill: false, weight: 2, opacity: 0.5}); return activeBounds; }