我正在使用TCPDF::Polygon()
从蓝色TCPDF::Rect()
顶部的文本文件中渲染海岸线(陆地)坐标。文本文件包含整个世界的海岸线,但是通过在地图投影中指定中心纬度和经度,以及一些乘法来获得“缩放”效果,我设法在A4页面中显示所需的区域。
问题:
正如您在图像中看到的那样,海岸线一直被绘制到文档的边缘(以及更远处)。虽然文本文件中的大多数海岸线坐标都在文档的可见区域“外部”,但它们仍然在输出文件中占用了大约几百字节。
是否有一种很好的方法可以“修剪”海岸线多边形,以便海岸线能够很好地适应蓝色区域,并且多余的椎体完全被排除在文档之外(不占用文件空间)?
答案 0 :(得分:1)
<强>解决方案:强>
&#39;裁剪&#39;我正在寻找使用剪辑,正如@Rad雷克萨斯所建议的那样:
// 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();
来源:https://stackoverflow.com/a/9400490/2667737
为了节省输出文件中的空间,我检查每个多边形(平面区域)中的每个像素,并仅渲染在页面边界内有一个或多个像素的多边形 - 也由@Rad建议。在我的第一篇文章的示例视图中,使用此方法将大小减半。
感谢您的帮助!