【发布时间】:2018-04-12 11:11:55
【问题描述】:
我需要在给定一组经度和纬度坐标的情况下打印一个多边形。 我只从两个坐标开始进行初始测试。问题是 Java Image API 适用于像素点,而经度和纬度是大小数。
所以即使我有这个代码:
BufferedImage bi = new BufferedImage(500, 500, BufferedImage.OPAQUE);
Graphics2D ig2 = bi.createGraphics();
double[] xArr = toDoubleArray(Arrays.asList(Double.valueOf("121.91359648077058"), Double.valueOf("121.92293884686991")));
double[] yArr = toDoubleArray(Arrays.asList(Double.valueOf("11.995724479140792"), Double.valueOf("11.999118908426375")));
Path2D path = new Path2D.Double();
path.moveTo(xArr[0], yArr[0]);
System.out.println("x[0]=" + xArr[0] + "," + "y[0]=" + yArr[0]);
for(int i = 1; i < xArr.length; ++i) {
path.lineTo(xArr[i], yArr[i]);
System.out.println("x[" + i + "]=" + xArr[i] + "," + "y[" + i + "]" + yArr[i]);
}
path.closePath();
ig2.draw(path);
ImageIO.write(bi, "PNG", new File("polygons.png"));
它将只是一个像素,即 500,500 缓冲区图像内的 121 和 11。
可以做些什么才能将地理位置坐标渲染到图像中?我真的不需要线条,只需在图像中绘制点就足够了,悬停Path2D 是我找到的最接近的,因为它支持double 值。
【问题讨论】:
标签: java image geometry gis geospatial