I have a little problem with mercator projection, i'm getting nan value when i try projection on latitude...
My codederived from this question : ConvertLATLONGTOXY
private static List<Point2D.Double> LatLongConvertionToXY(List<GeoPoint> coordinates) {
List<Point2D.Double> xys = new ArrayList<Point2D.Double>();
/*MercatorProjection projection = new MercatorProjection();*/
Log.i("LATLONG2RAD", "Nouvelle conversion");
for (GeoPoint coordinate : coordinates) {
double latitude = Double.valueOf(coordinate.getLatitudeE6());
double longitude = Double.valueOf(coordinate.getLongitudeE6());
// convert to radian
latitude = latitude * Math.PI / 180;
longitude = longitude * Math.PI / 180;
Log.i("LATLONG2RAD", String.valueOf(latitude)+" : "+String.valueOf(longitude));
/*Point2D.Double d = projection.project(longitude,latitude,
new Point2D.Double());*/
Point2D.Double d=new Point2D.Double();
double QUARTERPI = Math.PI / 4.0;
d.x = longitude;
d.y = Math.log(Math.tan(QUARTERPI + 0.5 * latitude));
Log.i("PointLATLONG YX", String.valueOf(d.y)+" : "+String.valueOf(d.x));
xys.add(d);
}
return xys;
}
This example of returned value : 12-15 21:42:27.165: I/LATLONG2RAD(32629): Nouvelle conversion
12-15 21:42:27.165: I/LATLONG2RAD(32629): LAT 782581.6732236275 : LONG -10478.398323613315
12-15 21:42:27.165: I/LATLONG2RAD(32629): LAT 782581.6732236275 : LONG -10478.398323613315
12-15 21:42:27.165: I/LATLONG2RAD(32629): LAT 782587.2931838189 : LONG -10476.478461436123
12-15 21:42:27.165: I/LATLONG2RAD(32629): LAT 782571.9517396939 : LONG -10476.478461436123
Returned values for projection :
12-15 21:42:27.165: I/PointLATLONG YX(32629): NaN : -10478.398323613315
12-15 21:42:27.165: I/PointLATLONG YX(32629): NaN : -10478.398323613315
12-15 21:42:27.165: I/PointLATLONG YX(32629): NaN : -10476.478461436123
12-15 21:42:27.165: I/PointLATLONG YX(32629): 1.7354151627839085 : -10476.478461436123