imagerenderer java_MapXtreme java MapXtremeImageRenderer渲染器的实现

MapXtreme java 远程渲染使用 MapXtremeImageRenderer 来处理。

远程渲染表示包含 MapJ 对象的应用程序将服从 MapXtremeServlet 的实例来创建地图。MapJ 客户机将其请求(如何渲染和渲染什么)发送到 MapXtremeServlet,由后者处理请求,然后将结果返回给 MapXtremeImageRenderer,可能的三种结果如下所示:

• 本地系统上使用 toFile() 的位图文件(GIF、JPEG 等)— 通常用于在中间层上存储图像,然后令浏览器从服务器请求文件。

• 使用 toStream() 的 Java 输出流对象 — 流可以表示为文件(与以上相同)或者内存存储的信息(作为 Java 图像对象,如下);两层结构使用 toStream,客户机可将图像存储在内存中。

• 使用 toImage() 的 Java 图像对象 — 将栅格保存在内存中,可直接用于显示。由于要依赖于客户机系统可能没有的 JVM 和字体等系统资源,因此 MapXtremeImageRenderer 是渲染地图最普通的方式。

以下是这三种方法的具体实现

这个是tofile生成的方式

try {

//这里是你的mapxtreme的路径

String url = request.getScheme() +"://"+ request.getServerName() +":"+ request.getServerPort() + request.getContextPath() + "/mapxtreme";

MapXtremeImageRenderer renderer = new MapXtremeImageRenderer(url);

//注意这里设置的文件类型要和生成的图片的类型一致

//这里是gif文件,那么生成出来的图片也就是gif的

ImageRequestComposer composer = ImageRequestComposer.create(mapj, ImageRequestComposer.MAX_COLORS_TRUECOLOR, Color.yellow, "image/gif");

//这里就是生成的图片的路径,而你的页面就要导入这个路径就可以了

renderer.toFile("c://test.gif");

}catch(Exception ex) {

ex.printStackTrace();

}

这个是tostream生成的方式

try {

//这里是你的mapxtreme的路径

String url = request.getScheme() +"://"+ request.getServerName() +":"+ request.getServerPort() + request.getContextPath() + "/mapxtreme";

MapXtremeImageRenderer renderer = new MapXtremeImageRenderer(url);

//注意这里设置的文件类型要和生成的图片的类型一致

//这里是gif文件,那么生成出来的图片也就是gif的

ImageRequestComposer composer = ImageRequestComposer.create(mapj, ImageRequestComposer.MAX_COLORS_TRUECOLOR, Color.yellow, "image/gif");

//这种生成方式直接返回图片

response.setContentType("image/gif");

renderer.toStream(response.getOutputStream());

}catch(Exception ex) {

ex.printStackTrace();

}

这个是toimage生成的方式

try {

//这里是你的mapxtreme的路径

String url = request.getScheme() +"://"+ request.getServerName() +":"+ request.getServerPort() + request.getContextPath() + "/mapxtreme";

MapXtremeImageRenderer renderer = new MapXtremeImageRenderer(url);

//注意这里设置的文件类型要和生成的图片的类型一致

//这里是gif文件,那么生成出来的图片也就是gif的

ImageRequestComposer composer = ImageRequestComposer.create(mapj, ImageRequestComposer.MAX_COLORS_TRUECOLOR, Color.yellow, "image/gif");

//这种生成方式生成图片,然后可以通过处理该图片,再返回

response.setContentType("image/gif");

Image image = renderer.toImage();

BufferedImage bfimage = (BufferedImage)image;

ImageIO.write(bfimage, "GIF", response.getOutputStream());

}catch(Exception ex) {

ex.printStackTrace();

}

这3种方式各有各的用处,在项目里面可以根据自己的情况使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值