2

问候,

我想编写一个脚本来处理来自 Google 地球的简单 http 请求并发送回 KML 以显示本地存储的地图图块。我想使用 Python,但任何语言都可以。我从来没有用 CGI 做过任何事情,但我认为这是完成我的任务的最简单方法。这是 Google KML 文档使用的,是与 Google Earth 对话的 Python CGI 脚本。 是否有一个我可以下载(并在 Windows 7 上运行,或者如果绝对必要我可以构建一个运行 linux 的 VM)的 CGI 服务器,我可以将我的 Python 脚本放到上面并继续运行?

基本上,当我在 Google 地球的屏幕上移动时,它会向我的服务器发送一个请求,它会告诉 Google 地球要在屏幕上显示什么。简单的。

背景:我经常带着我的笔记本电脑开车,它带有一个 USB GPS 接收器,可以在 Google 地球上实时更新我的​​位置。但是,由于我处于离线状态,我无法从谷歌地图动态下载地图图块,这样我就可以看到街道名称等。我一直在下载地图图块并将它们拼凑成一个大 PNG 以覆盖我将开车进入的城市,然后将这些图像作为叠加层导入 Google 地球,但我想构建一个在本地运行的服务器,点击到存储在机器上的地图图块数据库中,并提供 KML 以将这些图块显示为叠加层,而不必在每次旅行时都提前完成所有工作。

4

2 回答 2

1

如果我是你,我会使用MapServerTilecache来做到这一点(通过可用的 http / python mapscript 绑定提供地理参考光栅图像)。

如果你想要纯 cgi,你可以使用 lighthttpd 或 nxginx 或类似的。

另请注意,抓取谷歌地图图块很可能违反了他们的使用条款。

于 2009-12-11T01:00:41.730 回答
1

标准库中的CGIHTTPServer

# current directory containing cgi-bin directory with scripts in
# subclass CGIHTTPRequestHandler and override cgi_directories to change this
#
os.chdir('/path/to/htdocs')

BaseHTTPServer.HTTPServer(('',80), CGIHTTPServer.CGIHTTPRequestHandler).serve_forever()

它不快,它非常有限(你不能返回任何东西,除了200 OK响应),它可能并不完全安全,但对于这种本地工作来说它很好。

于 2009-12-11T01:03:08.497 回答