Hi all,I have a quite small problem with my OL Script. What my current map
looks like: I have a base OSM map and a GML layer loaded. The layer is loaded
as a vector layer with the format GML. When I select one of the features of the
GML layer, a function is called (currently, making a div visible, and on
unselect, hide the div. This is done via the OpenLayers.Control.SelectFeature
and the onSelect function.So far, so good. What I am trying to do now, is
gathering information from the selected feature and hand it to the called
function, so that I can fill the appearing div with data I get from the
database in a later step using AJAX. I hope you get what I am trying to do. The
missing link is to get the information from the feature to the function
"openDetail () ". This is my current file:[...]
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: { 'single': true,
'double': false, 'pixelTolerance': 0,
'stopSingle': false, 'stopDouble': false
},
initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend( {},
this.defaultHandlerOptions );
OpenLayers.Control.prototype.initialize.apply( this,
arguments ); this.handler = new
OpenLayers.Handler.Click( this, {
'click': this.trigger }, this.handlerOptions
); },
trigger: function(e) { var lonlat =
map.getLonLatFromPixel(e.xy);
openFormAdd(lonlat.lat,lonlat.lon); //alert("You clicked
near " + lonlat.lat + " N, " + // +
lonlat.lon + " E"); }
}); var map, layer, pointLayer;
function init() { if (!OpenLayers.CANVAS_SUPPORTED) {
var unsupported = OpenLayers.Util.getElement('unsupported');
unsupported.innerHTML = 'Your browser does not support canvas, nothing to
see here !'; }
layer = new OpenLayers.Layer.OSM('Simple OSM Map', null, {
eventListeners: { tileloaded: function(evt) {
var ctx = evt.tile.getCanvasContext(); if
(ctx) { var imgd = ctx.getImageData(0, 0,
evt.tile.size.w, evt.tile.size.h); var pix =
imgd.data; for (var i = 0, n = pix.length; i < n; i
+= 4) { pix[i] = pix[i + 1] = pix[i + 2] = (3 *
pix[i] + 4 * pix[i + 1] + pix[i + 2]) / 8; }
ctx.putImageData(imgd, 0, 0);
evt.tile.imgDiv.removeAttribute("crossorigin");
evt.tile.imgDiv.src = ctx.canvas.toDataURL(); }
} } });
pointLayer = new OpenLayers.Layer.Vector("GeoJSON", {
strategies: [new OpenLayers.Strategy.Fixed()], protocol: new
OpenLayers.Protocol.HTTP({ url:
"http://127.0.0.1/L11/geoData/data.xml.gml", format: new
OpenLayers.Format.GML() }) });
map = new OpenLayers.Map('map', { layers: [layer,
pointLayer], zoom: 3, center: [-1081125, 6212801]
});
var click = new OpenLayers.Control.Click();
map.addControl(click); //click.activate();
clickFeature = new
OpenLayers.Control.SelectFeature( [pointLayer],
{ clickout: true, toggle: false,
multiple: false, hover: false,
hover: } );
map.addControl(clickFeature);
pointLayer.events.on({ "featureselected":
function(e) { //drag.activate();
openDetail();
}, "featureunselected": function(e) {
closeDetail(); }
});
clickFeature.activate();
map.addControl(new OpenLayers.Control.LayerSwitcher()); }
[...] function openDetail () {
document.getElementById("contentLayerDetail").style.visibility='visible';
} function closeDetail ()
{
document.getElementById("contentLayerDetail").style.visibility='hidden';
} </script>
[...]
I hope somebody can give me a little help with this.
Thanks in advance,Freddy
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users