MAP API внедряет другую библиотеку JavaScript после загрузки первой.
Для загрузки API карты после загрузки страницы Google предоставляет дополнительный параметр обратного вызова. Метод обратного вызова - это вызов после загрузки API.
Чтобы это сработало, вам нужно зарегистрировать метод GWT, который можно вызывать из внешнего блока javascript.
public static native void exportStaticMethod() /*-{
$wnd.mapInit = $entry(@com.my.test.client.MyProject::init());
}-*/;
Исключите этот метод на вашем onModuleLoad, и он может быть исключен из внешнего java-скрипта следующим образом:
function initialize()
{
window.mapInit();
}
Чего не хватает, так это внедрения API карты в ваш код GWT:
ScriptElement element = Document.get().createScriptElement();
element.setLang("javascript");
element.setType("text/javascript");
element.setSrc("https://maps.googleapis.com/maps/api/js?callback=initialize&sensor=false");
Document.get().getElementsByTagName("head").getItem(0).appendChild(element);
После загрузки скрипта вызывается метод init.
private static void init()
{
System.out.println("loaded");
}
См. Здесь Загрузка клиентских API