src/providers/markers/dom.marker.js
module.exports = HereMapsDOMMarker;
HereMapsDOMMarker.$inject = ['HereMapsMarkerInterface'];
function HereMapsDOMMarker(HereMapsMarkerInterface){
function DOMMarker(place){
this.place = place;
this.setCoords();
}
var proto = DOMMarker.prototype = new HereMapsMarkerInterface();
proto.constructor = DOMMarker;
proto.create = create;
proto.getIcon = getIcon;
proto.setupEvents = setupEvents;
return DOMMarker;
function create(){
var marker = new H.map.DomMarker(this.coords, {
icon: this.getIcon()
});
this.addInfoBubble(marker);
return marker;
}
function getIcon(){
var icon = this.place.markup;
if(!icon)
throw new Error('markup missed');
return new H.map.DomIcon(icon);
}
function setupEvents(el, events, remove){
var method = remove ? 'removeEventListener' : 'addEventListener';
for(var key in events) {
if(!events.hasOwnProperty(key))
continue;
el[method].call(null, key, events[key]);
}
}
}