Skip to content

Instantly share code, notes, and snippets.

@neshmi
Created March 22, 2011 14:31
Show Gist options
  • Save neshmi/881292 to your computer and use it in GitHub Desktop.
Save neshmi/881292 to your computer and use it in GitHub Desktop.
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;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment