これは、gwt/gxt google maps api v3 でローカル kml ファイルをプロットした方法です。インターネットで geoxml3.js と ProjectedOverlay.js を検索してダウンロードします。あなたのhtmlに:<
script type="text/javascript" src='YourServicePath/geoxml3.js'>
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) {
}