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);