首页 / 浏览问题 / 组件GIS / 问题详情
java iobject11 后端制图如在输出的图片中添加图例
13EXP 2023年04月17日
输出的图片中只有地图 如何添加图例

1个回答

您好,在制图业务中一般是在布局流程中来添加地图并输出的,不是在地图流程。

布局接口:MapLayoutControl

如果您之前没有用过布局,建议可以现在iDesktop或iDesktopX大概使用了解下,布局添加地图与图例并控制使用方法和逻辑后,再在组件端写代码比较易于理解。

希望可以帮助到您。
9,123EXP 2023年04月17日
这边 new GeoLegend 会提示 java.lang.IllegalStateException: getItems()
图例的地图必须在工作空间中。 怎么将地图放在工作空间中呢

GeoLegend
public GeoLegend(java.lang.String mapName,
                 Workspace workspace,
                 java.lang.String title)根据指定的参数来构造一个 GeoLegend 的新对象。 

参数:
mapName - 关联地图的名称。
workspace - 关联的工作空间。
title - 图例的标题。

GeoLegend在new的时候,需要传参地图名称、工作空间和图例标题,这里的地图名称是你目前所使用的工作空间workspace里已有的map地图,

工作空间workspace创建或保存新地图接口是workspace.getMaps().add()或workspace.getMaps().setMapXML()


 

布局控制建议可以参考下范例工程,iobject java的范例工程里是有布局控制的,

范例程序位置:

安装目录\SampleCode\LayoutDisplay\LayoutDisplay.project

你好 我用的地图服务 并不是smwu 按着示例代码编写后输出的图片只有布局界面没有地图
布局输出一定是用地图的,只是你的地图的图层不是数据集添加的图层,而是地图服务添加的图层。

把你的地图服务作为web型数据源(isever REST)打开,然后将打开的web型数据源里的服务数据集添加到地图中来查看,以及控制输出使用。

你可以在iDesktop桌面先试一下这个流程操作,web型数据源打开地图服务,添加到地图中查看无误,保存地图,创建布局,添加地图,添加图例。

还有就是注意图层是地图服务不是数据集做的专题图的话,需要您代码手工创建绘制图例哦。

你好 这边idesktop是直接保存地图就可以进行布局操作 我看组件中并没有保存这操作 并且MapLayout中构造的GeoMap进行展示地图 那请问 普通的Map类 和GeoMap如何关联到一起呢 下面是我的代码截图 请指教一下 谢谢!

布局空间不绑定地图map,是绑定workspace工作空间,打开workspace保存好的地图。

工作空间workspace创建或保存新地图接口是workspace.getMaps().add()或workspace.getMaps().setMapXML()

你好这个地图如何根据一个geometry 定位并缩放到图形

布局地图的操作逻辑和地图是有所不同的,可以对geoMap设置 setShape

你好  我在四月份的时候有跟您探讨过布局输出的问题 当时因为有其他工作搁置了 我今天再对这个代码进行调试是时发现无法生成图片 

maplayout.printToFile()方法 返回是false 其中我有更换组件包版本 
目前组件包版本是 <supermap.iobjects.version>11.0.1.21420</supermap.iobjects.version>

在更换版本后同样的代码无法输出图片了

...