我有墨卡託投影一個小問題,我越來越楠值當我嘗試緯度投影...段路口:墨卡託投影越來越楠價值
我從這個問題codederived: 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;
}
返回值的這種例子: 12-15 21:42:27.165:I/LATLONG2RAD(32629):中篇小說轉換
12-15 21:42:27.165:I/LATLONG2RAD(32629):LAT 782581.6732236275:L ONG -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
用於投影返回值:
12-15 21時42分:27.165:I/PointLATLONG YX(32629):NaN:-10478.3 98323613315
12-15 21:42:27.165:I/PointLATLONG YX(32629):楠:-10478.398323613315
12-15 21:42:27.165:I/PointLATLONG YX(32629):楠: - 10476.478461436123
12-15 21:42:27.165:I/PointLATLONG YX(32629):1.7354151627839085:-10476.478461436123
數值小於0的Math.log()將返回NaN – JRowan
thx我認爲這個算法不會幫助我,我從java地圖庫中使用了mercator投影類,並且這個返回值也是,我很少迷路,你可以在註釋中看到上面這段代碼。任何想法 ? – WhatsUp
你沒有使用它如何使用它在那篇文章中他有其他的東西,如://我們需要確定min X和Y值的原因是因爲要繪製地圖,我們需要抵消位置 這樣就不會有X和Y的負值 minXY.x =(minXY.x == -1)? xy.x:Math.min(minXY.x,xy.x); minXY.y =(minXY.y == -1)? xy.y:Math.min(minXY.y,xy.y);檢查,你應該回去重讀他使用的代碼。 – JRowan