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种方式各有各的用处,在项目里面可以根据自己的情况使用

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/durendong/blog/489890

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值