- 什么是 KML?
- 谁会使用 KML?
- 如何创建 KML 文件?
- 如何打开 KMZ 文件?
- 如何为天文数据创建 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 地球)中显示地理数据。您可以创建 KML 文件以精确定位地点、添加图像叠加层并以全新方式展示丰富数据。KML 是由开放地理空间协会 (OGC) 维护的国际标准。
- 哪些人使用 KML?
-
KML 社区广泛多样,正如您在访问 Google 地球社区论坛时看到的一样。临时用户创建 KML 文件来标记家庭住址、记录行程、计划跨国徒步游览和骑车探险。科学家使用 KML 来提供资源、模型和趋势(例如,火山爆发、天气形势、地震活动和矿藏)的详细绘图。房地产专业人士、建筑师和城市发展机构使用 KML 提出施工方案并直观呈现方案。学生和教师使用 KML 探索古今人物、地点和事件。《国家地理》杂志社、联合国教科文组织和史密森尼博物馆等组织都使用 KML 来展示所收集的大量全球数据。
- 如何创建 KML 文件?
-
有三种主要工具可创建 KML 文件。
- Google 地球。这是用来创建 KML 文件的最重要工具。使用 Google 地球,您可以创建
- 地标
- lu
- 多边形
- 图像叠加层
- 网络链接
- 位置模型
- 以上所有对象的文件夹
- 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 规范。
- 在哪里可以找到《开发者指南》?
-
《开发者指南》位于 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 目前尚不支持更改 KML 中的线条类型。
- 如何隐藏地标的标签?
在 Google 地球中,地标旁边显示的标签取决于 <name> 元素。将 LabelStyle 中的 scale 元素设置为0,即可隐藏该标签。
<Style id="hideLabel"> <LabelStyle> <scale>0</scale> </LabelStyle> </Style>
- 为什么会收到解析错误?
-
导致解析错误的主要原因有两个:
- 字母大小写问题:KML 与所有 XML 语言一样,是区分大小写的。它要求所有元素名称的大小写均正确无误。例如: <Placemark> 不是 <PLACEMark> <href> 不是 <Href> <Link> not <lInk>
- 标签不完整:各元素必须以相同的标签开始和结束。有时,用户会忘记关闭标记,或遗漏尖括号(< 或 >)
例如:
<name>亚特兰大</name>是正确的
<name>亚特兰大是不正确的
<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。不过,您可以使用 Google Maps JavaScript API 作为 KML 创建工具,并将这些信息捕获回服务器。有关示例,请访问 GeoDataStore。
- 能否从 KML 中控制时间滑块?
-
具有 TimeStamp 或 TimeSpan 元素的 KML 文件打开时,KML 中的时间滑块就会立即打开。时间滑块会查找所有当前选定的 TimeStamp 和 TimeSpan 元素,并进行调整以显示所有日期。KML 目前不允许对时间滑块进行更多控制,例如设置当前选定的时间或选择时间范围的表示。 有关使用时间滑块的详情,请查看时间和动画一文。
- 如何构建与 KML 的交互操作?能否将表单放入 KML 说明提示框的 HTML 中?
-
目前,Google 地球中的 KML 仅支持一部分描述呈现的 HTML,而不是描述互动。
但是,您可以在 Google 地球使用的 KML 内构建 Flash 表单。为此,请将 Flash 应用嵌入到 KML 说明提示框内的 HTML 中。
- 能否从电子表格自动创建 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如果您的网络服务器由您自己管理,那么您必须更改自己的配置。否则,请与您的网站托管服务方联系,要求该方做出以上更改。