我找到了所有国家边界的形状数据和一个处理它的类,我编写了一个脚本来将经度和纬度转换为图像上的像素位置,并使用imagefilledpolygon
和绘制国家imageline
。一切都很好,除了:
1)我有一个可以更改的 $scale 变量。在 $scale=1 时,图像为 360x180 像素(1 像素 = 1 度纬度/经度)。理想情况下,我想要的最终图像大约是 $scale = 2 (720x360),但是 1 像素厚的边界看起来很厚。所以我认为最好的解决方案是在 $scale=10 处生成地图,然后调整生成的图像的大小。问题是imagecopyresized
调整大小时没有抗锯齿,它给我留下了一个非常锯齿状的图像,我该如何调整大小和抗锯齿?
2)生成一个国家的多边形的点数很多。计划是使用相同的代码来生成 HTML 图像地图,以将国家/地区变成链接。但是我担心目前图像地图的点太多(文件大小可能太大)。我最初的方法是跳过 x 点,这会带来一些成功,如果我处理 10 分中的 1 分,我大多会得到可接受的结果。理想情况下,我会更少……当我尝试 40 分之一时,我发现一些国家边界重叠并且国家之间存在一些差距(但一些更繁忙的海岸线看起来更好)。在保持合理准确度的同时减少点数的明智方法是什么?
如果有人感兴趣,我会发布代码(一旦完成。)