关于 shapefile

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

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

概化要素以便于 Web 显示

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

概化不太适合在大比例下显示的重合面要素,因为这种情况下,概化操作会在面中创建一些狭长面。对于在大比例下显示的重合面,如果数据量相对较小,可以选择保留要素,如果数据量较大,则可使用 ArcGIS for Server 创建要素服务。您也可以通过以下方式来创建要素服务:将托管的要素服务发布到您的门户。有关详细信息,请参阅使用 shapefile 或 CSV 文件发布要素服务

添加 shapefile 注意事项

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

最佳范例

下面是在地图查看器中使用 shapefile 的最佳做法。

  • 如果想要以小比例显示大量要素并且还未在 ArcGIS for Desktop 中概化顶点,则应选择概化要素以便于 Web 显示。
  • 创建一个 .zip 文件,其中包含组成 shapefile 的 .shp、.shx、.dbf 和 .prj 文件。
  • 将 shapefile 直接存储在 .zip 存档的根目录(中心目录)下,而不是存档内部的目录下。如果 .zip 文件查看器显示路径信息,路径应为空。
  • 新图层的名称与所添加 .zip 文件的名称相同。可以在添加到地图之前重命名文件,也可以在添加到地图之后重命名图层。
  • 添加标准压缩存档 .zip 文件。
  • 在文件中最多可包含 1000 个 shapefile 要素。
  • 而某些情况下,尝试添加包含少于 1000 个要素的文件时,也会显示一条错误消息,提示 shapefile 太大,无法添加到地图。当提取的数据太大,无法显示在 Web 浏览器中时,会发生此情况。通常,概化要素会减小总体大小,并且能够将 shapefile 添加到地图。如果该方法不起作用,可能需要使用 ArcGIS for Server 创建要素服务。
  • 您也可以通过发布托管的要素服务来创建要素服务。有关详细信息,请参阅使用 shapefile 或 CSV 文件发布要素服务可以尝试将要素分解成多个 shapefile,但这可能导致地图需要更长的时间才能显示。
  • shapefile 应包含有效几何。如果拥有 ArcGIS for Desktop,则可以使用修复几何修正 shapefiles 中的无效几何。
  • 将用于定义数据坐标系的附带 .prj 文件添加到 shapefile 中。如果装有 ArcGIS for Desktop,则可定义 shapefile 的坐标系,从而为 shapefile 创建相应的 .prj 文件。

局限性

下面是在地图查看器中使用 shapefile 的限制条件。

  • 不支持 .zip 存档以外的压缩格式。
  • 不能将包含的要素数大于 1000 的文件添加到地图中。
  • 不支持以下要素:多面体或多点几何,跨国际日期变更线的几何,或面中的自相交。具有这些特征的 Shapefile 无法添加到地图中。
  • 无法直接将 Shapefile 拖放到地图查看器;必须使用地图查看器中的添加按钮。
5/10/2014