----------------------------------------
import java.math.*;
public class Point{
double lat;
double lon;
public Point(double lat, double lon){
this.lat = lat;
this.lon = lon;
}
public Point(){
}
public void setLon(double lon){
this.lon=lon;
}
public void setLat(double lat){
this.lat=lat;
}
public String getCMapStr(double res){
StringBuffer sb = new StringBuffer();
if (lat >= 0 ){
if(lon>=0)
sb.append('1');
else
sb.append('7');
}
else{
if(lon>=0)
sb.append('3');
else
sb.append('5');
}
int i,j;
double llat = Math.abs(lat);
if (llat >= 90) llat=89.9;
double llon = Math.abs(lon);
if (llon >= 180) llon=179.9;
i=(int)(llat/10);
sb.append(i);
j=(int)(llon/10);
if(j<10)sb.append('0');
sb.append(j);
if (res == 10) return sb.toString();
sb.append(':');
llat-=i*10;
llon-=j*10;
i=(int)llat;
j=(int)llon;
if (i<5){
if(j<5)
sb.append('1');
else
sb.append('2');
}
else{
if(j<5)
sb.append('3');
else
sb.append('4');
}
if (res == 5) return sb.toString();
sb.append(i);
sb.append(j);
if (res == 1) return sb.toString();
sb.append(':');
i = (int)((llat-i)*10);
j = (int)((llon-j)*10);
if (i<5){
if(j<5)
sb.append('1');
else
sb.append('2');
}
else{
if(j<5)
sb.append('3');
else
sb.append('4');
}
if ( res == 0.5) return sb.toString();
sb.append(i);
sb.append(j);
return sb.toString();
}
public static void main(String [] argv){
Point pt = new Point(Double.parseDouble(argv[0]),Double.parseDouble(argv[1]));
System.out.println(pt.getCMapStr(1));
}
}
----------------------------------------