谷歌地图的 javascript 版本的新版本是否适用于 JavaFx-WebView

Sha*_*nka 6 javascript java google-maps javafx

我正在尝试在JavaFx-WebView上加载谷歌地图,除了我在 html 文件上编码的 html 正文的背景颜色外,它没有显示任何内容。我也在谷歌搜索上尝试了一些例子,所有的结果都是旧的。它都不起作用。 我的 Java 版本是“1.8.0_121”

我写了一个 html 文件并运行它。它成功加载了谷歌地图。然后我使用 webEngine.load("path") 方法将 html 文件加载到 webview。除了背景颜色外,它不显示任何内容。

之后我尝试了 http://rterp.github.io/GMapsFX

  • 运行 ClusteredMainApp.java(把我的谷歌 api 密钥)
  • 控制台输出是:
  • “嗨”
  • “聚类图像/米”
  • “隐藏路线”
  • “加载地图库”
  • “加载地图库完成”
  • “初始化映射”
  • “经纬度:(47.606189,-122.33584200000001)”
  • “netscape.javascript.JSException:错误:Google Maps JavaScript API 不支持此浏览器。(undefined,0)”

我也找不到此错误的任何解决方案

html文件

CSS:

#map_canvas { height: 100%; background-color: blue; }
Run Code Online (Sandbox Code Playgroud)

javascript:

function initialize() {
                var latlng = new google.maps.LatLng(37.39822, -121.9643936);
                var myOptions = {
                    zoom: 14,
                    center: latlng,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    mapTypeControl: false,
                    navigationControl: false,
                    streetViewControl: false,
                    backgroundColor: "#666970"
                };

                document.geocoder = new google.maps.Geocoder();
                document.map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
Run Code Online (Sandbox Code Playgroud)

}

html:

<body onload="initialize()">
    <div id="map_canvas" style="width:100%; height:100%"></div>
   </body>
Run Code Online (Sandbox Code Playgroud)

JavaFX:

public class WebMap extends Application {
 
    @Override public void start(Stage stage) {
        // create web engine and view
        final WebView webView = new WebView();
        final WebEngine webEngine = webView.getEngine();
        webEngine.load(getClass().getResource("WebMap.html").toString());
        // create scene
        stage.setTitle("Web Map");
        Scene scene = new Scene(webView,1000,700, Color.web("#666970"));
        stage.setScene(scene);
        // show stage
        stage.show();
    }
 
    public static void main(String[] args){
        Application.launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 1

Google 地图 API 放弃了对旧版浏览器的支持,这开始导致“Google 地图 JavaScript API 不支持此浏览器”。错误。请参阅https://developers.google.com/maps/documentation/javascript/releaseshttps://developers.google.com/maps/documentation/javascript/versions

您正在使用的库正在使用版本 3.exp(实验性)。

在较新的 Java 版本上运行将解决此问题(目前)。