ArcGIS JS API同时调用天地图和超图服务冲突?

环境:ArcGIS for Javascript API
目的:地图加载天地图服务后可继续加载超图服务
问题描述:使用esri.layers.TiledMapServiceLayer定义天地图服务和超图服务。单独调用服务时,正常加载。当将两个服务放在一个demo中进行顺序调用,只能调出第一种类型服务(如:程序初始化无地图服务加载,然后点击button调用天地图服务,正常加载,再点击超图服务,无服务加载。反之,亦然)
问题分析:1.单独调用成功,证明各服务参数没问题 
                2.两种服务lods参数{level,resolution,scale}中level有级别差(超图0开始,天地图1开始),对应分辨率和比例尺大致相同,附图   这种级别不需要完全一致,排除问题
怀疑:地图初始化时,同时加载了两种地图服务的init,可能是某些参数存在冲突
提问:两种服务参数附上,请帮忙分析一下哪里出问题了
 
超图天地图比例对比.png 天地图超图参数对比.png
已邀请:

津_土豆

赞同来自: ArcGIS知乎 江宝骅 小道

问题已解决,具体分析如下:
1.数据没问题,之所以上面loads参数截图不同,是天地图省略了0,1级别。从截图可以发现,两服务参数基本一致。于是,我增加了一个天地图服务类,保证两个WMTS服务参数完全一致。然后再先后点击button调用服务,仍旧只能展示第一个。故:数据不是影响因素
2.根据1分析出同一套数据,分两个类调用就失败,说明第一次加载服务时,已经给map附上参数,第二次没清理掉(单独map.removerAllLayers只是清理图层)。此时,第二次如果清理掉map属性,虽然第二次的图层可能加载出来,但第一次的地图服务已经丢失,不符合我的要求,所以未尝试。
3.既然天地图服务和超图服务参数几乎一致,那为什么不把超图服务和天地图服务放在一个类中进行调用?经过测试,成功。
总结:为什么javascript同时调用两个TiledMapServiceLayer不成功?是2的原因吗?尚待考究
感谢江民彬工程师的技术支持!
附图:天地图底图,点线面超图数据,设置叠放顺序,成功截图

Mc

赞同来自:

我这里也有一个类似的问题,2个地图服务一个是gis发的服务,一个是天地图的,两个lods不一样。地图初始化加载到时候会把第一个图层的参数设置给map。当加载第二个图层的时候,图层就不会显示。我手动修改lods,根据地图lods显示。地图可以出现,但是相对第一个图层就会有偏移。不知道有没有解决方法?我手动修改地图的lods,应该是修改方式不对,虽然地图加载出来了,偏移也没了,但是不能缩放了。\尴尬

要回复问题请先登录注册