`
saybody
  • 浏览: 868652 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Google Earth的KML语法

阅读更多
原文出处:http://www.cnblogs.com/3stone/archive/2006/08/01/464580.html
说明:对该文中的部分英文进行了翻译。
修改后的文章如下:

KMLGoogle Earth的地标文件格式,全称是Keyhole Markup Language KML,基于XML语法结构,用来描述GE地标信息如点、线、图片、折线、颜色、图标、视角等。以下是在开发过程中经常用到的一些语法说明,主要围绕NetworkLink对象展开。
目前的语法解释针对的是KML2.0,GE4出来后,KML也增加了新的内容,升级为2.1版,具体内容以后会贴出来!

<NetworkLink>

复合标签,用来定义一个引用的本地或远程的KML文件。我主要用它来读取远程数据库中的地标信息。

以上内容是一个NetworkLink对象的完整代码,其中的关键字可参考下面的语法解释:

<RefreshMode>

设置
Sets the type of refresh that is done to a network link or ground overlay, either refreshing upon a designated interval or only once upon loading in Google Earth (default).

<refreshMode>onInterval</refreshMode>

值:用onInterval表示KML的刷新是基于时间的。使用once或不填表明刷新只是在网络连接载入或在Google Earth中移动时刷新。

<RefreshVisibility>

单一标签,是<NetworkLink>的子元素.指定网络KML文件被重新加载刷新的时候是否忽略KML文档之中各标注的默认可见性。

: 默认值是0,即忽略KML文档中的默认可见性设置而使所有标注的可见性不变。更改为1既可以在每次网络KML文件被刷新之后重新根据KML文件内容设置标注的可见性。 例如,假设有一项在KML文件之中可见性设置为0,而且refreshVisibility设置为1,当文件第一次加载到Google Earth之中的时候,该项是不显示的如果用户通过点击该项的复选框而已经使该项显示出来,这种情况下该网络KML文件被刷新之后,该项又会重新变成不显示。

<RefreshInterval>

单一标签。用来指定刷新一个网络KML文件或图片标注的时间秒数。

<refreshInterval>121</refreshInterval>

: 以秒为单位。如果该值大于0,则该项每n秒刷新一次,如果该值小于0,则该项根本不会被加载,如果该值等于0,则该项会被加载一次而不会再被刷新。

<ViewRefreshMode>

单一标签,是<NetworkLink>的子元素,指定在什么情况下向<href>网络服务器发送当前视角坐标。

: onStop 代表视图窗口停顿n秒后, n<viewRefreshTime>标签之中指定。

never - Default mode. If <viewRefreshMode> is undefined, data is not refreshed when the camera view changes in Google Earth.
<viewRefreshTime>

单一标签,是<NetworkLink>的子元素,指定向网络服务器发送当前视角坐标的频率。

:一个代表秒的整数。

<ViewFormat>

这个元素用来选择在一个查询中什么信息由Google Earth发送到服务端,并且允许你指明Google Earth查询的格式。
<viewFormat>格式是网络连接<Url>元素的一个子元素,它允许对返回给服务端的信息进行更加复杂的控制。如果没有指明这个标签,返回的信息是WMS样式的。东、南、西、北并列,但是现在你能以任意的顺序返回任意的这些参数,包括在<LookAt>中的一些参数。下面的例子返回在逗号相隔的所有的信息。

<ViewFormat>

BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth],[lookatLon],[lookatLat],[lookatRange],[lookatTilt],[lookatHeading]

</viewFormat>

值:用户定义变量. 可用的参数如下
· [bboxWest]

· [bboxSouth]

· [bboxEast]

· [bboxNorth]

· [lookatLon]

· [lookatLat]

· [lookatRange]

· [lookatTilt]

· [lookatHeading]

<Range>

单一标签,是<LookAt>的子元素.描述当前视点的海拔,以米为单位。

<range>909.907</range>

值:由视点的位置决定。

<Heading>

单一标签<LookAt>的子元素,当前视角在水平面上的投影和正北的夹角,下面的例子表现了一个向西的视角。

<heading>-90<heading>

: 由观测者(视点)方向决定,以度为单位。

<Latitude>

单一标签,是<LookAt>的子元素。 指定从-9090的纬度值。

<latitude>33.3205<latitude>

: 由视点坐标决定,单位是度。

<Longitude>

单一标签,是<LookAt>的子元素. 指定从-180180的经度值.

<longitude>-111.965<longitude>

: 由视点坐标决定,单位是度.

<LookAt>

复合标签。为标注或目录定义观测者坐标(视点)

<LookAt>

<heading>-0.00895499<heading>

<tilt>39.4365<tilt>

<range>214.17<range>

<latitude>37.3895<latitude>

<longitude>-122.086<longitude>

<LookAt>

<Tilt>

单一标签,<LookAt>的子标签. 代表视点到指定点的角度(视角),值为0代表没有倾斜,即在Google earth中的视角是垂直向下的.值为90代表最大倾斜度,即在Google earth中视角是水平的。

<tilt>0.000000<tilt>

: 代表视角倾斜度的数值,单位可以是十进制的度数,也可以是其他标准GIS数值。

<viewBoundScale>

在覆盖图层的时候使用——在网络连接或标注的时候,用来指示用来填充数据的屏幕空间的百分比。如果你正在创建一个土地覆盖图层来指明通过一个网络连接的动态数据,你能够设置观察的等级为1.0,以便动态的数据整个覆盖屏幕。这

个将是当用户需要调整覆盖图层的大小时的一个典型设置。
值:查看范围比例在网络连接时默认被设置为1.0,在覆盖图层的时候如果没有
指定时是0.75,另外,你可以屏幕大小的一部分的值,包括大于1.0的值。
记住当你为用户可能想要修改位置的土地覆盖图层使用这个标签的时候,为了
便于编辑,你应该将这个值设置为一个小点的值。另外,设置范围来反映对你想要显示的客户端屏幕的查看边界的相对数据的范围。

<NetworkLink>
<name>NEUSRadar</name>
<flyToView>1</flyToView>
<Url>
<href>http://www.example.com/NetworkLink.aspx</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>30</refreshInterval>
<viewRefreshMode>onStop</viewRefreshMode>
<viewRefreshTime>7</viewRefreshTime>
<ViewFormat>
BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth],
[lookatLon],[lookatLat],[lookatRange],[lookatTilt],[lookatHeading]
</viewFormat>
</Url>
<refreshVisibility>1</refreshVisibility>
</NetworkLink>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics