GWT OSM

  • Themenstarter Themenstarter gwtosm
  • Beginndatum Beginndatum
G

gwtosm

Gast
Tagchen.

Ich habe ein GWT OMS Tutorial ausprobiert und wie das immer so ist
mit Tutorials funktionieren sie nicht wirklich.

Es wird immer folgende Exception geschmissen, mit der ich und Google
0 Komma nichts anfangen kann:

Code:
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396) at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363) at java.lang.Thread.run(Unknown Source) Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError): $wnd.OpenLayers is undefined at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) at org.gwtopenmaps.openlayers.client.layer.OSMImpl.Osmarender(OSMImpl.java) at org.gwtopenmaps.openlayers.client.layer.OSM.Osmarender(OSM.java:38) at myPackage.client.View.initMap(View.java:33) at myPackage.client.View.onModuleLoad(View.java:26) ... 9 more

Der Code dazu ist recht Simple:

Java:
public class View implements EntryPoint {

	public View() {
		
	}

	public void onModuleLoad() {
		initMap();
	}
	
	private void initMap() {
		MapOptions defaultMapOptions = new MapOptions();
		MapWidget mapWidget = new MapWidget("684px", "330px", defaultMapOptions);
		
		OSM osm_1 = OSM.Osmarender("Osmarender");
		OSM osm_2 = OSM.Mapnik("Mapnik");
		OSM osm_3 = OSM.CycleMap("CycleMap"); 
		OSM osm_4 = OSM.Maplint("Maplint"); 
		
		osm_1.setIsBaseLayer(true);
		osm_2.setIsBaseLayer(true);
		osm_3.setIsBaseLayer(true);
		osm_4.setIsBaseLayer(true);
		
		Map map = mapWidget.getMap();
	    map.addLayer(osm_1);
	    map.addLayer(osm_2);
	    map.addLayer(osm_3);
	    map.addLayer(osm_4);
	    map.addControl(new LayerSwitcher());
	    map.addControl(new MousePosition());
		
	    LonLat lonLat = new LonLat(6.95, 50.94);          
        lonLat.transform("EPSG:4326", "EPSG:900913"); 
          
        map.setCenter(lonLat, 12);                      

 		RootPanel.get().add(mapWidget);
	}
}

Abhängigkeiten sind natürlich GWT und die gwt-openlayers-client-0.6.jar

Hat da jemand Ahnung von? Weiß nicht wie man sich dazu Hilfe
beschaffen soll.
 
Sicher das OSM vernünftig geladen wurde?

Laut Exception ...
Code:
(TypeError): $wnd.OpenLayers
... gibt es die Funktion nicht, was darauf schließen lässt, das OSM nicht korrekt geladen wurde?

Hast du den Eintrag in der gwt.xml? Muss irgendwas noch speziel aufgerufen werden?

Ich kenn mit mit OSM halt gar nicht aus, der ist es ein wenig Fischen im Trüben...
 
Meine .gwt.xml sieht so aus:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<module rename-to="MapExample">
	<inherits name="org.gwtopenmaps.openlayers.OpenLayers"/>
  	<inherits name='com.google.gwt.user.theme.clean.Clean'/>
  	<inherits name='com.google.gwt.user.User'/>
	
  	<entry-point class="myPackage.client.View"/>
</module>

Was heißt "nicht korrekt geladen"? Ich habe wie beschrieben
die Dependencys gesetzt und den Example-Code kopiert.
 
Genau das habe ich doch getan....

Die beiden Skripte sind eingebunden, habe ich oben gepostet (ist übrigens nicht die Host.html, sondern die Application.html wobei Application eben für den Namen steht, den man gewählt hat, die Host.html befindet sich ganz wo anders)

Under Code ist genau der von dem Link den du gepostet hast.
 
Sorry, das war aus deinem ersten Post nicht ganz klar ersichtlich und es hätte halt zu der Fehlermeldung
gepasst, schade. Und das es bei dir Application.html heißt habe ich wohl mitbekommen. Jedoch heißen
diese Seiten im Google-Slang halt Host-Pages (siehe).
 
*Solved*

Osmarander und Maplint wird nicht mehr unterstützt.
Einfach rauß damit ausm Code und alles funktioniert 😀
 

Zurück
Oben