您现在可以创建 KML 文件来显示星空中的物体,例如星体、星座、行星、月亮和银河。本页介绍如何创建 KML 文件,以便在 Google 星空中显示天体数据。具体来说,您需要执行以下操作:
- 在您的 KML 文件开头,将 hint 属性添加到 <kml> 元素,指明该文件包含 Google 星空数据而非 Google 地球数据
- 将天体坐标转换为基于 Google 地球的 KML 坐标
Google 星空模式
Google 地球用户可以通过“视图”>“切换到 Google 星空”菜单选项或用户界面中的“Google 星空”按钮控制是否切换到 Google 星空模式。用户切换到 Google 星空模式后,Google 地球会切换视图,显示地球上和外太空中的望远镜所拍摄到的星空图片。该星空视图与用户站在地球中心朝外面向星空看到的一样。用户可以通过该模型探索头顶上的星空,以及只能从地球的另一侧才能正常观测到的天球部分。
坐标
天体坐标基于赤经 (RA) 和赤纬描述。赤经对应于经度,代表从春分时星空中太阳和天赤道的交点开始测量的距离。赤经按0到24小时进行度量,一小时 RA 等于地球表面给定点上方的星空在一小时内的旋转量。零小时 RA 位于春分点,RA 自该点向东逐步递增。
赤纬对应于纬度,赤纬0度就是天赤道。赤纬值的范围是从南极正上方的−90°到北极正上方的+90°。
下图显示了标出赤经赤纬的带网格线的 Google 星空:
![](https://developers.google.cn/static/kml/documentation/images/skyGrid.gif?authuser=0&hl=bg)
支持的元素
Google 地球4.2版星空模式支持以下元素:
- Placemark
- 地面叠加层
- LineString
- 多边形
- MultiGeometry
- LinearRing
- Point
- Style 元素
- Container 元素
但请注意,当前这些元素中会忽略 <tilt> 和 <roll>。
hint 属性
如果您的 KML 文件包含 Google 星空数据,请务必将 hint 属性添加到文件开头的 <kml> 元素:
<kml xmlns="http://www.opengis.net/kml/2.2" hint="target=sky">
加载带有 "target=sky"
hint 的文件时,Google 地球会提示用户切换到 Google 星空视图(如果当前未在该模式下)。
转换天体坐标,以便在 Google 地球中显示
为使数据可在 Google 地球(Google 星空模式)中正确显示,您需要执行一些简单的计算,将赤经坐标(时/分/秒)转换为经度值。
转换赤经坐标
要将赤经坐标从0到24范围内的值转换为−180°到+180°范围内的值,请使用以下公式,其中时、分和秒是数据的原始赤经值:
(时 + 分/60 + 秒/3600)*15 − 180
转换赤纬坐标
赤纬坐标直接对应于纬度值,范围从天赤道南−90°到天赤道北+90°。
计算 LookAt 元素的范围
对星空数据使用 <LookAt> 元素时,需要执行以下计算来确定范围。基本公式如下:
r = R*(k*sin(β/2) - cos(β/2) + 1)
其中
- r
- 是 <LookAt> 元素中指定的范围
- R
- 是天球半径(或者,在此情况下是地球半径,因为我们实际上是在地球的内部朝外观察星空),等于6.378 x 106
- k
- 等于1/tan(α/2) 或1.1917536
- α
- 是镜头拉回天球(地球)中心时,Google 地球视图的角度范围
- β
- 是星空图片所需的弧秒
![](https://developers.google.cn/static/kml/documentation/images/skyRange.gif?authuser=0&hl=bg)
请注意:Google Calculator 是执行这些计算的便捷工具。
以下是一些范围示例:
- 大的旋涡星系(葵花星系):20至30公里
- 大的球状星团 (M15):20至30公里
- 仙女座星系:200公里
- 行星状星云(猫头鹰星云):5至10公里
- 大的星云(三裂星云):10至30公里
- Single Hubble Pointing(赛佛特六分仪座):2至5公里
- 疏散星团(尾宿八):30至60公里
- 较小的旋涡星系:5至10公里
- 大麦哲伦星云:400至500公里
在 Google 地球中保存文件
在 Google 地球中,如果您在 Google 星空模式下保存文件,则 Google 地球会假定您要将文件保存为 Google 星空文件,因此它会自动将 hint 属性添加到 <kml> 元素。
示例
以下示例显示的是创建在 Google 地球中显示蟹状星云的 KML 文件:
<kml xmlns="http://www.opengis.net/kml/2.2" hint="target=sky">
<Document>
<Style id="CrabNebula">
<BalloonStyle>
<text><center><b>$[name]</b></center><br/>$[description]</text>
</BalloonStyle>
</Style> <Placemark>
<name>Crab Nebula</name>
<description>
<![CDATA[
This is the Crab Nebula. It is the remnant of a supernovae that was
observed on Earth in 1054 CE. You can find out more about the Crab
Nebula by looking at the information in the default layers, specifically:
<ul>
<li> <b>Backyard Astronomy</b>
<li> <b>Hubble Showcase</b>
<li> <b>Life of a Star</b>
</ul>
Enjoy exploring Sky!
]]>
</description>
<LookAt>
<longitude>-96.366783</longitude>
<latitude>22.014467</latitude>
<altitude>0</altitude>
<range>10000</range>
<tilt>0</tilt>
<heading>0</heading>
</LookAt>
<styleUrl>#CrabNebula</styleUrl>
<Point>
<coordinates>-96.366783,22.014467,0</coordinates>
</Point> </Placemark>
</Document>
</kml>
该文件在 Google 地球中显示如下:
![Google 地球的屏幕截图](https://developers.google.cn/static/kml/documentation/images/crabNebulae.gif?authuser=0&hl=bg)