GWT MapWidget из JavaScript как GMap2 - PullRequest
       9

GWT MapWidget из JavaScript как GMap2

0 голосов
/ 29 октября 2009

Я использую GWT для приложения Google Map. Я использую Google gwt-maps.jar для отображения API.

Я могу создать карту как

 private MapWidget mapId;

 if (Maps.isBrowserCompatible()) {
   mapId = new MapWidget();

   mapId.setPixelSize(600, 500);
   RootPanel.get("gmap").add(mapId);

   mapId.setCurrentMapType(MapType.getHybridMap());
   mapId.addControl(new LargeMapControl());
   mapId.addControl(new MapTypeControl());
   mapId.addControl(new ScaleControl());

   mapId.setCenter(LatLng.newInstance(-33.867139, 151.20711), 9);
  }

Теперь у меня есть устаревший код javascript, необходимый для работы с этим объектом карты. Я хочу использовать что-то вроде этого:

$wnd.mapId.addOverlay(ovrlay1);

Но я не могу получить эту переменную $ wnd.mapId. Знаете ли вы какой-нибудь способ получить объект GMap2 из существующей карты на каком-либо элементе? Это будет работать, если я получу экземпляр GMap2 из моего "gmap" div.

В настоящее время я использую JSNI для генерации всех функций карты. Симмилар до:

$wnd.mapId = new $wnd.GMap2($wnd.document.getElementById("gmap"));

1 Ответ

0 голосов
/ 31 октября 2009

Похоже, я должен ответить на это сам. Объект MapWidget может возвращать дескриптор объекта javascript с помощью метода getPeer (). Итак, что мне нужно, это связать объект javascript, вызвав getPeer. Следующий код делает это.

private MapWidget mapId;

if (Maps.isBrowserCompatible()) {
  mapId = new MapWidget();
  nativeExportMapPeer(mapId.getPeer());
  ...
 }

 ...

 // export the native GMap2 object with a JSNI method
 private static native void nativeExportMapPeer(JavaScriptObject peer) /*-{
      $wnd.mapId = peer;
 }-*/;

Спасибо Эрику З. Айерсу за указание на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...