Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么uDig';s的渲染地图看起来比我的好得多_Java_Gis_Geotools - Fatal编程技术网

Java 为什么uDig';s的渲染地图看起来比我的好得多

Java 为什么uDig';s的渲染地图看起来比我的好得多,java,gis,geotools,Java,Gis,Geotools,我用uDig设置了图层样式,并将样式导出为SLD文件。然后,我使用Geotools将相同的样式应用于代码中的a层(相同的shapefile)。然而,uDig对地图的渲染看起来比我的要好得多 我的项目使用geotools版本21.2,Java 1.8,我正在使用geotools的。注意到uDig版本比我的版本看起来更好,我尝试深入uDig源代码查看形状文件的渲染方式。我发现形状文件是由uDig渲染的,或者我认为是这样。然后我复制并粘贴了渲染器的初始化代码,并将其应用到我的项目中,但我没有注意到任何

我用uDig设置了图层样式,并将样式导出为SLD文件。然后,我使用Geotools将相同的样式应用于代码中的a层(相同的shapefile)。然而,uDig对地图的渲染看起来比我的要好得多

我的项目使用geotools版本21.2,Java 1.8,我正在使用geotools的。注意到uDig版本比我的版本看起来更好,我尝试深入uDig源代码查看形状文件的渲染方式。我发现形状文件是由uDig渲染的,或者我认为是这样。然后我复制并粘贴了渲染器的初始化代码,并将其应用到我的项目中,但我没有注意到任何差异

renderer=newstreamingrenderer();
HashMap renderHights=新HashMap();
放置(“optimizedDataLoadingEnabled”,true)//$非NLS-1$
renderer.setrenderhints(renderhints);
//renderer.RemoveEnderListener(StreamingRenderer.DEFAULT_LISTENER);
renderer.addRenderListener(侦听器);
//JG-在使用前,这些参数可能会被首选项覆盖?
RenderingHists=新的RenderingHists(renderingHists.KEY\u抗锯齿,
RenderingHints.VALUE_ANTIALIAS_ON);
renderer.setJava2DHints(提示)
设置渲染器(渲染器);
如何使我的地图渲染与uDig的一样好(uDig的渲染在下面的屏幕截图左侧)?


我希望有人能为我指明正确的方向,告诉我如何去做。如果有任何帮助,我们将不胜感激。

我认为您应该保留默认渲染器,只需添加提示即可,例如:

renderer = frame.getMapPane().getRenderer();
Map<Object, Object> rendererHints = renderer.getRendererHints();
rendererHints.put("optimizedDataLoadingEnabled", true); 
renderer.setRendererHints(rendererHints);
RenderingHints hints = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);
renderer.setJava2DHints(hints);
renderer=frame.getMapPane().getRenderer();
Map renderhints=renderer.getrenderhints();
放置(“optimizedDataLoadingEnabled”,true);
renderer.setrenderhints(renderhints);
RenderingHists=新的RenderingHists(renderingHists.KEY\u抗锯齿,
RenderingHints.VALUE_ANTIALIAS_ON);
renderer.setJava2DHints(提示);

如果这样做不起作用,那么您可能需要查看GeoServer渲染设置了哪些提示,例如,我认为您应该保留默认渲染器,只需添加到其提示中,例如:

renderer = frame.getMapPane().getRenderer();
Map<Object, Object> rendererHints = renderer.getRendererHints();
rendererHints.put("optimizedDataLoadingEnabled", true); 
renderer.setRendererHints(rendererHints);
RenderingHints hints = new RenderingHints(RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);
renderer.setJava2DHints(hints);
renderer=frame.getMapPane().getRenderer();
Map renderhints=renderer.getrenderhints();
放置(“optimizedDataLoadingEnabled”,true);
renderer.setrenderhints(renderhints);
RenderingHists=新的RenderingHists(renderingHists.KEY\u抗锯齿,
RenderingHints.VALUE_ANTIALIAS_ON);
renderer.setJava2DHints(提示);

如果这样做不起作用,那么您可能想看看GeoServer渲染设置了哪些提示,例如

Geotools不再支持ShapeFileFeatureRenderer。那么有什么替代方案,特别是如何获得更好的渲染?您能否确切地说明您认为从一个渲染到另一个渲染更好?请注意道路是如何更宽,文本更加清晰,在更大的比例尺上,地图几乎不可读。我的意图是使用uDig进行样式化,然后简单地将SLD作为资源导入到我的项目中。但是,按照我现在所拥有的,在将SLD导出到我的项目中之后,我通常必须在这里和那里增加宽度和字体。此外,抗锯齿提示似乎不起作用(我怀疑这就是问题所在)。Geotools不再支持ShapeFileFeatureRenderer。那么有什么替代方案,特别是如何获得更好的渲染效果?您能否确切地阐明您认为从一个到另一个更好的方案?注意道路是如何更宽,文本更清晰,在更大的比例尺上,这张地图几乎不可读。我的意图是使用uDig进行样式化,然后简单地将SLD作为资源导入到我的项目中。但是,按照我现在所拥有的,在将SLD导出到我的项目中之后,我通常必须在这里和那里增加宽度和字体。此外,抗锯齿提示似乎不起作用(我怀疑这就是问题所在)。