2012-10-23 23:48:34 +02:00

93 lines
2.6 KiB
JavaScript

function CacheMarker(latlng, wp, type, owned, found, map)
{
this.latlng = latlng;
this.wp_ = wp;
if(found) {
this.image_ = 'resource2/ocstyle/images/map/24x24-found.png';
}
/*
else if(owned) {
this.image_ = 'resource2/ocstyle/images/map/24x24-owned.png';
}
*/
else {
this.image_ = 'resource2/ocstyle/images/map/24x24-cachetype-' + type + '.png';
}
this.height_ = 24;
this.width_ = 24;
this.map_ = map;
this.setMap( map );
}
CacheMarker.prototype = new google.maps.OverlayView;
/* Creates the DIV representing this CacheMarker.
* @param map {GMap2} Map that bar overlay is added to.
*/
CacheMarker.prototype.onAdd = function() {
var me = this;
// Create the DIV representing our CacheMarker
var div = document.createElement("div");
div.style.borderWidth = 0;
div.style.position = "absolute";
div.style.marginTop = 12;
div.style.marginLeft = -12;
div.style.cursor = 'pointer';
var img = document.createElement("img");
img.src = me.image_;
img.style.width = me.width_ + "px";
img.style.height = me.height_ + "px";
div.appendChild(img);
google.maps.event.addDomListener(div, "click", function()
{
google.maps.event.trigger(me, "click", me.wp_);
});
//map.getPane(G_MAP_MARKER_PANE).appendChild(div);
var pane = this.getPanes().overlayImage;
pane.appendChild(div);
this.div_ = div;
};
/* Remove the main DIV from the map pane
*/
CacheMarker.prototype.onRemove = function() {
this.div_.parentNode.removeChild(this.div_);
this.div_ = null;
};
/* Redraw the CacheMarker based on the current projection and zoom level
* @param force {boolean} Helps decide whether to redraw overlay
*/
CacheMarker.prototype.draw = function() {
// Calculate the DIV coordinates of two opposite corners
// of our bounds to get the size and position of our CacheMarker
var divPixel = this.getProjection().fromLatLngToDivPixel(this.latlng);
// Now position our DIV based on the DIV coordinates of our bounds
this.div_.style.width = this.width_ + "px";
this.div_.style.left = (divPixel.x-this.width_/2) + "px"
this.div_.style.height = (this.height_) + "px";
this.div_.style.top = (divPixel.y+this.height_/2) - this.height_ + "px";
};
CacheMarker.prototype.getZIndex = function(m) {
return google.maps.Overlay.getZIndex(marker.getPoint().lat())-m.clicked*10000;
}
CacheMarker.prototype.getPoint = function() {
return this.latlng;
};
CacheMarker.prototype.setStyle = function(style) {
for (s in style) {
this.div_.style[s] = style[s];
}
};
CacheMarker.prototype.getWaypoint = function() {
return this.wp_;
};