neshmi
3/22/2011 - 2:31 PM

gistfile1.js

var map, squares, fieds, objects, tiled;

// pink tile avoidance
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
// make OL compute scale according to WMS spec
OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;

function init(){
  
  format = 'image/png';
  
  var bounds = new OpenLayers.Bounds(
      773152.5, 3529470.5,
      773245.0, 3529582.5
  );
  
  var options = {
      controls: [],
      maxExtent: bounds,
      projection: "EPSG:32636",
      units: 'm'
  };
  
  map = new OpenLayers.Map('map', options);

  // setup single tiled layer
  tiled = new OpenLayers.Layer.WMS(
      "Aerial - Tiled", "http://localhost:8080/geoserver/wms",
      {
          srs: 'EPSG:32636',
          layers: 'umayri:aerial_proj1',
          styles: '',
          format: format,
          tiled: 'true',
          tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom
      },
      {
          buffer: 0,
          displayOutsideMaxExtent: true
      } 
  );

  // setup single tiled layer
  untiled = new OpenLayers.Layer.WMS(
      "Aerial - Untiled", "http://localhost:8080/geoserver/wms",
      {
          srs: 'EPSG:32636',
          layers: 'umayri:aerial_proj1',
          styles: '',
          format: format
      },
      {singleTile: true, ratio: 1} 
  );
  
  fields = new OpenLayers.Layer.WMS(
      "fields", "http://localhost:8080/geoserver/wms",
      {
          srs: 'EPSG:32636',
          layers: 'umayri:fields',
          styles: '',
          transparent: "true",
          format: format
      },
      {isBaseLayer: false}
  );
  
  squares = new OpenLayers.Layer.WMS(
      "squares", "http://localhost:8080/geoserver/wms",
      {
          srs: 'EPSG:32636',
          layers: 'umayri:squares',
          styles: '',
          transparent: "true",
          format: format
      },
      {isBaseLayer: false}
  );
  
  objects = new OpenLayers.Layer.WMS(
      "objects", "http://localhost:8080/geoserver/wms",
      {
          srs: 'EPSG:32636',
          layers: 'umayri:objects',
          styles: '',
          transparent: "true",
          format: format
      },
      {isBaseLayer: false}
  );
  
  map.addLayers([untiled, tiled, fields, squares, objects]);
  
  select = new OpenLayers.Layer.Vector("Selection", {styleMap: 
    new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"])
  });
    
  map.addControl(new OpenLayers.Control.PanZoomBar({
    position: new OpenLayers.Pixel(2, 15)
  }));
  
  // map.addControl(new OpenLayers.Control.Navigation());
  map.addControl(new OpenLayers.Control.Scale($('scale')));
  map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));
  map.addControl(new OpenLayers.Control.LayerSwitcher({}));
  
  control = new OpenLayers.Control.GetFeature({
      protocol: OpenLayers.Protocol.WFS.fromWMSLayer(squares),
      box: true,
      hover: false,
      multipleKey: "shiftKey",
      toggleKey: "ctrlKey"
  });
  control.events.register("featureselected", this, function(e) {
      setHTML(e);
      // select.addFeatures([e.feature]);
  });
  control.events.register("featureunselected", this, function(e) {
      select.removeFeatures([e.feature]);
  });

  map.addControl(control);
  control.activate();
  
  map.setCenter(bounds.getCenterLonLat(), 3);

}

function setHTML(response){
    document.getElementById('nodelist').innerHTML = response.responseText;
};