var TILE_SIZE=256;var ZOOM_LEVELS=31;var RADIUS=6378137;var p_center=[];var d_lngScale=[];var r_latScale=[];var c=TILE_SIZE;for(var d=0;d<ZOOM_LEVELS;d++){var e=c/2;p_center.push(e);d_lngScale.push(c/360);r_latScale.push(c/(2*Math.PI));c*=2}function fromDegToRad(A){return A*(Math.PI/180)}function fromRadToDeg(A){return A*(180/Math.PI)
}function fromLatLngToPixel(F,D){var B=p_center[D];var A=Math.round(B+F.lng*d_lngScale[D]);var C=Math.sin(fromDegToRad(F.lat));if(C<-0.9999){C=-0.9999}if(C>0.9999){C=0.9999}var E=Math.round(B-Math.log((1+C)/(1-C))*r_latScale[D]/2);return{"x":A,"y":E}}function fromPixelToLatLng(C,E){var A=p_center[E];
var B=(C.x-A)/d_lngScale[E];var D=-(C.y-A)/r_latScale[E];var F=fromRadToDeg(2*Math.atan(Math.exp(D))-Math.PI/2);return{"lat":F,"lng":B}}function distHaversine(A,F){var C=fromDegToRad(F.lat-A.lat);var D=fromDegToRad(F.lng-A.lng);var B=Math.sin(C/2)*Math.sin(C/2)+Math.cos(fromDegToRad(A.lat))*Math.cos(fromDegToRad(F.lat))*Math.sin(D/2)*Math.sin(D/2);
var E=2*Math.atan2(Math.sqrt(B),Math.sqrt(1-B));return RADIUS*E};