Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript和GWT代码之间的通信_Javascript_Google Maps_Gwt - Fatal编程技术网

javascript和GWT代码之间的通信

javascript和GWT代码之间的通信,javascript,google-maps,gwt,Javascript,Google Maps,Gwt,我已经使用GoogleMapsV3API为GWT创建了一个地图。我试图在这个地图上显示一个kml,但这是不可能的,因为它存储在本地。所以,我尝试使用geoxml3来解析我的本地kml 我需要javascript代码来“查看”我使用GWT创建的地图。我该怎么做 我使用 map=GoogleMap.create(Document.get().getElementById(“map_canvas”),myOptions); (map_canvas是我的html页面中的一个div) 我想调用一个Java

我已经使用GoogleMapsV3API为GWT创建了一个地图。我试图在这个地图上显示一个kml,但这是不可能的,因为它存储在本地。所以,我尝试使用geoxml3来解析我的本地kml

我需要javascript代码来“查看”我使用GWT创建的地图。我该怎么做

我使用

map=GoogleMap.create(Document.get().getElementById(“map_canvas”),myOptions); (map_canvas是我的html页面中的一个div)


我想调用一个Javascript函数来解析KML文件并将其显示在地图上。我知道如何调用JS函数,但我不知道在它的主体中写什么。,,

这里是从GWT文档中编写JSNI的基础知识。这绝对有助于您编写函数体

这是我在gwt/gxt google maps api v3中绘制本地kml文件的方式 在internet上查找并下载geoxml3.js和ProjectedOverlay.js。 在html中输入:

添加一些过程以将kml操作调用到客户端条目java文件:

public final native JavaScriptObject createKmlParser(JavaScriptObject mapId) /*-{
var myParser = new $wnd.geoXML3.parser({map: mapId});

    return myParser;
}-*/;

public final native void showKml(JavaScriptObject parser, String kml) /*-{
    parser.parseKmlString(kml);
}-*/;

public final native void hideKml(JavaScriptObject parser) /*-{
    parser.hideDocument();
}-*/;
因为ProjectedOverlay.js需要连接Google地图,所以我们将在连接到Google地图后注入它

mapWidget = new MapWidget(opts);

ScriptInjector.fromUrl(
    GWT.getHostPageBaseURL() + "YourServicePath/ProjectedOverlay.js").setCallback(new Callback() {

@Override
public void onFailure(Object reason) {
    System.out.println("Script load failed");
}

@Override
public void onSuccess(Object result) {

}
}).setWindow(ScriptInjector.TOP_WINDOW).inject();

To show the KML:
public JavaScriptObject parserGeoXml3;

if (mapWidget != null) {
    JavaScriptObject jsoParser = createKmlParser(mapWidget.getJso());
         parserGeoXml3 = jsoParser;
    try {
        showKml(jsoParser, kmlStr);
        } catch (JavaScriptException jse) {

        }
}
To hide:
try {
    hideKml(parserGeoXml3);
} catch (JavaScriptException jse) {

}

我已经看过了,但还是看不懂。我将尝试将我的KML作为字符串传递给Javascript,然后用GeoXml解析它。您看到了吗?是的,这就是我正在使用的。我设法展示了我的kml,从我的gwt项目中调用了一个js函数。但是,我看不到地图,只能看到kml的形状。太多了!看起来是一个很好的例子,但不确定为什么它对我不起作用。项目构建很好,但KML不会出现。。