如何将带有脚本的 kml 文件上传到谷歌地图?
我有一个 python 脚本,可以生成 kml 文件。现在我想将脚本中的这个 kml 文件(不是每手)上传到谷歌地图的“我的地图”部分。有人有 python 或其他脚本/代码来做到这一点吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我有一个 python 脚本,可以生成 kml 文件。现在我想将脚本中的这个 kml 文件(不是每手)上传到谷歌地图的“我的地图”部分。有人有 python 或其他脚本/代码来做到这一点吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
摘要:问题 2590 已修复,这可能需要一段时间,因为 Google 将此问题作为 WontFix 关闭。您可以尝试使用一些解决方法来获得相同的最终结果,但就目前情况而言,您不能简单地使用 Google 地图数据 API 上传 KML 文件。
长版本:
我上传 KML(位于 <有关如何执行此操作的文档,请参阅 href="http://code.google.com/apis/maps/documentation/mapsdata/developers_guide.html" rel="nofollow">开发人员指南。因此,一种可能的 Python 解决方案是使用标准库中的 httplib 来执行以下操作:适合您的 HTTP 请求。
不没有任何Python代码来执行此操作,但是Google 地图数据 API 允许您通过一系列 HTTP 请求来完成此操作。请参阅经过各种编辑和评论中的反馈后,这里有一个脚本,它通过命令行获取 Google 用户名和密码(请小心使用它!),通过创建
authorization_token
变量来获取authorization_token
变量href="http://code.google.com/apis/maps/documentation/mapsdata/developers_guide_protocol.html#ClientLogin" rel="nofollow">ClientLogin 身份验证请求。通过有效的用户名和密码,可以在Authorization
标头中使用身份验证令牌,将 KML 数据发布到地图数据 API。不幸的是,即使使用有效的登录凭据来获取有效的授权令牌并使用完全包含文档中给出的示例的有效 KML 文件,API 也会使用
400 响应 KML 帖子错误的请求。显然这是一个已知问题(已报告2590 2010 年 7 月 22 日)因此,如果您希望 Google 进行修复,请投票并发表评论。
同时,如果没有修复该错误,您可以尝试
祝你好运
Summary: You can't until issue 2590 is fixed, which may be a while because Google have closed this issue as WontFix. There are workarounds you can try to achieve the same end result, but as it stands you cannot simply upload a KML file using the Google Maps Data API.
Long version:
I
don'tdidn't have any Python code to do this, but the Google Maps Data API allows you to do this with a series of HTTP requests. See Uploading KML in the HTTP Protocol section of the Developers Guide for the documentation on how to do this. So one possible Python solution would be to use something like httplib in the standard library to do the appropriate HTTP requests for you.After various edits and your feedback in the comments, here is a script that takes a Google username and password via the command line (be careful how you use it!) to obtain the
authorization_token
variable by making a ClientLogin authentication request. With a valid username and password, the auth token can be used in theAuthorization
header for POSTing the KML data to the Maps Data API.Unfortunately, even when using valid login credentials to obtain a valid authorization token and using a valid KML file containing exactly the example as given in the documentation, the API responds to the KML post with a
400 Bad Request
. Apparently this is a known issue (2590 reported July 22nd 2010) so please vote for and comment on that if you'd like Google to fix.In the meantime, without that bug fixed, you could try
Good luck