中文

错误:由于要显示的要素过多,因此未能完全绘制图层

错误消息

在 ArcGIS Online 地图查看器中查看托管要素服务时,有时会返回“由于要显示的要素过多,因此未能完全绘制图层”的警告。 尝试在“地图查看器”中显示大量要素时,系统将显示此消息。 此消息旨在警告:无法完全绘制预期在地图范围内显示的所有要素,并且视图中可能缺少某些要素。
 

                                                User-added image
当服务中的要素显示在地图查看器中时,系统会将请求将发送到服务器,以便从服务返回要素并将其显示在 Web 地图中。 从地图查看器发送到服务的请求类型是包含参数的查询请求,用以确定一次显示的要素数量。

原因

过去,可以通过设置服务器返回的最大记录数(也称为最大记录计数)来确定一次性可从托管要素服务绘制的要素数量。 在发布服务或自动分配服务时,可以根据所使用的发布工作流,在 ArcMap 服务编辑器对话框中设置最大记录计数。 在使用典型的查询请求时,最大记录计数仍可确定可一次性从服务返回的要素数量。 但是,当前地图查看器所使用的是其他类型的查询请求。

当前在地图查看器中,一次性显示的要素数量由 tileMaxRecordCount 属性决定,而不是由 MaxRecordCount 值决定。 不同于最大记录计数,tileMaxRecordCount 值无法在发布服务时手动更改,且会由系统自动分配给服务定义。

显示要素时,地图查看器将使用该服务的 tileMaxRecordCount 以及 Web 地图的当前范围。 Web 地图的范围被分为若干个名为“切片”的部分,这些部分在地图上是不可见的。 系统将向地图查看器内每个切片的服务发送请求。 服务的 tileMaxRecordCount 限制了每个切片内所显示的要素数量。 如果切片中的要素数量小于 tileMaxRecordCount,则可显示该切片内的所有要素。 如果切片中的要素数量超过 tileMaxRecordCount,则系统将不会显示所有要素,且会同时返回“未能完全绘制图层”警告消息。

在查看服务的 REST 端点/URL 时,请注意 tileMaxRecordCount 参数的值与最大记录计数的显示方式不同。 tileMaxRecordCount 的值只能通过服务的 REST 端点管理视图进行查看。 要访问此页面,请在服务 URL 的 "/rest" 和 "/services" 之间添加 "/admin"。 例如:

http://services.myserver.com/ERmEceOGq5cHrItq/ArcGIS/rest/admin/services/USA/FeatureServer
注:
只有服务的所有者可以访问管理视图。 
从 REST 端点的管理视图导航至页面底部的“更新定义”,并在定义详细信息中找到 tileMaxRecordCount 属性。 默认情况下,下图中 tileMaxRecordCount 将被设置为 4000。 这意味着当地图查看器请求查看服务时,每个切片只能显示 4000 个要素。 对于点要素,tileMaxRecordCount 默认为 8000。 对于折线和面,该值的默认值为 4000,原因是这些要素中有更多的折点。
User-added image
当您放大或缩小 Web 地图以及更改范围时,该范围内的切片数可能更改也可能不会更改。 服务于顶部显示的底图将针对每个比例级别划分为所定义的切片格网。 放大时,切片与以前的比例级别相比变得更小,且预期能够在每个切片内绘制的要素更少。 因此,不太可能出现警告消息。 而当缩小时,切片与以前的比例级别相比变得更大,且一个切片中可放入更多的要素。 每个切片可显示的总要素数仅为 4000,并且极有可能显示警告消息。

解决方案或解决方法

目前无法在发布服务或通过在 REST 更新服务定义时更改 tileMaxRecordCount 参数。 但是,可通过更新服务定义来更改 maxRecordCountFactor。 要更新服务定义,请浏览到上述服务 URL 的管理视图。 在服务定义中,找到 maxRecordCountFactor 的参数。 默认情况下该参数的值是 1。 如果您的目的是增加 tileMaxRecordCount,以便能够在每个切片中绘制更多的要素,则请将此值增大至 1 以上。 要减少在每个切片中绘制的要素数量,请将该值减小到 1 以下。

注: 
建议不要更改 maxRecordCountFactor,因为增大该值可能会影响浏览器的性能。 

相关信息