[OpenLayers-Users] GWT-OpenLayers plugin

Erdem Gunay erdem_gunayus at yahoo.com
Mon Sep 10 20:36:27 EDT 2007


Hi everyone, 

One week ago, I was looking for a way of using OpenLayers in my GWT (Google Web Toolkit) based map application. However, I could not find any valuable resource and I decided to develop my own.

I decided to put this plugin on sourceforge so that other developers may want to use it as I did. hope it helps. Although it is not supporting all the OpenLayers classes / functions, it's in a good shape to start with. 

here is the link : http://sourceforge.net/projects/gwt-openlayers/

here is an example GWT module :

------------------------
import com.google.gwt.user.client.ui.Widget;
import com.eg.gwt.openLayers.client.Icon;
import com.eg.gwt.openLayers.client.JObjectArray;
import com.eg.gwt.openLayers.client.JSObject;
import com.eg.gwt.openLayers.client.LonLat;
import com.eg.gwt.openLayers.client.Map;
import com.eg.gwt.openLayers.client.MapOptions;
import com.eg.gwt.openLayers.client.MapWidget;
import com.eg.gwt.openLayers.client.Marker;
import com.eg.gwt.openLayers.client.Pixel;
import com.eg.gwt.openLayers.client.Size;
import com.eg.gwt.openLayers.client.control.LayerSwitcher;
import com.eg.gwt.openLayers.client.control.MousePosition;
import com.eg.gwt.openLayers.client.control.MouseToolbar;
import com.eg.gwt.openLayers.client.control.PanZoomBar;
import com.eg.gwt.openLayers.client.control.Scale;
import com.eg.gwt.openLayers.client.event.EventHandler;
import com.eg.gwt.openLayers.client.layer.Canvas;
import com.eg.gwt.openLayers.client.layer.Google;
import com.eg.gwt.openLayers.client.layer.Layer;
import com.eg.gwt.openLayers.client.layer.Markers;
import com.eg.gwt.openLayers.client.layer.WMS;
import com.eg.gwt.openLayers.client.layer.WMSParams;
import com.eg.gwt.openLayers.client.popup.AnchoredBubble;
import com.eg.gwt.openLayers.client.popup.Popup;

public class MapViewerOpenLayers {

 private MapWidget mapWidget;
 private Map map;
 private WMS wmsLayer;
 private Markers markers;
 private Popup popup;

 public MapViewerOpenLayers() {
  // let's create the Map options
  MapOptions mapOptions = new MapOptions();
  mapOptions.setControls(new JObjectArray(new JSObject[] {}));
  mapOptions.setNumZoomLevels(18);
  mapOptions.setProjection("EPSG:4326");
  
   
  // let's create the Map widget and map object
  mapWidget = new MapWidget("300px", "300px", mapOptions);
  map = mapWidget.getMap();
  markers = new Markers("markers");

  // let's create the WMS layer
  WMSParams wmsParams = new WMSParams();
  wmsParams.setLayers("some_layers");
  wmsParams.setStyles("some_shapes");
  wmsLayer = new WMS("WMS Layer", "http://localhost:8080/geoserver/wms", wmsParams);
  
  map.addLayers(new Layer[] {wmsLayer, markers});

  // center a point and add other controls
  LonLat center = new LonLat(37.38, 37.06);
  map.setCenter(center, 13);
  map.addControl(new PanZoomBar());
  map.addControl(new MouseToolbar());
  map.addControl(new LayerSwitcher());
  map.addControl(new MousePosition());
  map.addControl(new Scale());

  // let's create a marker and add an event handler
  Size size = new Size(10,17);
  Pixel offset = new Pixel(-5, -17);
  Icon icon = new Icon("img/marker.png", size, offset);
  Marker marker = new Marker(center, icon);
  markers.addMarker(marker);

  marker.getEvents().register("mouseover", marker, new EventHandler() {
   public void onHandle(JSObject source, JSObject[] param) {
    Marker mrk = Marker.narrowToMap(source);
    if (popup != null)
     map.removePopup(popup);
        
    popup = new AnchoredBubble("marker-info", 
       mrk.getLonLat(),
       new Size(200,100),
       "test popup",
       new Icon("", new Size(0,0), new Pixel(0,0)),
       true);
    map.addPopup(popup);
   }
  });
 }

}
------------------------

Erdem Gunay


       
____________________________________________________________________________________
Looking for a deal? Find great prices on flights and hotels with Yahoo! FareChase.
http://farechase.yahoo.com/



More information about the Users mailing list