私が達成しようとしているのは、マップ上に四角形が描かれているときです。この四角形のマップ座標を元の画像の座標空間に投影して、元の画像をトリミングしてダウンロード リンクをユーザーに提供できるようにします。
ただし、長方形のマップ座標を元の画像の正確なピクセル座標に投影する際に問題があります。
以下はうまくいくと思いましたが、正しくないピクセル座標が生成されます。
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));
}
});
これは、マップ座標 (左の画像) からピクセル座標 (右の画像) への不正確な投影の例です。
私は何を間違っていますか?