PyMaps:如何在python中与javascript交互

时间:2012-12-28 15:17:23

标签: python python-3.x google-maps-api-2

好的,所以我使用this代码来设置一个简单的程序。基本上它只是在python中的地图上设置点。非常基本的。现在的问题是我有一个条件,当这种情况发生时,它用一个简单的QWebView.setHtml()刷新页面。我现在要做的是找到一种方法来获取地图的当前缩放和中心信息并保存。反正有没有进入javascript并获取该信息,存储它然后将其写入html,就像我在刷新之前已经执行的那样?

很抱歉,如果这是令人困惑或广泛的,我只是想办法使用python从地图获取信息。

1 个答案:

答案 0 :(得分:1)

有许多方法可以与服务器(Python)中的客户端代码进行交互。您可以在客户端上设置cookie,从Javascript向服务器发送AJAX请求,提交表单,或者像WebSockets一样使用更奇特的路径。没有更多信息,我不确定我们能告诉你哪个是最好的。

您使用的是哪种网络框架?

编辑:

哦,我明白了 - 你正在使用一个可编写脚本的网页视图...可能像zoom = view.evaluateJavaScript('map.getZoom();')这样的东西?从我所看到的库中,困难的部分可能是在JS中获得对map的引用。

编辑:

我不认为在没有修改或扩展pymaps的情况下这是可能的,因为它在JS本地范围内调整GMap并且不会在任何地方公开它。我在gist中做到了这一点。然后,您可以使用与上述类似的内容访问缩放 - 可能是zoom = view.evaluateJavaScript("PyMaps[0].gmap.getZoom();")

编辑:

如果不清楚,我要求您使用MyPyMap代替PyMap

从另一个StackOverflow question,我意识到你不能直接在视图上evaluteJavaScript。后续代码看起来更像是

doc = view.page().mainFrame().documentElement()
zoom_level = doc.evaluateJavaScript("PyMaps[0].gmap.getZoom();")