我想要实现的是当在地图上绘制一个矩形时,我想将此矩形地图坐标投影到原始图像的坐标空间中,以便我可以裁剪原始图像并向用户提供下载链接。
但是,我在将矩形地图坐标投影到原始图像中的准确像素坐标时遇到问题。
我认为以下方法会起作用,但是它产生的像素坐标不正确。
map.on('draw:created', function(e){
var type = e.layerType,
layer = e.layer;
if(type == 'rectangle'){
if(rectangle){
drawnItems.removeLayer(rectangle);
}
rectangle = layer;
drawnItems.addLayer(rectangle);
var north_west = rectangle.getBounds().getNorthWest();
var south_east = rectangle.getBounds().getSouthEast();
var top_left_pixel = map.project([north_west.lat, north_west.lng], map.getMaxZoom());
var bottom_right_pixel = map.project([south_east.lat, south_east.lng], map.getMaxZoom());
alert("top_left_pixel: " + (top_left_pixel.x / 4) + ", " + (top_left_pixel.y / 4) + " bottom_right_pixel: " + (bottom_right_pixel.x / 4) + ", " + (bottom_right_pixel.y / 4));
}
});
这是从地图坐标(左图)到像素坐标(右图)的精确投影示例。
我究竟做错了什么?