Прежде всего, я имею опыт общения только с GWT и GWT-JS.Не Google API.
Сейчас:
Похоже, вы передаете объект GWT (скомпилированный объект javscript) в DrawingManager.Проблема заключается в том, что DrawingManager API получает «хорошие объекты javascript» (не объекты с запутанными методами).
Если вы хотите передать HTML-элемент, то все в порядке (но тогда вы должны передать widget.getElement()
, который действительно является<div>
объект (по примерам).
Решение
Действительно, документы API GMaps говорят, что вы должны передать объект Map из API GMap. Вы создаете эту карту с элементом, который будет холстом..
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
Если вы хотите использовать свой MapWidget в качестве холста карты , тогда вы можете использовать его элемент HTML.
В GWT:
private native void showIt(final MapWidget map) /*-{
$wnd.showDM(map.getElement()); // use mapwidget's element as canvas
}-*/;
В javascript:
function showDM(canvasToUse) {
// TODO: define myOptions :)
var map = new google.maps.Map(canvasToUse, myOptions);
dM.setMap(map);
dM.setOptions({
drawingControl: true
});
Отказ от ответственности
Он основан только на моем опыте работы с GWT и JSNI. Я не пробовал и не имел опыта работы с GMapsили DrawingManager. Вы должны проверить, что я говорю, и скажите мне, если мне повезло:)
Надеюсь, это поможет!