Google Earth 是怎样和Web服务器通信的
十月 19, 2006 by 花老鼠 · Leave a Comment
通过KML和Web服务器通信是KML的一大亮点,从而可以实现很多有趣的应用。KML里有个<NetworkLink>标签,他就是可以和Web服务器连接的接口,那我们看看他是怎么和服务器收发数据的。<NetworkLink>里的子元素<Link>(在2.0版本中是<Url>)起到了作用,<Link>里的<href>标签是接受来自Web服务器的信息,里面可以是任何平台或语言生成的Kml文件。而数据的发送是有标签<viewFormat>来完成的,发送的数据目前可以有三大类BBOX、CAMERA和VIEW。下面是它们分别可以提供的数据。
BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth] //西经、南纬、东经、北纬
CAMERA=[lookatLon],[lookatLat],[lookatRange],[lookatTilt],[lookatHeading]//相机所在位置的经纬度、视线射程、倾斜度
VIEW=[horizFov],[vertFov],[horizPixels],[vertPixels],[terrainEnabled]
默认情况下,就是说没有写<viewFormat>标签,那客户端也会发送BBOX这个参数给<Link>。数据的发送是以GET的方式发送。
这里要着重说一下<viewFormat>里发送数据的书写格式,在官方的Kml说明里不知道是我没理解,还是他本来就写的不对,反正那个样例我没测试成功,如果要发送多个参数我测试成功的写法是
为了遵循XML的规则,我们还必须给个安全套<![CDATA[]]>
除了<viewFormat>可以发送屏幕里的这些数据外,<httpQuery>这个标签还可以向服务器发送客户端的一些信息:
[clientVersion] 客户端版本
[kmlVersion] KML版本
[clientName] 客户名
[language] 语言
