我在Inteliji IDE中使用带有JavaFx的geotools-18.5。 当我想从svg或png图像创建PointSymbolizer时。
tar xzf files/test.tar.gz && zip files/test.zip $(tar tf files/test.tar.gz) && rm -r -- $(tar tf files/test.tar.gz)
我构建代码正常,但是在运行时,我收到警告:
警告:无法加载类别“ ExternalGraphicFactory”的服务。 提供者org.geotools.renderer.style.ImageGraphicFactory不能为 实例化。
有人可以帮助我吗?
这里是完整代码:
StyleBuilder builder = new StyleBuilder();
ExternalGraphic extGraphic = builder.createExternalGraphic("file:/home/cuongnv/test.svg", "svg");
答案 0 :(得分:0)
您错误地设置了图像哑剧类型,应该是:
ExternalGraphic extGraphic = builder.createExternalGraphic("file:/stuff/ian/geoserver/data/styles/burg02.svg", "image/svg"); // svg
所有方法都会起作用。
编辑
如果仍然有问题,请尝试将此代码添加到createStyle模块的末尾,并查看生成的SVG(可能在GeoServer中进行测试)。
SLDTransformer styleTransform = new SLDTransformer();
StyledLayerDescriptor sld = sf.createStyledLayerDescriptor();
UserLayer layer = sf.createUserLayer();
layer.setLayerFeatureConstraints(new FeatureTypeConstraint[] {null});
sld.addStyledLayer(layer);
layer.addUserStyle(style);
try {
String xml = styleTransform.transform(sld);
System.out.println(xml);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}