- 什么是 KML?
- 哪些人使用 KML?
- 如何创建 KML 文件?
- 如何打开 KMZ 文件?
- 如何为天文学数据创建 KML?
- Google 地球支持哪些 KML 标签?
- Google 地图支持哪些 KML 标签?
- 在哪里可以找到《开发者指南》?
- 为什么我的线会消失?
- 能否在 KML 内画圆圈?
- 能否将 LineString 改为虚线或带箭头?
- 如何隐藏地标的标签?
- 为什么会收到解析错误?
- 如何知道自己编写的 KML 文件是否为有效的 KML 文件?
- 是否有方法控制屏幕上的显示内容,以便用户离地球表面越近,看到的细节越多?
- 能否为 MultiGeometry 元素中的不同几何图形指定不同的颜色/样式?
- 打开 KML 文件时能否打开提示框?
- NetworkLink 刷新时能否一直开启提示框?
- 能否查看我的用户创建的 KML?
- 能否从 KML 中控制时间滑块?
- 如何构建与 KML 的交互操作?能否将表单放入 KML 说明提示框的 HTML 中?
- 能否从电子表格自动创建 KML?
- 为什么 KML 文件没有从我的网络服务器正确下载?
- 如何将网络相机放入 KML?
- 为什么我的提示框内容显示其使用的图片网址可能格式错误?
- 哪些内容会受到新相对路径规则的影响?
- 该如何修复 KMZ 中的相对路径?
- Google 地球的“我的位置”中的 KML 是否会发送到 Google 服务器?
使用入门
KML 几何图形
KML 的高级地图项
网络上的 KML
KMZ 文件中的相对路径
其他
- 什么是 KML?
-
KML 是一种文件格式,用于在地球浏览器(例如 Google 地球、Google 地图和 Google 地图移动版)中显示地理数据。您可以创建 KML 文件以精确定位地点,添加图像叠加层并以各种全新方式展示丰富数据。KML 是由开放地理空间联盟(Open Geospatial Consortium, Inc.,简称 OGC)维护的国际标准。
- 哪些人使用 KML?
-
KML 社区广泛多样,正如您在访问 Google 地球社区论坛时看到的一样。临时用户创建 KML 文件来标记家庭住址、记录行程、计划跨国徒步游览和骑车探险。科学家使用 KML 来提供资源、模型和趋势(例如,火山爆发、天气形势、地震活动和矿藏)的详细绘图。房地产专业人员、建筑师和城市开发代理商使用 KML 对建筑提出建议并直观展示方案。学生和教师使用 KML 研究古今人物、地点和事件。《国家地理》杂志社、联合国教科文组织和史密森尼博物馆等组织都使用 KML 来展示所收集的大量全球数据。
- 如何创建 KML 文件?
-
有三种主要工具可创建 KML 文件。
- Google 地球。这是用来创建 KML 文件的最重要工具。使用 Google 地球,您可以创建
- 地标
- 路径
- 多边形
- 图像叠加层
- 网络链接
- 位置模型
- 以上所有对象的文件夹
- PhotoOverlay
- 文本编辑器。在 Google 地球中创建对象后,将其粘贴到文本编辑器,开始对其进行编辑。
- XML 编辑器。KML 是一种用于描述地理内容的 XML 语言。XML 编辑器是个奇妙的文本编辑器,它提供了许多用于创建 XML 文档的工具,例如可确保您用正确的闭合标签闭合 KML 元素的标签完成程序。
创建了其中一个对象后,在“位置”面板中右键点击该对象,并选择“复制”。然后,您可以将该对象粘贴到文本编辑器或 XML 编辑器,开始对其进行编辑。
还有许多由 Google 地球社区中的用户创建的工具。查看 KML 开发者支持 Google 网上论坛。
- Google 地球。这是用来创建 KML 文件的最重要工具。使用 Google 地球,您可以创建
- 如何打开 KMZ 文件?
-
KMZ 文件是可在 Google 地球中查看的一个或多个文件的压缩集。这些文件使用 ZIP 格式压缩,并可使用任何常用 ZIP 工具打开,例如“WinZip”、“7-Zip”或 Windows 的默认 Windows XP 压缩文件夹工具、Mac OS 的“Stuffit”、Mac OS 或 Linux 的“ZIP”。您可能需要将文件扩展名从 .kmz 改为 .zip,这样 ZIP 工具才能识别该文件。再次使用该文件之前,请记得将文件扩展名改回 .kmz。
- 如何为天文学数据创建 KML?
-
KML 可以用于表示天文学数据,并可加载到 Google 星空或 Microsoft 的世界望远镜。有关详情,请查看 KML 中的星空数据一文。
- Google 地球支持哪些 KML 标签?
-
Google 地球支持所有 KML 标签。有关所有标签的列表,请参见 KML 规范。
- Google 地图支持哪些 KML 标签?
-
Google 地图支持 KML 标签的子集。请点击此处查看列表。
- 在哪里可以找到《开发者指南》?
-
《开发者指南》位于 https://developers.google.com/kml/documentation/topicsinkml.html。
- 为什么我的线会消失?
-
LineString 设有 clampToGround 时,就一定会沿着球体曲线绘制。不过,如果设为“relativeToGround”,您可能需要添加更多的点,否则它会穿过球体或地形以直线路径画出更长的线。
例如,该 LineString 会穿过地球,彻底消失:
<kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark> <name>Untitled Path</name> <LineString> <tessellate>0</tessellate> <altitudeMode>absolute</altitudeMode> <coordinates>-115.415105,40.669016 -37.752364,34.879979</coordinates> </LineString> </Placemark> </kml>
添加更多的点会减少位于地下的线的数量。<tessellate> 的值应该也是“1”,以确保线沿着地形绘制。
<Placemark> <name>Untitled Path</name> <LineString> <tessellate>1</tessellate> <altitudeMode>relativeToGround</altitudeMode> <coordinates> -134.148103,37.752967 -128.917074,38.803008 -125.166954,39.583592 -122.137625,39.656880 -120.421783,40.036311 -118.298157,40.235316 -114.348386,40.631532 -112.670431,40.761033 -111.916045,40.681939 -110.177711,40.653055 -109.544331,40.619327 -107.155697,40.642007 -105.410526,40.421505 -103.192299,40.430138 -102.853712,40.427904 -98.168302,40.363524 -97.093391,40.308754 -94.831304,40.479175 -93.760070,40.395392 -84.913828,39.466651 -84.414888,39.387332 -81.380660,39.188551 -80.276261,38.977744 -77.811560,38.872542 -75.062267,38.521146 -72.006956,38.101733 -66.67819,37.664687 </coordinates> </LineString> </Placemark>
- 能否在 KML 内画圆圈?
KML 中没有圆圈几何图形,但您可以使用具有许多紧密坐标的 LineString 来创建非常类似于圆圈的图形。下面提供了一个示例。
- 能否将 LineString 改为虚线或带箭头?
-
<LineStyle> 可让您更改线的颜色、透明度和尺寸。但是,目前不支持在 KML 中更改线的类型。
- 如何隐藏地标的标签?
在 Google 地球中,地标旁边显示的标签取决于 <name> 元素。将 LabelStyle 中的 scale 元素设置为0,即可隐藏该标签。
<Style id="hideLabel"> <LabelStyle> <scale>0</scale> </LabelStyle> </Style>
- 为什么会收到解析错误?
-
导致解析错误的主要原因有两个:
- 字母大小写问题:KML 与所有 XML 语言一样,是区分大小写的。它要求所有元素名称的大小写均正确无误。例如:应使用 <Placemark>、<href>、<Link>,而非 <PLACEMARK>、<Href>、<lInk>
- 标签不完整:各元素必须以相同的标签开始和结束。有时人们会忘记闭合标签,或遗漏了尖括号(< 或 >)例如:
<name>Atlanta</name> 是正确的
<name>Atlanta 是错误的
<nameAtlanta</name> 是错误的
<nameAtlanta<name> 是错误的
- 如何知道自己编写的 KML 文件是否为有效的 KML 文件?
KML 是一种 XML 标记语言。您可以用以下某种方法进行验证:
- 是否有方法控制屏幕上的显示内容,以便用户离地球表面越近,看到的细节越多?
-
区域标签用于控制您要向用户显示哪些地图项。要了解有关区域的详情,请参见以下最佳资源:
- 能否为 MultiGeometry 元素中的不同几何图形指定不同的颜色/样式?
-
MultiGeometry 元素将几何图形分组集中在同一个 Placemark 元素中。这可让几何图形共享相同的样式设置,并在列表(例如 Google 地球中的“我的位置”面板)中显示为一个项。
样式可在地标级别使用 styleUrl 元素或 Style 元素进行设置。因此,该地标内的单个几何图形不能具有不同的样式。
常用的方法是为每个几何图形创建单独的地标,从而为每个几何图形设置不同的样式。为防止列表中的项扩散,将这些项放入具有 ListStyle(包含 listItemType 和 checkHideChildren)的 Folder 中。例如,在 Google 地球中,此方法会将所有地标放在“我的位置”的同一 folder 元素中,从而防止用户在打开时看到大量元素。
- 打开 KML 文件时能否打开提示框?
目前,KML 不支持在打开 KML 文件时打开提示框。不过,如果您使用了地图项锚点,则可以在将打开第二个 KML 文件的提示框中创建链接或创建其他提示框。
- NetworkLink 刷新时能否一直开启提示框?
-
目前,KML 不支持 NetworkLink 刷新时仍保留提示框状态。
- 能否查看我的用户创建的 KML?
-
目前,您不能使用 NetworkLink 捕捉用户在 Google 地球或 Google 地图中创建的 KML。但您可以将 Earth API 或 Google Maps API 用作 KML 创建工具并将该信息捕捉回服务器。有关示例,请访问 GeoDataStore。
- 能否从 KML 中控制时间滑块?
-
具有 TimeStamp 或 TimeSpan 元素的 KML 文件打开时,KML 中的时间滑块就会立即打开。时间滑块会查找所有当前选定的 TimeStamp 和 TimeSpan 元素,并进行调整以显示所有日期。目前,KML 不支持对时间滑块进行更多控制(例如设置当前选定的时间或选择显示的时间范围)。有关使用时间滑块的详情,请查看时间和动画一文。
- 如何构建与 KML 的交互操作?能否将表单放入 KML 说明提示框的 HTML 中?
-
目前,Google 地球的 KML 只支持说明演示(而非互动)的 HTML 子集。带有表单的 KML 可在 Google 地图内使用。
但是,您可以在 Google 地球使用的 KML 内构建 Flash 表单。要执行此操作,请将 Flash 应用嵌入 KML 说明提示框内的 HTML。上述方法不适用于 Google 地图。
- 能否从电子表格自动创建 KML?
-
下面是执行此操作的几个基本方法。
- 您可以自己以编程方式执行此操作,使用自己的应用解析 CSV 文件并根据它创建 KML。有关示例,请查看将 CSV 文件转换为 KML。
- 使用在线电子表格。例如,Google 地球推广小组根据 Google 电子表格创建了电子表格制图程序。
- 将某个 Excel 应用到 KML 创建工具,例如 [link to tek's thread] 这个工具
- 使用 Google 地球增强版或专业版加载文件,然后将文件另存为 KML 或 KMZ 文件
- 为什么 KML 文件没有从我的网络服务器正确下载?
- 为什么我的提示框内容显示其使用的图片网址可能格式错误?
-
Google 地球最近做出一项更改,改变了地图项提示框中内容的链接处理方法,从而使之前未指定的行为变得更加清楚。因此,当用户点击具有无效链接结构的 KMZ 中的链接时,系统将转到一个显示“将您转到此处的链接可能格式错误。请点击以下链接,尝试使用传统模式。”的页面。如果您看到此讯息,应更改 KML/KMZ 内容的结构,以确保能够完全兼容 Google 地球的新版本。
有关详情(包括如何正确重构 KMZ 内容的详情),请参见本文。
- 哪些内容会受到新相对路径规则的影响?
目前,只有地图项提示框内容中的链接(网址的链接)会受到此更改的影响。其中包括 <BallonStyles> 中的 <description> 和 <text> 标签。不过,Google 地球的新版本可能具有更强的一致性,因此应始终避免将父目录用作 KMZ 内容中相对链接的基本网址。
- Google 地球的“我的位置”中的 KML 是否会发送到 Google 服务器?
-
不会。用户在 Google 地球中创建的 KML 或加载到 Google 地球中的 KML 不会发送到 Google。关于该数据的所有处理和存储活动都在本机上完成。
您需要告知网络服务器它们所提供的文件的类型。某些浏览器(例如 Firefox)会猜测文件类型。其他浏览器(例如 Internet Explorer)则依赖网络服务器的 MIME 类型设置进行判断。
对于 Apache 服务器,您需要在 httpd.conf 中加入以下两行:
AddType application/vnd.google-earth.kml+xml .kml
AddType application/vnd.google-earth.kmz .kmz
对于 Microsoft 的 Internet Information Server,您需要遵循以下指示:
IIS 6.0版:
http://support.microsoft.com/kb/326965IIS 4.0和5.0版:
http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/iis/maintain/featusability/mimeiis.mspx如果您的网络服务器由您自己管理,那么您必须更改自己的配置。否则,请与您的网站托管服务方联系,要求该方做出以上更改。