- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
好的,所以我已经使用了 this代码来设置一个简单的程序。基本上它只是在 python 中设置 map 上的点。非常基本。现在的问题是我有一个情况,当该情况发生时,它会使用简单的 QWebView.setHtml()
刷新页面。我现在要做的就是想办法获取 map 当前的缩放和中心信息并保存。无论如何,有没有办法进入 javascript 并获取该信息,存储它,然后将其写入 html,就像我在刷新之前该代码已经执行的那样?
抱歉,如果这令人困惑或宽泛,我只是想不出一种使用 python 从 map 中获取信息的方法。
最佳答案
有多种方法可以与服务器 (Python) 的客户端代码进行交互。您可以在客户端上设置 cookie,从 Javascript 向服务器发送 AJAX 请求,提交表单,或者采用更奇特的方式(例如 WebSockets)。如果没有更多信息,我不确定我们能否告诉您哪个是最好的。
您使用什么网络框架?
编辑:
哦,我明白了 - 您正在使用可编写脚本的 Web View ...也许类似于 zoom = view.evaluateJavaScript('map.getZoom();')
?从我对库的了解来看,困难的部分可能是在 JS 中获取对 map 变量的引用。
编辑:
我认为如果不修改或扩展 pymaps,这是不可能的,因为它在 JS 中本地限定 GMap 的范围,并且不会在任何地方公开它。我已经在 gist 中做到了这一点。然后,您可以使用类似于上面的内容来访问缩放 - 也许是 zoom = view.evaluateJavaScript("PyMaps[0].gmap.getZoom();")
。
编辑:
如果这还不清楚 - 我包含的要点要求您使用 MyPyMap
而不是 PyMap
。
来自另一个StackOverflow question ,我意识到你不能直接在 View 上执行 evaulateJavaScript
。后续代码看起来更像这样
doc = view.page().mainFrame().documentElement()
zoom_level = doc.evaluateJavaScript("PyMaps[0].gmap.getZoom();")
关于python - PyMaps : How to interact with javascript in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14071654/
我是一名优秀的程序员,十分优秀!