दरअसल, क्लिक इवेंट सैंपल आपको वही देता है जो आप चाहते हैं।
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.getLonLatFromViewPortPx(e.xy);
alert("You clicked near " + lonlat.lat + " N, " +
+ lonlat.lon + " E");
}
});
यदि आवश्यक हो तो आप पॉपअप प्रदर्शित करने के लिए निर्देशांक को पिक्सेल में बदल सकते हैं ।
संपादित करें - केवल चयन सुविधा पर निर्देशांक प्राप्त करने के लिए :
var options = {
onSelect: getCoordinates,
};
var selectEt = new OpenLayers.Control.SelectFeature(mylayer, options);
map.addControl(selectEt);
function getCoordinates(e) {
// this should work
var lonlat = map.getLonLatFromViewPortPx(e.xy);
alert("You clicked near " + lonlat.lat + " N, " +
+ lonlat.lon + " E");
}