【发布时间】:2012-05-17 20:29:57
【问题描述】:
我正在使用 GWT,我正在尝试将 google-maps 添加到我的网站。 因为我想使用 google-maps V3,所以我使用的是 JSNI。 为了在我的网站中显示地图,我需要创建一个 id="map" 的 div 元素并在地图的初始化函数中获取它。我这样做了,效果很好,但它在网页上的位置很有趣,我希望它附加到我在代码中创建的面板上。 所以我的问题是我该怎么做? 我可以在面板中使用 GWT 以某种方式创建 div 吗?
我尝试过像这样创建一个新的 HTMLPanel:
runsPanel.add(new HTMLPanel("<div id=\"map\"></div>"));
其中 runsPanel 是我想要附加到的面板。 但是,当我使用以下初始化函数时,它无法检索 div:
private native JavaScriptObject initializeMap() /*-{
var latLng = new $wnd.google.maps.LatLng(31.974, 34.813); //around Rishon-LeTsiyon
var mapOptions = {
zoom : 14,
center : latLng,
mapTypeId : $wnd.google.maps.MapTypeId.ROADMAP
};
var mapDiv = $doc.getElementById('map');
if (mapDiv == null) {
alert("MapDiv is null!");
}
var map = new $wnd.google.maps.Map(mapDiv, mapOptions);
return map;
}-*/;
(它会弹出警报 - “MapDiv 为空!”)
有什么想法吗? 谢谢
【问题讨论】:
-
为什么不使用 GWT-Google-APIs 预发布版本:code.google.com/p/gwt-google-apis/issues/detail?id=381#c53 ?
-
你的
runsPanel是什么类型的?当然,您可以在面板内创建div。在你的代码中一切都是正确的。它应该可以正常工作。 -
它是一个水平面板。然而,它不起作用......
-
在这种情况下使用 HorizontalPanel 是不合逻辑的。它被转换成一个表。但尽管如此,您的代码是正确的。寻找对方的错误。
标签: javascript google-maps gwt google-maps-api-3 jsni