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

你可能感兴趣的:(mapxtreme,java,java,colors,exception,url,image,string)