Код обработчика:
Код: Выделить всё
(function (map) {
OLC.Click = OL.Class(OLC, {
defaultHandlerOptions: {
'single': true,
'double': false,
'pixelTolerance': 1,
'stopSingle': false,
'stopDouble': false
},
initialize: function (options) {
this.handlerOptions = OL.Util.extend(
{}, this.defaultHandlerOptions);
OLC.prototype.initialize.apply(
this, arguments);
this.handler = new OL.Handler.Click(
this,
{ 'click': this.trigger },
this.handlerOptions
);
},
trigger: function (evt) {
// evt = event || window.event;
var lonlat = m_map.getLonLatFromViewPortPx(evt.xy),
ll = m_map.getLayersByClass(OL.Layer.Vector.prototype.CLASS_NAME),
l = null,
f = null,
i = 0,
n = ll.length;
for (; i < n; ++i) {
f = ll[i].getFeatureFromEvent(evt);
if (f != null
&& f.geometry.CLASS_NAME === OL.Geometry.Point.prototype.CLASS_NAME) {
//changeSelect(ll[i], f, tooViewer.callbackGetId(f));
// RESULT: получение необходимых объектов
return;
}
}
}); // end OLC.Click
/** Создаем, добавляем в карту и активируем клик мыши */
var click = new OLC.Click();
map.addControl(click);
click.activate();
} (m_map));
более того такая проблема во всех браузерах кроме IE8, в нем работает корректно.