The fetchLegendInfoAsync method does not return any legend information.
上次发布: December 4, 2019ArcGIS Runtime SDK
漏洞 ID 编号
BUG-000114472
已提交
June 5, 2018
上次修改时间
June 5, 2024
适用范围
ArcGIS Runtime SDK
找到的版本
100.2.1
操作系统
Windows OS
操作系统版本
7.0 64 Bit
状态
Will Not Be Addressed
开发团队已考虑过该问题或请求,并决定不会解决该问题。 问题的“其他信息”部分可能包含进一步说明。
附加信息
Legend information is being requested at a level in the service where there is no legend. The legends are in the sublayers which can be seen here for example: http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/0
Below is sample code to show how to iterate over the sublayers and access the legends:
ArcGISMapImageLayer layer =
new ArcGISMapImageLayer("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer");
map.getOperationalLayers().add(layer);
layer.loadAsync();
layer.addDoneLoadingListener(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Layer loaded" + layer.getLoadStatus().toString());
//System.out.println("Layer loaded" + layer.getLoadError().getCause().toString());
SublayerList subLayerList = layer.getSublayers();
for (ArcGISSublayer subLayer : subLayerList) {
System.out.println("sublayer name" + subLayer.getName());
ListenableFuture> future = subLayer.fetchLegendInfosAsync();
future.addDoneListener(()-> {
try {
List legendInfoList = future.get();
System.out.println(" - legend info size" + legendInfoList.size());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
});
}