在项目中有个需求:根据图层索引添加图层

看到这个需求一下子想到 map.addLayer(layer,index?) 接口

但是问题出现了,我切片图加载顺序在矢量图之后就不行!

        map = new Map("map");
//加载矢量服务图层
var dynamic = new ArcGISDynamicMapServiceLayer("");
//加载切片服务图层
var tiled = new ArcGISTiledMapServiceLayer("");
//先添加动态地图服务
map.addLayer(dynamic);
//再添加切片地图服务
map.addLayer(tiled);

但是反过来,先加载切片底图,后加载矢量图就没有问题

        map = new Map("map");
//加载矢量服务图层
var dynamic = new ArcGISDynamicMapServiceLayer("");
//加载切片服务图层
var tiled = new ArcGISTiledMapServiceLayer("");
//先添加切片地图服务
map.addLayer(tiled);
//后添加动态地图服务
map.addLayer(dynamic);

这究竟什么原因呢?偶然间查到如下一段话

我的理解是Map会根据第一个添加的图层设立参考,但是缓存图层不能动态转换参考。所以有缓存图层的必须将缓存图层作为底图,第一个加载到Map里。

是否底图加载再最底层就行?再来看看 map.addLayer(layer,index?) 的表现

            //情形一
//加载正常,切片在矢量图下方
map.addLayer(tiled, 0);
map.addLayer(dynamic, 1); //情形二
//加载正常,切片在矢量图上方
map.addLayer(tiled, 1);
map.addLayer(dynamic, 0); //情形三
//加载不正常,切片图不出现
map.addLayer(dynamic, 0);
map.addLayer(tiled, 1); //情形四
//加载不正常,切片图不出现
map.addLayer(dynamic, 1);
map.addLayer(tiled, 0);

经过上面的测试发现,情形三和四都先加载了矢量图,即使矢量图放在最底层也没用。

故加载切片图和矢量图时,必须先加载切片,再加载其他矢量,而并非把切片放最底层就可以的。

ArcGIS 切片与矢量图图层顺序问题的更多相关文章

  1. 【转】10.4新特性-ArcGIS 10.4矢量切片介绍

    原文地址:http://zhihu.esrichina.com.cn/article/567 1.矢量切片简介GIS的底图一直使用金字塔技术进行切图,使用户能够快速访问指定级别的地图或者影像.但是切图 ...

  2. arcgis建立拓扑分析(检验矢量图)

    目的:矢量图画好后,检查是否有伪节点,悬挂节点等,线要素和面要素都可以检查.伪节点,两条线应该相交但是画的没相交:悬挂节点,两条线看似相交了但是没有节点,因此路径不同(类似于高架桥和交叉口,悬挂节点就 ...

  3. c#+ArcGIS Engine-获取矢量图层的空间参考

    转自原文c#+ArcGIS Engine-获取矢量图层的空间参考 介绍一种简单的获取矢量图层空间参考的方法: 首先打开Shp文件获得FeatureClass,代码如下: string pPath=&q ...

  4. ArcGIS Server的切图原理深入(转载)

    http://forum.osgearth.org/template/NamlServlet.jtp?macro=search_page&node=2174485&query=arcg ...

  5. ArcGIS Engine开发鹰眼图的功能(基础篇)

    鹰眼是用于调节全视域范围内主地图显示范围情况的副地图.它体现了地图整体与详细局部的关系. 用户可以通过鼠标单击或者画框等动作实现鹰眼与主地图的交互情况. 鹰眼功能的原理是通过主地图窗口的地图控件和鹰眼 ...

  6. 使用geoserver发布arcgis切片

    arcgis map 版本:10.1,10.2,10.3均可 jre:7或者8 geoserver:2.8.2以上 切片:松散型,256*256  ,png 1:安装geoserver并独立部署geo ...

  7. 时空地图TimeGIS 可编辑ArcGIS的Shape矢量文件的地理信息系统

    时空地图 TimeGIS 6.0 是一个地理信息系统软件,它可以显示网络地图,编辑ArcGIS的SHP矢量文件格式,显示NETCDF等栅格文件,管理图层等. 在它的基础上,可以二次开发各种GIS应用, ...

  8. arcgis for javascript之ArcGISDynamicMapServiceLayer图层控制的实现

    图层控制是非常多GIS系统里面必须的一个小功能,本文就说说arcgis for javascript下ArcGISDynamicMapServiceLayer图层控制的实现方式.首先看图: 实现效果 ...

  9. Android 开发 VectorDrawable 矢量图 (三)矢量图动画

    VectorDrawable 矢量图 三部曲: Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图 Android 开发 VectorDrawabl ...

随机推荐

  1. redis之Scan

    scan 相比keys 具备有以下特点:1.复杂度虽然也是 O(n),但是它是通过游标分步进行的,不会阻塞线程;2.提供 limit 参数,可以控制每次返回结果的最大条数,limit 只是一个 hin ...

  2. 使用 App Inventor 2 开发简单的安卓小游戏

    App Inventor2 是一个简单的在线开发安卓应用程序的工具,通过此工具,我们可以很轻松地开发安卓应用. 这里介绍的是笔者自己写的一个小游戏,游戏中玩家通过左右倾斜手机控制“水库”的左右移动,收 ...

  3. Fiddler抓包和工作原理

    一.概述 Fiddler是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据, 可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求, 支持监视. ...

  4. The usage of Markdown---标题

    更新时间:2019.09.14 目录: 1. 序言 2. 标题   2.1 类Atx形式   2.2 类Setext形式 3. 总结 1. 序言   Markdown是一种纯文本的标记语言,只要熟悉M ...

  5. React Ref 和 React forwardRef

    Ref 和Dom,Ref是reference(引用)的简写. 能力:大多数情况下,props前递可以解决一切问题,但是依然有需要触达React实例或者Dom节点的情况,这时候应该使用React Ref ...

  6. Cannot read property 'forEach' of undefined

    在singer-detail组件中,有一个_normalizeSongs()方法,遍历数组 _normalizeSongs(list) { let ret = []; list.forEach(ite ...

  7. 初学android小笔记(一)

    一:应用外观基础设置 (1)去掉标题栏:打开Android Manifest文件,将theme如下设置 (2)改应用图标:将icon指定图片改为想要的app图标即可 (3)改应用名字: 在Manife ...

  8. Python3爬虫(3)_urllib.error

    注:参照https://blog.csdn.net/c406495762/article/details/59488464 Learn_ERROR: urllib.error可以接收有urllib.r ...

  9. git .gitignore详解

    1.最近使用git又遇到一个陷阱: 场景:A和B使用的不同的编译器做的同一个解决方案下的不同的项目工程,刚开始没考虑到版本问题,后来发现A上传的csproj在B需要做很麻烦修改才能打开,后来想到各自用 ...

  10. 第一个appium测试用例

    from time import sleep from appium import webdriver import pytest class TestXueqiu: user_profile_id ...