arcgis-js图例

浏览器打开地图服务地址,显示有Legend的才可以获取到图例

1、利用工具加载图例

var legend = new esri.dijit.Legend({
            map:map,
            layerInfos:legendLayers
},"legendDiv");
legend.startup();

图例图层可以是数组

2、如果对html中的legendDiv(自定义)执行操作(利用js添加元素什么的)会导致自动刷新图例(没找到原因),

需要给legend 设置参数 autoUpdate:fales(禁止自动刷新) 就ok了

3、可加载的图层有(api看的,没具体试过,只加载过动态图层)

ArcGISDynamicMapServiceLayer, ArcGISTiledMapServiceLayer, FeatureLayer, CSVLayer, KMLLayer, WMSLayer.

4、legend.refresh();方法是异步执行,如果想在其后执行操作,可以利用settimeout延迟一秒执行操作

(比如自己在legendDiv下额外写东西,如果也是图例,拼js建议加上legend本来的class)

5、图层数组为空时,legendDiv下会显示一个id带msg的div,显示无图例(应该是控件自己的),此div和其他图层图例div的class名称不同

6、当legend控件不能满足需求时,可以在服务地址后加

"/legend?f=json"

(地图服务地址必须含有Legend),获取图例的json数据

7、获取json串

$.getJSON(mapServerUrl, function (data) {  
    console.log(data);    
});

8、此json数据中的图片信息是base64 ,可以利用img标签的src填写

<img src='data:image/png;base64," + json数据串.imageData + " ' />

9、如果要向legendDiv,利用js添加html,一定要在legend.refresh(); 后利用settimeout延迟一秒在执行js方法

转载于:https://my.oschina.net/u/3935912/blog/1921301

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值