User:Tonestertm/CRS grid bookmarklet

From Wazeopedia

< User:Tonestertm

Revision as of 22:35, 28 April 2016 by Tonestertm (talk | contribs) (Crunchinated code for space)

This is a bookmarklet which will take the coordinates from the center of your WME window and find the appropriate CRS Grid map. Occasionally you may find a bit of inaccuracy at the edge of a grid, but in general it should put you in approximately the correct place.

The script includes some rough boundary checking to make sure you're in California, as the state hasn't been magnanimous enough to provide FC maps for OR, NV, AZ or MX.

Be sure to examine the popup closely, as it contains the info on which grid you'll need to select, and an approximation of the location within that grid. The table is presented, rather than the script taking you straight to the assigned grid, to simplify those situations when you may need to access an adjacent map.

Be sure, before lowering any segments, to consult with a senior editor in the area. There are occasional deviations from the official map, for Waze purposes such as continuity along higher-typed routes.

Feedback will be appreciated. Thanks to SAR85 for inspiring me to finally dig in and learn some javascript, (and fielding plenty of stupid questions from an old dog, about this new trick), and to autenil for coaching about preparing code for bookmarklets.

Copy the code below and make a new bookmark with it. Then, simply click that bookmark with a WME page open.

javascript:(function(){var%20i=0,k=0,minLon=0,majLatIndex=0,majLonIndex=0,crsLink="",pdfLink="",majGrid="",gridInfo="",majLet="",majNum="",gridLet="",latLetter=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y"],lonNumber=["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21"],minLat=1,gridNum=0,gridLatIndex=0,gridLonIndex=0,askCRS,popCRS;var%20center_lonlat=OpenLayers.Layer.SphericalMercator.inverseMercator(Waze.map.getCenter().lon,Waze.map.getCenter().lat);var%20lat=center_lonlat.lat,lon=center_lonlat.lon;console.log(lat,lon);if((lat<42&&lat>=39)&&(lon>-124.41&&lon<=-120.0)){console.log("Northern%20Climes");}else%20if((lat<39&&lat>=34.57)&&(lon>(-124.41+((39-lat)*0.83747178329571))&&lon<=(-120+((39-lat)*1.333)))){console.log("Midstate",39-lat);}else%20if((lat<34.57&&lat>32.5)&&(lon>(-120.7+((34.57-lat)*1.73913))&&lon<-114.1)){console.log("SoCal!");}else{window.alert("Come%20back%20to%20California!");return;}while(41.6668-(k*0.4165)>lat){k++;}majLatIndex=k;majLet=latLetter[k];while((i/2)-124<lon){i++;}majLonIndex=i;majNum=lonNumber[i];majGrid+=majNum+majLet;while(((((minLon/5)+(majLonIndex-1))/2)+-124)<lon){minLon++;}console.log("minor%20grid%20lon%20"+((((minLon/5)+(majLonIndex-1))/2)+-124));while((41.6668-(((majLatIndex-1)+(minLat/5))*0.4165))>lat){minLat++;}console.log("minor%20grid%20lat%20"+(41.6668-(((majLatIndex-1)+(minLat/5))*0.4165)));while(((((((minLon-1+(gridLonIndex/10))/5)+(majLonIndex-1))/2))-124)<lon){gridLonIndex++;};while((41.6668-(((majLatIndex-1)+((minLat-1+(gridLatIndex/10))/5))*0.4165))>lat){gridLatIndex++;};console.log(majLonIndex,majLatIndex,minLat,minLon,gridLonIndex,gridLatIndex);console.log("grid%20lon%20"+((((((minLon-1)/5)+(majLonIndex-1)+(gridLonIndex/10))/2))-124));console.log("grid%20lat%20"+(41.6668-(((majLatIndex-1)+((minLat-1)/5)+(gridLatIndex/10))*0.4165)));crsLink+="http://www.dot.ca.gov/hq/tsip/hseb/crs_maps/maplinks/"+majNum+majLet.toLowerCase()+"_table.htm";pdfLink+="http://www.dot.ca.gov/hq/tsip/hseb/crs_map/"+majNum+majLet.toLowerCase()+minLat+minLon+".pdf";gridInfo+="\nThe%20Major%20CRS%20Grid%20is%20"+majGrid+"\nThe%20minor%20grid,%20if%20it%20exists,%20is%20"+minLat+minLon+"\n\nClick%20OK%20to%20open%20the%20"+majGrid+"%20map%20table%20in%20a%20%20new%20tab";popCRS=window.open(crsLink);popCRS.confirm("The%20minor%20grid,%20if%20it%20exists,%20is%20"+majGrid+minLat+minLon+"\nThe%20approximate%20grid%20coordinates%20are%20"+latLetter[gridLonIndex-1]+gridLatIndex);})();