#java #google-maps #gwt #smartgwt
#java #google-карты #gwt #smartgwt
Вопрос:
Я пытаюсь интегрировать карту gwt в свое приложение SmartGWT. Но по какой-то причине я получаю эту ошибку. Может кто-нибудь, пожалуйста, помочь мне решить эту проблему. Я использую эту ссылку в качестве ссылки http://forums.smartclient.com/showthread.php?t=3366 .
ошибка, которую я получаю, заключается в том, что экранировано неперехваченное исключение: java.lang.RuntimeException API Maps не был загружен. Отсутствует ли тег в вашем HTML-файле хоста или файле модуля? Отсутствует или недействителен ключ Maps? Дополнительные сведения см. в журнале консоли разработки. Зарегистрируйте обработчик GWT.setUncaughtExceptionHandler(..) для пользовательской обработки неперехваченных исключений.
//This is added in my module file and i am using Maps v2 API 1.1.1
<inherits name='com.google.gwt.maps.GoogleMaps' />
HomeViewImpl homePanel = new HomeViewImpl();
addTab(homePanel, "Home", "Home");
==============================================
public class HomeViewImpl extends VLayout
{
private MapWidget getMap()
{
/*MapWidget map = new MapWidget();
map.setSize("500px", "300px");
map.addControl(new LargeMapControl());
map.getInfoWindow().open(map.getCenter(), new InfoWindowContent(getMapInfoWindow()));
return map;*/
LatLng cawkerCity = LatLng.newInstance(-22.82, -47.26);
final MapWidget map = new MapWidget();
map.setScrollWheelZoomEnabled(true);
map.addControl(new LargeMapControl());
map.addOverlay(new Marker(cawkerCity));
map.getInfoWindow().open(map.getCenter(),
new InfoWindowContent("World's Largest Ball of Sisal Twine"));
return map;
}
public Canvas getViewPanel()
{
HLayout hLayout = new HLayout(5);
hLayout.addMember(new Label("Dummy Label in a Horizontal Layout"));
// Add the map to the HTML host page
hLayout.addMember(getMap());
return hLayout;
}
private Canvas getMapInfoWindow()
{
final TabSet topTabSet = new TabSet();
topTabSet.setTabBarPosition(Side.TOP);
topTabSet.setWidth(200);
topTabSet.setHeight(100);
Tab tTab1 = new Tab("Blue");
HTMLPane tab1Pane = new HTMLPane();
tab1Pane.setContents("Hello. This sample shows a google map widget taking part in a SmartGWT Layout");
tTab1.setPane(tab1Pane);
Tab tTab2 = new Tab("Green");
HTMLPane tab2Pane = new HTMLPane();
tab2Pane.setContents("Google Maps InfoWindow can display SmartGWT Widgets");
tTab2.setPane(tab2Pane);
topTabSet.addTab(tTab1);
topTabSet.addTab(tTab2);
return topTabSet;
}
@Override
public Widget asWidget()
{
return getViewPanel();
}
}
приветствую
Zolf
Ответ №1:
Здесь происходит несколько вещей.
Версия Google Maps v2 больше не доступна. Пожалуйста, ознакомьтесь с Обновлением вашего приложения Google Maps JavaScript до версии v3. Ссылка, которую вы предоставляете, датирована 2008 годом и действительно устарела.
Во-вторых, для Карт Google (v2 или v3) требуется действительный лицензионный ключ на главной HTML-странице. У GWT есть главная HTML-страница, которая запускает приложение GWT. Ключ Google Maps можно найти здесь.
Вам также потребуется обновленный GWT Google maps API для использования Maps v3. Есть несколько доступных вариантов.
С уважением, Томас.
Комментарии:
1. спасибо за ваши комментарии. не могли бы вы дать мне ссылку на обновленный GWT maps API.
Ответ №2:
Вы должны создать карту и загрузить данные следующим образом,
Maps.loadMapsApi("", "2", false, new Runnable() {
public void run() {
// add your widget with map
}
});
смотрите, например, эту ссылку: http://code.google.com/p/gwt-google-apis/wiki/MapsGettingStarted
amp; загрузите и используйте jar, который используется в этом примере.
Ответ №3:
Хорошо, проблема с моим случаем заключалась в том, что мне пришлось также добавить этот scropt в мой файл модуля.Добавление этого исправило ошибку и отобразило карту.
<script src="http://maps.google.com/maps?gwt=1amp;amp;file=apiamp;amp;v=2"></script>