KML学习笔记

简单介绍

kml是一种在google map和google earth上显示内容的一种方式,支持:地标,多边形,路径,线段,覆盖图层等内容的显示

几何图形样式:

    在google earth中可以使用类似CSS的效果。只要在开头定义样式,在几何图形,地标和叠加层中就可以使用该样式。即可用 元素多次引用它。如果样式定义位于同一文件内,请在样式 ID 前加 # 号。如果样式定义位于外部文件中,请在 元素中包含完整的网址。

突出显示图标的样式

     定义了两种样式:一种用于“normalPlacemark”,另一种用于“highlightPlacemark”(光标移动到图标上时显示)。 元素有两个键/值对,可以将每个图标样式映射到图标状态。图标状态有两种:“普通”和“突出显示”。

屏幕叠加层

      使用ScreenOverlay定义。叠加层的定位是通过将 指定的图像中的点映射到 指定的屏幕上的点来控制的。在这种情况下,图像左上角 (0,1) 与屏幕上的这一点重合。

网络连接

      载入文件且带有 (超链接引用)的 元素。 可指定为本地文件或绝对网址。href可以为 图标样式、地面叠加层和屏幕叠加层中的图像文件; model中的模型文件; KML或KMZ文件。

KML中动态数据

      除了指向包含静态数据的文件外,网络链接的 可指向动态生成的数据。服务器必须 (1) 返回响应代码 HTTP 200,并且 (2) 将响应的内容类型设置为 text/plainapplication/vnd.google-earth.kml+xml.

基于视图刷新查询

     实现双向通讯,当激活视图的刷新时,google地球会在指定时间内将视图坐标返回给服务器。这一指定时间可以是每“n”秒、分钟、小时或视图停止移动后经过的一段时间。可用于很复杂的应用。例如,如果您有地理信息数据库,便可提取观察者坐标,从数据库调用该视图专有的数据,以 KML 形式返回给 Google 地球。

KML MIME类型

     动态生成的KML文件的MIME有一定的格式,见http://code.google.com/intl/zh-CN/apis/kml/documentation/kml_tut.html#advanced_kml 参考

kml开发指南

kml中游览

     可以通过地理空间数据控制飞行进行游览,主要用于多个景点之间的自动运行。对以下内容进行控制:

各位置之间特定的飞行时长 各位置之间平稳无停顿飞行 游览期间在预先确定的时间播放声音文件吗,切换对话框 在游览范围内临时更新到 KML 地图项

海拔高度模式

    KML 的许多地图项都可以包含 元素或坐标,用以指定该特定地图项高出地平面、海平面或海底的距离。

    元素有以下 从地球的表面 relativeToGround;从海平面上放 absolute 从主水体的底部  relatvieToSeaFloor   紧贴地面(clampToGround)模式会忽略所有海拔高度值,并将 KML 地图项按照地形附着在地面上。 clampToSeaFloor会紧贴海底。

时间和动画

     所有地图项都可以将时间数据与之进行关联。该时间数据具有将数据集的可视性限制到指定时间段或时间点的作用。timestamp为指定的地图项指定一个时刻; TimeSpan为指定的地图项指定begin和end。

    TimeStamp 通常与点地标相关联。在路径沿途的各个位置简单显示地标图标,使得地标具有动画效果。此技术在创建 KML 来显示从 GPS 跟踪设备导入的数据时特别有用。

      要显示立即转变的多边形和图片叠加层,您可以使用 TimeSpan 对象指定时间段的开始和结束。此技术通常用于显示诸如地面叠加层等多边形和图片中的变化,例如,显示冰河后退的路径,火山灰烬的弥漫和多年以来记录日志的努力程度。

    示例显示了使用 TimeStamp 元素显示地标沿路径移动。对 TimeStamp 进行紧密采样,因此当播放 KML 文件时地标图标会沿路径进行动画展示。

镜头

KML 2.2 中一个重要的新元素就是 ,它提供了另一种途径来指定观察者视点与相关的视图参数。 相似,因为两种元素都是定义虚拟镜头来观察地球的位置和方向。区别就在于,LookAt 相对于观察的景点来指定视图。相比之下,Camera 则相对于观察者的位置和方向来指定视图。

都派生自 元素,它是一个基础抽象类。 在 KML 文件中的用法相同,即它们都作为派生自 (Placemark、ScreenOverlay、GroundOverlay、PhotoOverlay、Folder、Document、NetworkLink)的任一元素的子元素,或作为 的子元素。您可以在某地图项内使用 ,但不能同时使用两者(即只有一个虚拟视点可以指定当前视点)。 

  能够提供全面而自由的视角,以全景六度来控制视图,因此您可以在空间中定位镜头,然后将它绕着 X、Y 和 Z 轴旋转。

旋转的顺序很重要。默认情况下,镜头方向沿 −Z 轴指向地球。在执行旋转之前,镜头方向沿“Z”轴转换到 转换顺序如下:

  1. - 沿“Z”轴转换到 。
  2. - 绕“Z”轴旋转。
  3. - 绕“X”轴旋转。
  4. - 绕“Z”轴旋转(第二次)。

请注意,每次应用旋转时,两条镜头轴都要改变方向。

更新     

      要逐步修改通过 NetworkLink 加载的数据,请使用 Update 元素,该元素是 NetworkLinkControl 的子元素。更新可以包含按顺序处理的任意数量的更改、创建和删除元素。

到期

默认情况下,数据只通过链接载入到 Google 地球中一次。为避免 KML 数据过时,您可以针对由 元素(在 Link 或 Icon 元素中)载入的任何数据来将“onExpire”指定给“refreshMode”。

使用区域

“区域”是一个强大的 KML 地图项,通过它您可以向 Google 地球添加大型数据集,而性能却不会降低。只有当数据位于用户视图内且占据一定的屏幕时,才会载入并绘制该数据。使用区域,您可以为数据提供单独的细节级别,因此只有当数据占据了部分足够显示细节的屏幕时,才会载入微妙的细节。

   与区域关联的次要概念是“细节级别”,简称“LOD”。由于计算机屏幕的空间有限,因此最有效的方式是激活区域,以便只有当像素足以充分显示数据时才载入大量数据。当区域占据屏幕相当小的一部分(可能因为用户正在从远处查看,或从倾斜角度查看平面区域)时,LOD 机制允许您(KML 编写者)指定低分辨率的数据集来替代全分辨率数据。此低分辨率数据集载入的速度更快,但由于它还是占用了屏幕的一小部分,因此用户可能无法辨别其差异。

模型

       模型在 Google 地球中的使用就像任何其他几何对象(点、linestring 或多边形)一样。oritentation指定旋转方向. ResourceMap 元素将纹理文件从原始 Collada 文件 () 中的指定位置映射到包含该模型的 KML 或 KMZ 文件 () 中的某个位置。

      KMZ文件是kml及其相关的图片 dae文件的zip包

展开阅读全文

没有更多推荐了,返回首页