TCPDF - 裁剪多边形
TCPDF - Cropping polygons
我正在使用 TCPDF::Polygon()
在蓝色 TCPDF::Rect()
上渲染来自文本文件的海岸线(陆地)坐标。文本文件包含整个世界的海岸线,但是通过在地图投影中指定中心纬度和经度,以及一些乘法以获得 'zooming' 效果,我设法在 A4 页面中显示所需区域。
问题:
正如您在图像中看到的那样,海岸线一直绘制到文档的边缘(以及更远的地方)。虽然文本文件中的大部分海岸线坐标是 'outside' 文档的可见区域,但它们在输出文件中仍然占用了数百千字节。
有没有什么好的方法可以'crop' coastline-polygon,这样海岸线就可以很好地适合蓝色区域内,并且多余的顶点完全从文档中排除(不占用文件space)?
解法:
我正在寻找的 'cropping' 是使用剪辑完成的,正如@Rad Lexus 所建议的那样:
// Start clipping
$pdf->StartTransform();
// Draw clipping rectangle
$pdf->Rect($DOC_MARG, $DOC_MARG, $MAP_W, $MAP_H, 'CNZ');
// -- Draw all polygons here (land areas) --
// Stop clipping
$pdf->StopTransform();
来源:
为了在输出文件中保存 space,我检查了每个多边形(陆地区域)中的每个像素,并仅渲染在页面边界内具有一个或多个像素的多边形 - @Rad 也建议.在我第一个 post 的示例视图中,使用此方法将大小减半。
感谢您的帮助!
我正在使用 TCPDF::Polygon()
在蓝色 TCPDF::Rect()
上渲染来自文本文件的海岸线(陆地)坐标。文本文件包含整个世界的海岸线,但是通过在地图投影中指定中心纬度和经度,以及一些乘法以获得 'zooming' 效果,我设法在 A4 页面中显示所需区域。
问题:
正如您在图像中看到的那样,海岸线一直绘制到文档的边缘(以及更远的地方)。虽然文本文件中的大部分海岸线坐标是 'outside' 文档的可见区域,但它们在输出文件中仍然占用了数百千字节。
有没有什么好的方法可以'crop' coastline-polygon,这样海岸线就可以很好地适合蓝色区域内,并且多余的顶点完全从文档中排除(不占用文件space)?
解法:
我正在寻找的 'cropping' 是使用剪辑完成的,正如@Rad Lexus 所建议的那样:
// Start clipping
$pdf->StartTransform();
// Draw clipping rectangle
$pdf->Rect($DOC_MARG, $DOC_MARG, $MAP_W, $MAP_H, 'CNZ');
// -- Draw all polygons here (land areas) --
// Stop clipping
$pdf->StopTransform();
来源:
为了在输出文件中保存 space,我检查了每个多边形(陆地区域)中的每个像素,并仅渲染在页面边界内具有一个或多个像素的多边形 - @Rad 也建议.在我第一个 post 的示例视图中,使用此方法将大小减半。
感谢您的帮助!