2010-03-22 3 views
10

Je voudrais intégrer OSM dans GWT. J'ai trouvé cette bibliothèque appelée gwt-openlayers, mais je ne comprends pas comment je peux la faire fonctionner avec la carte OSM.gwt-openlayers avec l'exemple de openstreetmap

Quelqu'un peut-il me donner un petit exemple?

Répondre

11

Assurez-vous que vous héritez de GWT-OpenLayers en ajoutant ce qui suit à votre fichier de module:

<inherits name='org.gwtopenmaps.openlayers.OpenLayers'/>

Assurez-vous également que vous apportez dans la OpenLayers bibliothèque javascript et OpenStreetMap OpenLayers dans votre application en ajoutant ce qui suit lignes à la page "application.html":

<script src="http://www.openlayers.org/api/OpenLayers.js"></script>

<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>

Ensuite, il faut une chose simple pour créer une couche qui utilise des cartes routières ouvertes:

OSM openStreetMap = OSM.Osmarender("Base Map"); openStreetMap.setIsBaseLayer(true);

MapWidget mapWidget = new MapWidget("350px", "350px"); mapWidget.getMap().addLayer(openStreetMap);

+0

est-il un CDN sûr pour OpenLayers .js et OpenStreetMap.js? –

11

GWT-OpenLayers HelloWorld avec OpenStreetMap

Le l'exemple suivant fonctionne bien pour moi en utilisant OpenLayers-2.8/OpenLayers.js et OpenStreetMap.js comme décrit ci-dessus:

onModuleLoad public void() {

MapOptions defaultMapOptions = new MapOptions(); 
MapWidget mapWidget = new MapWidget("800px", "600px", defaultMapOptions); 

OSM osm_1 = OSM.Osmarender("Osmarender"); // Label for menu 'LayerSwitcher' 
    osm_1.setIsBaseLayer(true); 

OSM osm_2 = OSM.Mapnik("Mapnik"); // Label for menu 'LayerSwitcher' 
    osm_2.setIsBaseLayer(true); 

OSM osm_3 = OSM.CycleMap("CycleMap"); 
    osm_3.setIsBaseLayer(true); 

OSM osm_4 = OSM.Maplint("Maplint"); 
    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()); 

// map.setCenter(new LonLat(6.95, 50.94), 12);   // Warning: In the case of OSM-Layers the method 'setCenter()' uses Gauss-Krueger coordinates, 
                  //   thus we have to transform normal latitude/longitude values into this projection first: 
    LonLat lonLat = new LonLat(6.95, 50.94);    //   (6.95, 50.94) --> (773670.4, 6610687.2) 
      lonLat.transform("EPSG:4326", "EPSG:900913"); //   
    map.setCenter(lonLat, 12);        //   see http://docs.openlayers.org/library/spherical_mercator.html 

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

Les parties 'defaultMapOptions' et' map.setCenter (lonLat, 12); 'semblent être très importantes ... – Ich

Questions connexes