今天遇到了esri.layers.FeatureLayer发布一个宗地图层,里面有些数据未显示,导致数据显示不全,原来是服务中数据返回参数限制。

ArcGIS的feature图层(在JavaScript API中为esri.layers.FeatureLayer),在浏览器中进行显示时是有一定限制的。比如一个名为traffic的feature图层,该图层记录了该地区所有交通事故的发生地,其feature数量可想而知非常巨大。在浏览器中创建该图层的时候就要为其选定“模式”。如

var traffic = new esri.layers.FeatureLayer(trafficServiceURL, {
              displayOnPan : true,
              mode : esri.layers.FeatureLayer.MODE_ONDEMAND,
              opacity : 0.8,
              infoTemplate : infoTemplate,
              outFields : [*]
});
第二个参数mode就是模式。ArcGIS JavaScript API提供了三种模式,分别是
  • MODE_ONDEMAND:按需加载feature
  • MODE_SELECTION:初始不加载,只有当客户端选择的时候才加载feature
  • MODE_SNAPSHOT:一开始就将“全部”feature从服务器端取回并加载
值得注意的是,MODE_SNAPSHOT中的“全部”是有限制的,根据官方文档,在ArcGIS Server 9.3.1中默认是500个,在版本10的时候默认为1000。这个限制是可以在ArcCatalog中进行修改的。在GIS Servers中连到服务器,并停止该feature图层的服务,右键选择Service Properties,在Parameters选项卡下可以设置“Maximum Number of Records Returned by Server”。然后重启图层服务,并且在REST服务的管理界面清理一下缓存就可以了。
需要注意的是,该参数并非设置得越大越好,它会对地图在浏览器端的加载产生比较大的影响,如果设置的过大,不仅仅会导致加载缓慢,更有可能出现浏览器挂掉等不良体验。对于feature图层模式的选择,如果feature数量较小(比如小于Server默认的限制数量),那么选择MODE_SNAPSHOT一次性加载最好,并且要在初始化的时候为图层添加适当的过滤条件,如setDefinitionExpression和setTimeDefinition对feature属性、时间进行相应过滤,不至于初始加载阶段有过多的feature造成浏览器崩溃。
 
 

ArcGIS服务器的feature图层限制的更多相关文章

  1. WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析

    WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析 FeatureService也称要素服务,其最大的好处就是支持在线要素编辑,并将编辑同步更新到后 ...

  2. [转] arcgis Engine创建shp图层

    小生 原文 arcgis Engine创建shp图层 以创建点图层为例.首先要得到保存文件的地址. SaveFileDialog saveFileDialog = new SaveFileDialog ...

  3. OpenLayers学习笔记(五)— 拖拽Feature图层

    参考文档的例子可以知道如何拖动矢量图层feature GitHub: 八至 作者:狐狸家的鱼 本文链接:拖拽Feature图层 全部代码 <!DOCTYPE html> <html& ...

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

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

  5. Arcgis javascript api 动态图层自图层可见性设置

    Arcgis javascript api 动态图层自图层可见性设置 子图层管理 rest服务 sublayers sublayer ArcGISDynamicMapServiceLayer 本文主要 ...

  6. ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务

    1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...

  7. ArcGIS api for javascript——图层-创建定制的切片图层类型的图层

    描述 本例展示了如何创建一个定制图层,该图层访问来自WEB服务器的地图切片.这种方式最通用的用途是检索ArcGIS Server 9.2切片缓存或web上的其他地图切片服务.尽管本例使用的是一个Arc ...

  8. 命令行部署SharePoint2016离线前提条件和添加服务器的Feature

    前言 Sp2016的软件环境要求如下: 服务器场中的数据库服务器的最低要求: 以下各项之一: Microsoft SQL Server 2014 Service Pack 1 (SP1) 的 64 位 ...

  9. ArcGIS JavaScript API动态图层

      矢量动态图层     <!DOCTYPE HTML> <html>   <head> <meta http-equiv="Content-Typ ...

随机推荐

  1. 洛谷1967货车运输 即 NOIP2013 DAY1 T3

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

  2. python为不同的对象如何分配内存的小知识

    id方法的返回值就是对象的内存地址. python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同).如执行a=2.0,b=2.0这两个语句时会先后为2.0这个Float类型对象 ...

  3. 7.【nuxt起步】-Nuxt与后端数据交互

    接下来就是对接服务端接口,展示真实的数据 1.做了个虚拟接口地址:http://test.yms.cn/testjson.asp 输出数据: { "title": "单间 ...

  4. Tensorflow 之 TensorBoard可视化Graph和Embeddings

    windows下使用tensorboard tensorflow 官网上的例子程序都是针对Linux下的:文件路径需要更改 tensorflow1.1和1.3的启动方式不一样 :参考:Running ...

  5. mysql的安装、C++訪问mysql数据库、编码设置问题

    一.mysql的安装.这个相对简单,直接去官网下载mysql安装程序.就能够完毕安装过程,网上有非常多安装教程,这个没什么注意事项. 二.C++訪问mysql.主要是用到mysql定义的头文件,内部定 ...

  6. 3.nginx反向代理服务器+负载均衡

    nginx反向代理服务器+负载均衡 用nginx做反向代理和负载均衡非常简单, 支持两个用法: 1个proxy, 1个upstream,分别用来做反向代理,和负载均衡 以反向代理为例, nginx不自 ...

  7. MySQL数据导入与导出

    http://blog.chinaunix.net/uid-23354495-id-3188029.html     mysql备份脚本之select into outfile

  8. NAT和桥接的区别

    NAT 桥接 NAT相当于是局域网中的局域网,把192.168.21.1当作外网ip,重新划分了一个网关(192.168.33.x) 网桥只是把网络桥接起来,还是原来的网关(192.168.21.x) ...

  9. Java、C++、Python、Ruby、PHP、C#和JavaScript的理解

    Java.C++.Python.Ruby.PHP.C#和JavaScript和日本动漫里的那些大家熟悉的动漫人物结合起来.依据他们的身世.个人经历来生动的表达各编程语言的发展历程.原文内容例如以下:  ...

  10. bootstrap-table自己配置

    function initTable(){ var methodNameSearch=$("#methodNameSearch").val(); var requestUrl =  ...