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 的示例视图中,使用此方法将大小减半。

感谢您的帮助!