当前位置: 首页 > news >正文

做网站哪里找wordpress页眉颜色

做网站哪里找,wordpress页眉颜色,网站建设与规划心得总结,商城网站现在可以做么目录 前言 一、原来的生成方案问题 1、无法自动读取数据的Bounds 2、专题图高宽比例不协调 二、专题图生成优化 1、直接读取矢量数据的Bounds 2、专题图成果抗锯齿 3、专题成果高宽比例自动调节 三、总结 前言 在当今数字化浪潮中#xff0c;地理信息系统#xff08;…目录 前言 一、原来的生成方案问题 1、无法自动读取数据的Bounds 2、专题图高宽比例不协调 二、专题图生成优化 1、直接读取矢量数据的Bounds 2、专题图成果抗锯齿 3、专题成果高宽比例自动调节 三、总结 前言 在当今数字化浪潮中地理信息系统GIS的应用场景日益丰富从城市规划到环境监测从交通运输到资源管理GIS 技术为各领域提供了强大的空间数据分析与可视化支持。而专题图作为 GIS 表达的重要形式其生成质量直接影响着信息传达的准确性和直观性。以下图为例要求绘制与湖南省相邻的其它市级行政区划的专题图 传统的 GIS 专题图制作往往面临着诸多挑战。一方面地图边界固定当面对不同尺度或范围的数据时要么出现数据超出边界的情况要么导致画面留白过多严重影响视觉效果与信息呈现完整性。另一方面高宽比例的把控难度较大不同数据集或应用场景下要确保地图在各种尺寸的屏幕和页面布局中保持协调的比例展示避免图形拉伸或压缩变形这需要耗费大量的时间和精力进行手动调整极大地降低了工作效率也难以满足批量生产与动态更新的需求。 GeoTools 作为一款功能强大的开源 GIS 工具库为解决上述问题提供了丰富的 API 和灵活的开发框架。利用 GeoTools开发者能够深入底层数据处理与图形渲染流程实现对专题图生成过程的精细化管控。通过自定义投影变换、数据裁剪算法以及图形布局策略可以轻松应对各种复杂场景让专题图自动适应不同边界并始终保持高宽等比例的精准呈现。 本文将深入探讨基于 GeoTools 实现 GIS 专题图自适应边界及高宽等比例生成的实践方法。从 GeoTools 的环境搭建与核心模块介绍入手详细讲解如何利用其数据访问、样式定义和渲染引擎等功能结合实际案例代码演示逐步剖析实现自动适应边界和等比例生成的关键技术要点与优化技巧。同时还会分享在实际项目应用中的经验教训以及如何根据业务需求进行扩展定制旨在为广大 GIS 开发者提供一份实用、高效的解决方案参考资料助力提升 GIS 专题图制作的自动化水平与质量使其能够更好地服务于各行业的空间信息分析与决策支持工作。 一、原来的生成方案问题 在之前的博客中曾经介绍过如何使用Geotools来生成shapefile的缩略图原文地址基于Java和GeoTools的Shapefile矢量数据缩略图生成实践虽然实现了基本的功能。可以使用Geotools来渲染SLD样式并且生成本地的缩略图。但是也还是存在一些点没有优化比如以下两点。第一是没有实现自动的从待生成的Shapefile数据中获取数据的Bounds边界而是使用Qgis软件来进行手动设置的模式。第二个是对于生成的专题图结果专题图的高度和宽度比例跟shapefile的原始尺寸没有很好的兼容从实际效果上来看就是比较不协调很生硬。下面将对这两点来进行深入说明。 1、无法自动读取数据的Bounds 为了让第一次看到博客的朋友也有一个简单的认识这里我将原来生成图片的关键方法贴出来公共大家参考 public static void createUSA() {long start System.currentTimeMillis();Shp2Image shp2img new Shp2Image();shp2img.setMap(new MapContent());String shpPath F:/xxx/maps/countries.shp;String sldPath F:/xxx/maps/countries1.1.0-2.sld;String imgPath D:/countries0228-美国.png;MapString, Object paras new HashMapString, Object();double[] bbox_usa new double[] { -145.40999, 9.93976, -65.062300,81.12722 };paras.put(bbox, bbox_usa);paras.put(width, 1020);paras.put(height, 800);shp2img.addShapeLayer(shpPath, sldPath);shp2img.getMapContent(paras, imgPath);System.out.println(生成完成共耗时 (System.currentTimeMillis() - start) ms); } 在以上的代码中就包含了两个关键的信息。第一个就是bbox_usa,这表示漂亮国的Bbox值也就是Bounds边界信息。 关于Bounds可以使用Qgis或者Arcgis等软件进行获取以Qgis为例当我们打开一份shapefile矢量数据之后右键属性可以看到数据的Bounds值如下图所示 这里的范围值就是我们需要的目标值将上述值复制到代码中的bbox_usa数组中即可。如果是处理单张缩略图生成使用qgis等辅助软件来帮助提取固然没有问题如果需要批量作业这么大量的人工干预无疑降低了工作效率。 2、专题图高宽比例不协调 关于专题图的高度和宽度比例不协调的原因其实跟边界范围差不多但是又存在一定的差异即边界值使用qgis获取的值是非常固定的但是生成的专题图的高度和宽度是我们通过硬编码的方式指定的因此具体的比例与原始的数据无法实现对应从而导致将数据渲染到图片后整体效果是失真的即比例非常不协调比如在指定宽度和高度为1068*749的设置下湖南省的乡镇区划专题图效果如下 通过上图可以看到通过预设的高度和宽度不能很好的进行专题图渲染。这也是第二个需要解决的问题。  二、专题图生成优化 那么如何优化专题图的生成让专题图做的更加美观符合我们的业务需要呢主要的优化方向也是包含一下三点。第一个是为了提高效率需要使用Geotools来自动读取矢量文件的边界以此来达到自动计算范围的目的。第二个是为了在地图放大时也能保持一定的清晰度因此在生成PNG图片时需要抗锯齿以此满足图片的方法需求。第三是可以根据自动读取的边界范围自动进行高度和宽度的比例自适应调整。本节将主要介绍这三点优化内容。 1、直接读取矢量数据的Bounds 在GeoTools中要想实现自动读取Shapefile的地图边界数据可以通过以下两种形式获取第一个是通过Layer对象第二个是从mapContent对象的视图对象中获取。首先来介绍如何从Layer图层对象获取关键代码如下 Layer layer new FeatureLayer(featureSource, style); this.map.addLayer(layer); //这里这是范围 this.setEnvelope(layer.getBounds()); 第二种是可以通过mapContent对象来获取关键代码如下 renderer.setMapContent(map); // 从MapContent中获取地图边界范围 ReferencedEnvelope bounds map.getViewport().getBounds(); 以上者两种方法都是可以的大家可以根据实际情况使用。  2、专题图成果抗锯齿 针对专题图生成后如果有图片放大的需求在放大的时候就会失真这时候就需要进行抗锯齿的设置。这要求在进行专题图的图片渲染输出时设置图片渲染的参数以此来进行图片的抗锯齿效果实现关键代码如下 /** * 设置抗锯齿以及其他相关渲染提示。 * param g2d 绘制目标的 {link Graphics2D} 上下文。 */ private static void setAntiAliasing(Graphics2D g2d,int width,int height) {g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));g2d.setColor(Color.WHITE);g2d.fillRect(0, 0, width,height);// 启用抗锯齿g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); } 3、专题成果高宽比例自动调节 要想实现专题成果图的尺寸比例自动调节最关键的操作是需要知道本身数据的高宽比通过固定的高宽比来求解实际生成图片的高宽这样设置的效果应该是比较符合实际需要的专题图的。所以问题的关键就是自动计算高宽比而矢量文件的高宽我们可以通过bounds来获取。因此高宽比可以通过bounds的高度和宽度的计算得到。 // 输出图像大小例如宽度x高度 int width 1920; // 可根据需求调整 // 计算地理宽高比 double aspectRatio bounds.getWidth() / bounds.getHeight(); //根据比例计算新高度 int height (int) Math.round(width / aspectRatio); 上面代码中的1920只是一个示意实际情况可以设置成一个范围值固定了宽度后可以根据宽高比自动计算另一个参数在得到Height后再进行画布的渲染和出图。关键代码如下 // 创建一个缓冲区用于接收渲染的结果 BufferedImage image new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB_PRE); Graphics2D gr image.createGraphics(); // 设置渲染提示以提高质量和减少锯齿 setAntiAliasing(gr,width,height); 最终可以得到一张比较符合我们业务需要的专题图如下图所示可以看到专题图的边界范围是自动获取、图片放大后锯齿感比较小经过计算高宽比之后的图片尺寸看起来也比较协调 三、总结 以上就是本文的主要内容本文将深入探讨基于 GeoTools 实现 GIS 专题图自适应边界及高宽等比例生成的实践方法。从 GeoTools 的环境搭建与核心模块介绍入手详细讲解如何利用其数据访问、样式定义和渲染引擎等功能结合实际案例代码演示逐步剖析实现自动适应边界和等比例生成的关键技术要点与优化技巧。同时还会分享在实际项目应用中的经验教训以及如何根据业务需求进行扩展定制旨在为广大 GIS 开发者提供一份实用、高效的解决方案参考资料助力提升 GIS 专题图制作的自动化水平与质量使其能够更好地服务于各行业的空间信息分析与决策支持工作。行文仓促定有不当之处恳请各位专家学者博友在评论区留下宝贵的意见万分感激。
http://www.w-s-a.com/news/507696/

相关文章:

  • 上海高端网站开发站霸网络国际网站建设的目的
  • 程序员招聘求职的网站做网站加入广告联盟
  • 网站建设的技术方案模板易做文学网站的logo
  • 建设国家标准官方网站响应式网站切图
  • 网站链接数怎么做wordpress安装网址
  • 沈阳建网站 哪家好如何做旅游网站推销
  • 继续网站建设南通网站建设方法
  • 淮南公司网站建设如果做京东优惠卷的网站
  • 二手房网站平台怎么做项目工程监理公司网站建设方案
  • 秦皇岛做网站公司小说推广平台有哪些
  • php网站做分享到朋友圈天元建设集团有限公司信用代码
  • 邱县做网站在线免费图片编辑器
  • 网站备份网站做网站如何把支付宝微信吧
  • 做网站的怎么获取客户信息晋城建设局网站
  • 新开传奇网站发布网单职业wordpress建站网页无法运作
  • 海南省住房和城乡建设厅官方网站网站开发有哪些语言
  • 网站开发排期表免费网站建设策划
  • 飞沐网站设计江苏建设人才网证书查询
  • 网站优化的意义怎么帮商家推广赚钱
  • 安顺公司做网站福州建设发展集团有限公司网站
  • 普陀企业网站建设做散客机票的网站如何推广
  • 河北网站建设与制作建设宁波市分行的互联网网站
  • python做网站是不是特别慢百度推广基木鱼
  • 卖网站链接东营住房和城乡建设信息网
  • 网站后台如何上传ico图标单位建设网站需要的材料
  • 如何建淘客网站郑州做网站最好的公司
  • 连锁酒店网站方案o2o网站建设方案
  • 功能型网站响应式网站原理
  • 聊城建设网站骨干校 建设网站
  • 网站建设与管理是干嘛的中国新闻社是什么单位