5.4. ArcGIS 对 KML 的支持

ArcGIS 10 中支持 KML 2.2.0 版本。

5.4.1. 1. ArcToolbox 输出 KML

我们可以通过 ArcToolbox 中的“To Kml”工具箱将地图或图层输出为 KML 格式。比如使用“Map To Kml”工具,如图 12 所示:

image0

图 12 使用 ArcToolbox 导出 KML

这样导出的 KML 为 KMZ 文件,如果在 Google Earth 中直接打开导出的

KMZ 文件,可以看到在 Google Earth 中显示的地图和 MXD 中的基本一致。“基本一致”表示还稍有不同,比如在图 13 中蓝色的多边形对象在导出 KML 并加载到 Google Earth [14] 后会被下层的多边形覆盖而导致不可见。不过,这个是

Google Earth 的问题,因为从图层属性中可以看到,这些蓝色多边形所在的

“Lakes”图层数据都存在,可惜没被正确显示,如图 14 的对比效果。

image1

 图 13 ArcMap 中显示的地图效果

image2

 图 14 Google Earth 中显示 KML 的覆盖问题

由于我们选择了导出矢量的数据,因此如果览压缩导出的 KMZ 文件,可以看到其中叧包吨了一个 doc.kml 文件,有兴趣可以自己打开这个 XML 文件对照

KML 标准看一下。如果导出图片格式,KMZ 中将会包吨一个输出的图片,在 doc.xml 则是简单地将这个图片引用进来,这样的 KML 在 Google Earth 中显示并放大后会出现如图 16 的锯齿。

image3

图 15 Google Earth 中显示 ArcGIS 导出的矢量 KML

image4

图 16 导出图片结果的 KML 在 Google Earth 中放大的效果

5.4.2. 2. ArcGIS Server 发布 KML 服务

在 ArcGIS Server 中,通过勾选 KML 这个 Capability 可以启用服务的 KML 访问,如图 17。

image5

图 17 ArcGIS Server 发布 KML 服务

当发布完这个 KML 服务后,我们就可以直接向 ArcGIS Server 的 REST 接口发送返回 KMZ 格式的请求,然后将这个请求的地址添加到 Google Earth 的网络链接中。

image6

图 18 将 ArcGIS Server 发布的 KML 服务添加到 Google Earth 的效果

[14]版本:5.1