看了Servlet-based Google Earth Tours感觉挺好,不过他这个不够简单,我来仿照KML官方网站的python例子,写个简单的小例子把文章的精髓拿出来.
快速体验:
1. 把下面的getest.kml和getest.py保存到本机。
2.把getest.py的第一行改成你的python解释器路径,并放到Apache的cgi-bin下。
3. 双击getest.kml会启动google earth,在Place面板里会出现Python Demo目录,选中它,当你移动屏幕的时候,你会发现屏幕中心一直会有一个placemark,这个placemark是python程序动态返回的。
原理介绍:
1. 先看看KML的<NetworkLink>标签的样子,比如getest.kml
这里主要有两个地方:
一个是 <href>http://localhost/cgi-bin/getest.py</href> ,GE向这个URL要数据,并把BBOX以GET方式发送到该URL,比如http://localhost/cgi-bin/getest.py?bbox=121,36,122,37
另一个是<refreshInterval>2</refreshInterval>
<viewRefreshMode>onStop</viewRefreshMode>
<viewRefreshTime>1</viewRefreshTime>
这几个标签指定了GE发送数据的时间间隔和其他设定。
当我们在GE中打开这个KML文件的时候,GE就回向 http://localhost/cgi-bin/getest.py 要数据,我们就可以在getest.py中对该请求进行处理,并返回结果(KML)。
2. 第二步就是编写getest.py处理这个响应,最简单的是返回一个位于屏幕中心的地标,代码如下:
我们也可以在getest.py中编写复杂的功能,比如从数据库中提取数据生成KML文件,然后返回客户端与GE的数据叠加。原理介绍,简单至上,就这么简单吧。
学习资料(摘自http://www.javaworld.com/javaworld/jw-11-2005/jw-1114-google.html):
Resources