レイヤーのあるマップを使用しています(例から):
var lonLat = new OpenLayers.LonLat(40.4088576, -86.8576718)
.transform(
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Projection
);
moveendで私は中心座標を取得しています:
map.getCenter();
map.getZoom();
およびズーム レベル: 4925535.4503328、-9668990.0134335、12
ドキュメントからのアルゴリズムの使用
public PointF TileToWorldPos(double tile_x, double tile_y, int zoom)
{
PointF p = new Point();
double n = Math.PI - ((2.0 * Math.PI * tile_y) / Math.Pow(2.0, zoom));
p.X = (float)((tile_x / Math.Pow(2.0, zoom) * 360.0) - 180.0);
p.Y = (float)(180.0 / Math.PI * Math.Atan(Math.Sinh(n)));
return p;
}
Y ~ 90、および X ~ 432662 を取得します。
しかし、境界内の座標が必要です: -180..180
のようなもの: 40.4088576, -86.8576718
なにが問題ですか?