首页 / 浏览问题 / 桌面GIS / 问题详情
IDeskTopX 数据集输出CAD
2EXP 2024年07月01日

IDeskTopX 二次开发,数据集输出CAD,并给点、线增加符号。本地解决方案是从地图对应数据集图层getFillSymbolID,线可以拿到,点数据无法获取,不知道方法对不对。有没有其他的解决方案。

我的代码:

Layer layer = mapControl.getMap().getLayers().get(name.concat("@").concat(GlobalParamterConfig.dataSourceVector));

                        int pointId = ((LayerSettingVector)layer.getAdditionalSetting()).getStyle().getFillSymbolID();

                        if (geometry != null && !geometry.isEmpty()) {
                            GeoStyle geoStyle = new GeoStyle();
                            geoStyle.setFillBackOpaque(false);
                            geoStyle.setFillGradientMode(FillGradientMode.NONE);
                            geoStyle.setLineWidth(1);
                            geoStyle.setFillForeColor(new Color(255, 0, 0));
                            geoStyle.setFillOpaqueRate(100);


                            if (geometry.getType()==GeometryType.GEOLINE) {
                                int LineStyleId = ((LayerSettingVector)layer.getAdditionalSetting()).getStyle().getLineSymbolID();

                                geoStyle.setLineSymbolID(LineStyleId);
                            }
                            geoStyle.setFillSymbolID(pointId);

                            Log.info("SymID:",  geoStyle.getFillSymbolID());
                            geometry.setStyle(geoStyle);

                        }
                        objectMap.remove("smid");
                        objectMap.remove("geometry");
                        boolean isAdd = recordsetResult.addNew(geometry, objectMap);

1个回答

您好,首先如果您已经有配好图的专题图图层的话,layer本身就有一个方法layer.themeToDatasetVector,可以直接带风格保存为cad数据集,然后您直接把cad数据集导出成cad的dwg数据即可。

如果您主要是要获取风格的话,主要是使用方法的问题,比如 getFillSymbolID是返回填充符号的ID,getLineSymbolID 是返回线状符号的id,getMarkerSymbolID()返回点状符号的id等等很多不同的获取方法。

建议您查看iObject java开发文档的GeoStyle类,有该类所有的接口。

希望可以帮到您。
10,553EXP 2024年07月01日
...