Я думаю, что проблема в updateTargets
методе:
var point = this.feature.geometry;
var pixel = new OpenLayers.Pixel(point.x, point.y);
var coord = this.map.getLonLatFromPixel(pixel).transform(
new OpenLayers.Projection("EPSG:900913"),
new OpenLayers.Projection("EPSG:4326")
);
this.feature.geometry уже указано в координатах lon / lat, а не в пикселях.Поэтому я предлагаю вам пропустить вторую строку и выполнить преобразование из проекции OpenStreetMap в lon / lat непосредственно на геометрическом объекте:
var coord = this.feature.geometry.transform(
new OpenLayers.Projection("EPSG:900913"),
new OpenLayers.Projection("EPSG:4326")
);