它与谷歌地图无关,所有包含任何类型的地图可视化的页面都不会显示这些。但具体如何显示geoportal.ch的内容呢?一堆页面无法正常工作:
geoportal.ch 或者 谷歌地图 或者 打开街道地图
这些页面无法使用,因为缺少地图。
为什么无法使用 Javafx Webview 组件显示带有地图的页面 - 特别是 geoportal.ch?以及如何增强/纠正使其按预期工作?
我的考试:其他问题的答案是说对于谷歌地图的情况,他们从某个 javafx 版本更改了 api。好吧,他们为什么要这么做(之前就有效……)?如果出于某种原因这是真的,为什么其他页面也不显示地图。 SwingNode 与 jcef 结合也不起作用或保密。
所以最后看起来唯一的解决方案就是购买专有软件......这里出了什么问题? Web 是最重要的 - Javafx-Webview 组件半途而废是很奇怪的。多年来。但这与谷歌地图无关,而是与不成熟的 webview 组件有关。也许有人明白为什么地图一般不显示。
我启用了 com.sun.webkit.WebPage.level = FINE 进行日志记录,但这并没有给我解决问题的方法。
演示应用程序:
package com.example.webviewsample;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewSample extends Application {
@Override
public void start(Stage primaryStage) {
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
TextField urlField = new TextField("https://www.geoportal.ch/ch/map/40?y=2683332.00&x=1247089.90&scale=2000&rotation=0&topic=property&highlight=1&bfsnr=3203&property=W7391");
Button goButton = new Button("Go");
goButton.setOnAction(event -> {
String url = urlField.getText();
webEngine.load(url);
});
BorderPane root = new BorderPane();
root.setTop(urlField);
root.setCenter(webView);
root.setBottom(goButton);
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.setTitle("WebView Sample");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
它仅适用于版本 JDK8u411 和 jfx18。所以最终还是webview组件的bug。我完成了一份错误报告,您现在可以在这里正式找到:
https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8331640