1

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

抱歉,如果这令人困惑或宽泛,我只是想不出一种使用 python 从地图中获取信息的方法。

4

1 回答 1

1

有多种方法可以与来自服务器的客户端代码 (Python) 进行交互。您可以在客户端设置 cookie,从 Javascript 向服务器发送 AJAX 请求,提交表单,或者采用更奇特的路线,例如 WebSockets。如果没有更多信息,我不确定我们能否告诉您哪个是最好的。

你用的是什么网络框架?

编辑:

哦,我明白了-您正在使用可编写脚本的 Web 视图...也许类似于zoom = view.evaluateJavaScript('map.getZoom();')?从我对库的了解来看,困难的部分可能是在 JS 中获取对 map var 的引用。

编辑:

我认为如果不修改或扩展 pymaps,这是不可能的,因为它在 JS 中本地限定 GMap 并且不会在任何地方公开它。我已经大致做到了这一点。然后,您可以使用类似于上述内容的方式访问缩放zoom = view.evaluateJavaScript("PyMaps[0].gmap.getZoom();")

编辑:

万一这不清楚 - 我包含的要点要求您使用MyPyMap而不是PyMap.

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

doc = view.page().mainFrame().documentElement()
zoom_level = doc.evaluateJavaScript("PyMaps[0].gmap.getZoom();")
于 2012-12-28T15:39:52.220 回答