Skip To Content

Shapefile

shapefile 是一种 Esri 矢量数据存储格式,用于存储地理要素的位置、形状和属性。其存储为一组相关文件,并包含一个要素类。Shapefile 通常包含具有很多关联数据的大型要素,并一直用于 GIS 桌面应用程序(例如 ArcMap)。如果 shapefile 中的数据量很少,可以将其以包含 .zip.shp.shx.dbf 文件的 .prj 文件形式添加到使用 Map Viewer 创建的地图中,这样其他人便可通过 web 浏览器查看该 shapefile。

添加 shapefile 后,Map Viewer 将其转换成一种 Web 客户端可以快速读取和显示的格式。要进一步提高显示性能,可以选择概化 shapefile 中的要素。概化通过简化要素来减小 shapefile 的大小,通常适用于小比例下的数据。

概化要素以便于 web 显示

Shapefiles 通常包含具有很多关联数据的大型要素。要通过 web 正确显示 shapefile,通常需要数据量较少的小型要素。概化要素是一种减小 shapefile 大小,进而改善 web 显示的方法。可以使用桌面应用程序(例如 ArcMap)概化要素,或者在将文件添加到地图时通过 Map Viewer 概化要素。在 Web 墨卡托中,概化可将 shapefile 图层的精度降至约 1 米左右,并会移除 10 米内的折点。概化应保持要素的详实和精确显示,同时又可减小数据的整体大小并使图层能够快速显示在地图中。

概化不太适合在大比例下显示的重合面要素,因为这种情况下,概化操作会在面中创建一些狭长面。对于在大比例下显示的重合面,如果数据量相对较小,可以选择保留要素,如果数据量较大,则可以将要素服务发布到 GIS Server 站点。如果您在组织中具有发布权限,还可以通过发布要素创建要素图层。

添加 shapefile 注意事项

最初创建 Shapefile 是为了在桌面应用程序上执行地理处理。现在,一些 Web 浏览器客户端(包括 Map Viewer)也支持 shapefile。对于 Web 浏览器客户端可支持的内容,有一些限制。

最佳实践

下面是在 Map Viewer 中使用 shapefile 的最佳做法。

  • 如果想要以小比例显示大量要素且尚未在 ArcGIS Desktop 中概化顶点,则应选择概化要素以便于 web 显示。
  • 创建一个 .zip 文件,其中包含组成 shapefile 的 .shp.shx.dbf.prj 文件。
  • 将 shapefile 直接存储在 .zip 存档的根目录(中心目录)下,而不是存档内部的目录下。如果 .zip 文件查看器显示路径信息,则路径应为空。
  • 新图层的名称与所添加 .zip 文件的名称相同。可以在添加到地图之前重命名文件,也可以在添加到地图之后重命名图层。
  • 添加标准压缩存档 .zip 文件。
  • 无法将含有超过 4000 个点要素(或 2000 个线要素或面要素)或大于 10 MB 的 Shapefile 直接添加到 Map Viewer。如果文件过大,则概化要素通常将减小总体大小,并且允许将 shapefile 添加到地图。如果该方法不起作用,可能需要使用 ArcGIS Server 创建要素服务。如果具有发布权限,您也可以通过向您的门户发布 CSV 文件或 shapefile 来创建要素图层。可以尝试将要素分解成多个 shapefile,但这可能会导致地图需要较长的时间才能显示。
  • shapefile 应包含有效几何。如果拥有 ArcMap,则可以使用修复几何地理处理工具在 shapefile 中修正无效几何
  • 将用于定义数据坐标系的附带 .prj 文件添加到 shapefile 中。如果装有 ArcMap,则可定义 shapefile 的坐标系,从而为 shapefile 创建相应的 .prj 文件。

限制

以下限制条件适用于在 Map Viewer 中使用 shapefile:

  • 门户必须使用托管服务器才能将 shapefile 添加至 Map Viewer 或将 shapefile 作为要素图层进行发布。
  • 不支持 .zip 存档以外的压缩格式。
  • Shapefile 的大小必须小于 10 Mb,并且包含少于 4,000 个点要素,或者少于 2,000 个线要素或面要素。如果您在组织中具有发布权限,则建议将超出此限制的 shapefile 发布为托管要素图层
  • 不支持以下要素:多面体或多点几何,跨国际日期变更线的几何,或面中的自相交。具有这些要素的 Shapefile 无法添加到地图中。
  • 无法直接将 Shapefile 拖放到 Map Viewer;必须使用 Map Viewer 中的添加按钮。