| 
private static float northPoalX = (float)297, northPoalY = (float)4.6496;
 private static float centerX = (float)300, centerY = (float)-88;
 private static float mNum = (float)7.1117;
 
 private float distance(float x1, float y1, float x2, float y2)
 {
 return (float)Math.sqrt((float)((float)Math.pow((float)((float)x2-x1),2) + (float)Math.pow((float)((float)y2-y1),2)));
 }
 
 private float distanceNorth(int x, int y)
 {
 float dist = (float)Math.sqrt((float)((float)Math.pow((float)((float)x-northPoalX),2) + (float)Math.pow((float)((float)y-northPoalY),2)));
 return dist;
 }
 
 private float findLat(int x, int y)
 {
 if (y > 217)
 return (float)90-(float)(distanceNorth((x + (int)(0.2*(northPoalX-x))), (y + (int)(0.05*(217-y)))) / mNum);
 else
 return (float)90-(float)(distanceNorth((x + (int)(0.25*(northPoalX-x))), (y - (int)(-0.15*(217-y)))) / mNum);
 }
 
 private float findLong(int x, int y)
 {
 float k = 0;
 float d = 0;
 
 d = (float)(-0.16*(217-y));
 
 float midX = (float)391.88;
 float midY = (float)-88;
 
 float A = distance(centerX,centerY,(float)x+k,(float)y+d);
 float B = distance(centerX,centerY,midX,midY);
 float C = distance((float)x+k,(float)y+d,midX,midY);
 
 float log = (float)Math.acos((float)((Math.pow(A,2) + Math.pow(B,2) - Math.pow(C,2))/(2*A*B))) * (float)(180/Math.PI) + (float)9;
 log += 0.06*(centerX-x);
 log *= -1;
 
 return log;
 }
 
 |