var BMapLib = window.BMapLib = BMapLib || {};
|
(function() {
|
var d, c = d = c || {
|
version: "1.3.8"
|
};
|
(function() {
|
c.guid = "$BAIDU$";
|
window[c.guid] = window[c.guid] || {};
|
c.dom = c.dom || {};
|
c.dom.g = function(f) {
|
if ("string" == typeof f || f instanceof String) {
|
return document.getElementById(f)
|
} else {
|
if (f && f.nodeName && (f.nodeType == 1 || f.nodeType == 9)) {
|
return f
|
}
|
}
|
return null
|
};
|
c.g = c.G = c.dom.g;
|
c.dom.getDocument = function(f) {
|
f = c.dom.g(f);
|
return f.nodeType == 9 ? f : f.ownerDocument || f.document
|
};
|
c.lang = c.lang || {};
|
c.lang.isString = function(f) {
|
return "[object String]" == Object.prototype.toString.call(f)
|
};
|
c.isString = c.lang.isString;
|
c.dom._g = function(f) {
|
if (c.lang.isString(f)) {
|
return document.getElementById(f)
|
}
|
return f
|
};
|
c._g = c.dom._g;
|
c.browser = c.browser || {};
|
if (/msie (\d+\.\d)/i.test(navigator.userAgent)) {
|
c.browser.ie = c.ie = document.documentMode || +RegExp["\x241"]
|
}
|
c.dom.getComputedStyle = function(g, f) {
|
g = c.dom._g(g);
|
var i = c.dom.getDocument(g),
|
h;
|
if (i.defaultView && i.defaultView.getComputedStyle) {
|
h = i.defaultView.getComputedStyle(g, null);
|
if (h) {
|
return h[f] || h.getPropertyValue(f)
|
}
|
}
|
return ""
|
};
|
c.dom._styleFixer = c.dom._styleFixer || {};
|
c.dom._styleFilter = c.dom._styleFilter || [];
|
c.dom._styleFilter.filter = function(g, k, l) {
|
for (var f = 0, j = c.dom._styleFilter, h; h = j[f]; f++) {
|
if (h = h[l]) {
|
k = h(g, k)
|
}
|
}
|
return k
|
};
|
c.string = c.string || {};
|
c.string.toCamelCase = function(f) {
|
if (f.indexOf("-") < 0 && f.indexOf("_") < 0) {
|
return f
|
}
|
return f.replace(/[-_][^-_]/g, function(g) {
|
return g.charAt(1).toUpperCase()
|
})
|
};
|
c.dom.getStyle = function(h, g) {
|
var j = c.dom;
|
h = j.g(h);
|
g = c.string.toCamelCase(g);
|
var i = h.style[g] || (h.currentStyle ? h.currentStyle[g] : "") || j.getComputedStyle(h, g);
|
if (!i) {
|
var f = j._styleFixer[g];
|
if (f) {
|
i = f.get ? f.get(h) : c.dom.getStyle(h, f)
|
}
|
}
|
if (f = j._styleFilter) {
|
i = f.filter(g, i, "get")
|
}
|
return i
|
};
|
c.getStyle = c.dom.getStyle;
|
if (/opera\/(\d+\.\d)/i.test(navigator.userAgent)) {
|
c.browser.opera = +RegExp["\x241"]
|
}
|
c.browser.isWebkit = /webkit/i.test(navigator.userAgent);
|
c.browser.isGecko = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent);
|
c.browser.isStrict = document.compatMode == "CSS1Compat";
|
c.dom.getPosition = function(f) {
|
f = c.dom.g(f);
|
var o = c.dom.getDocument(f),
|
i = c.browser,
|
l = c.dom.getStyle,
|
h = i.isGecko > 0 && o.getBoxObjectFor && l(f, "position") == "absolute" && (f.style.top === "" || f.style.left === ""),
|
m = {
|
left: 0,
|
top: 0
|
},
|
k = (i.ie && !i.isStrict) ? o.body : o.documentElement,
|
p, g;
|
if (f == k) {
|
return m
|
}
|
if (f.getBoundingClientRect) {
|
g = f.getBoundingClientRect();
|
m.left = Math.floor(g.left) + Math.max(o.documentElement.scrollLeft, o.body.scrollLeft);
|
m.top = Math.floor(g.top) + Math.max(o.documentElement.scrollTop, o.body.scrollTop);
|
m.left -= o.documentElement.clientLeft;
|
m.top -= o.documentElement.clientTop;
|
var n = o.body,
|
q = parseInt(l(n, "borderLeftWidth")),
|
j = parseInt(l(n, "borderTopWidth"));
|
if (i.ie && !i.isStrict) {
|
m.left -= isNaN(q) ? 2 : q;
|
m.top -= isNaN(j) ? 2 : j
|
}
|
} else {
|
p = f;
|
do {
|
m.left += p.offsetLeft;
|
m.top += p.offsetTop;
|
if (i.isWebkit > 0 && l(p, "position") == "fixed") {
|
m.left += o.body.scrollLeft;
|
m.top += o.body.scrollTop;
|
break
|
}
|
p = p.offsetParent
|
} while (p && p != f);
|
if (i.opera > 0 || (i.isWebkit > 0 && l(f, "position") == "absolute")) {
|
m.top -= o.body.offsetTop
|
}
|
p = f.offsetParent;
|
while (p && p != o.body) {
|
m.left -= p.scrollLeft;
|
if (!i.opera || p.tagName != "TR") {
|
m.top -= p.scrollTop
|
}
|
p = p.offsetParent
|
}
|
}
|
return m
|
};
|
c.event = c.event || {};
|
c.event._listeners = c.event._listeners || [];
|
c.event.on = function(g, j, l) {
|
j = j.replace(/^on/i, "");
|
g = c.dom._g(g);
|
var k = function(n) {
|
l.call(g, n)
|
},
|
f = c.event._listeners,
|
i = c.event._eventFilter,
|
m, h = j;
|
j = j.toLowerCase();
|
if (i && i[j]) {
|
m = i[j](g, j, k);
|
h = m.type;
|
k = m.listener
|
}
|
if (g.addEventListener) {
|
g.addEventListener(h, k, false)
|
} else {
|
if (g.attachEvent) {
|
g.attachEvent("on" + h, k)
|
}
|
}
|
f[f.length] = [g, j, l, k, h];
|
return g
|
};
|
c.on = c.event.on;
|
(function() {
|
var f = window[c.guid];
|
c.lang.guid = function() {
|
return "TANGRAM__" + (f._counter++).toString(36)
|
};
|
f._counter = f._counter || 1
|
})();
|
window[c.guid]._instances = window[c.guid]._instances || {};
|
c.lang.isFunction = function(f) {
|
return "[object Function]" == Object.prototype.toString.call(f)
|
};
|
c.lang.Class = function(f) {
|
this.guid = f || c.lang.guid();
|
window[c.guid]._instances[this.guid] = this
|
};
|
window[c.guid]._instances = window[c.guid]._instances || {};
|
c.lang.Class.prototype.dispose = function() {
|
delete window[c.guid]._instances[this.guid];
|
for (var f in this) {
|
if (!c.lang.isFunction(this[f])) {
|
delete this[f]
|
}
|
}
|
this.disposed = true
|
};
|
c.lang.Class.prototype.toString = function() {
|
return "[object " + (this._className || "Object") + "]"
|
};
|
c.lang.Event = function(f, g) {
|
this.type = f;
|
this.returnValue = true;
|
this.target = g || null;
|
this.currentTarget = null
|
};
|
c.lang.Class.prototype.addEventListener = function(i, h, g) {
|
if (!c.lang.isFunction(h)) {
|
return
|
}!this.__listeners && (this.__listeners = {});
|
var f = this.__listeners,
|
j;
|
if (typeof g == "string" && g) {
|
if (/[^\w\-]/.test(g)) {
|
throw ("nonstandard key:" + g)
|
} else {
|
h.hashCode = g;
|
j = g
|
}
|
}
|
i.indexOf("on") != 0 && (i = "on" + i);
|
typeof f[i] != "object" && (f[i] = {});
|
j = j || c.lang.guid();
|
h.hashCode = j;
|
f[i][j] = h
|
};
|
c.lang.Class.prototype.removeEventListener = function(i, h) {
|
if (typeof h != "undefined") {
|
if ((c.lang.isFunction(h) && !(h = h.hashCode)) || (!c.lang.isString(h))) {
|
return
|
}
|
}!this.__listeners && (this.__listeners = {});
|
i.indexOf("on") != 0 && (i = "on" + i);
|
var g = this.__listeners;
|
if (!g[i]) {
|
return
|
}
|
if (typeof h != "undefined") {
|
g[i][h] && delete g[i][h]
|
} else {
|
for (var f in g[i]) {
|
delete g[i][f]
|
}
|
}
|
};
|
c.lang.Class.prototype.dispatchEvent = function(j, f) {
|
if (c.lang.isString(j)) {
|
j = new c.lang.Event(j)
|
}!this.__listeners && (this.__listeners = {});
|
f = f || {};
|
for (var h in f) {
|
j[h] = f[h]
|
}
|
var h, g = this.__listeners,
|
k = j.type;
|
j.target = j.target || this;
|
j.currentTarget = this;
|
k.indexOf("on") != 0 && (k = "on" + k);
|
c.lang.isFunction(this[k]) && this[k].apply(this, arguments);
|
if (typeof g[k] == "object") {
|
for (h in g[k]) {
|
g[k][h].apply(this, arguments)
|
}
|
}
|
return j.returnValue
|
};
|
c.lang.inherits = function(l, j, i) {
|
var h, k, f = l.prototype,
|
g = new Function();
|
g.prototype = j.prototype;
|
k = l.prototype = new g();
|
for (h in f) {
|
k[h] = f[h]
|
}
|
l.prototype.constructor = l;
|
l.superClass = j.prototype;
|
if ("string" == typeof i) {
|
k._className = i
|
}
|
};
|
c.inherits = c.lang.inherits
|
})();
|
var b = "../cn_wechat/image/m";
|
var a = "png";
|
var e = BMapLib.TextIconOverlay = function(f, h, g) {
|
this._position = f;
|
this._text = h;
|
this._options = g || {};
|
this._styles = this._options.styles || [];
|
(!this._styles.length) && this._setupDefaultStyles()
|
};
|
d.lang.inherits(e, BMap.Overlay, "TextIconOverlay");
|
e.prototype._setupDefaultStyles = function() {
|
var h = [30, 34, 37, 41, 45];
|
for (var g = 0, f; f = h[g]; g++) {
|
this._styles.push({
|
url: b + g + "." + a,
|
size: new BMap.Size(f, f)
|
})
|
}
|
};
|
e.prototype.initialize = function(f) {
|
this._map = f;
|
this._domElement = document.createElement("div");
|
this._updateCss();
|
this._updateText();
|
this._updatePosition();
|
this._bind();
|
this._map.getPanes().markerMouseTarget.appendChild(this._domElement);
|
return this._domElement
|
};
|
e.prototype.draw = function() {
|
this._map && this._updatePosition()
|
};
|
e.prototype.getText = function() {
|
return this._text
|
};
|
e.prototype.setText = function(f) {
|
if (f && (!this._text || (this._text.toString() != f.toString()))) {
|
this._text = f;
|
this._updateText();
|
this._updateCss();
|
this._updatePosition()
|
}
|
};
|
e.prototype.getPosition = function() {
|
return this._position
|
};
|
e.prototype.setPosition = function(f) {
|
if (f && (!this._position || !this._position.equals(f))) {
|
this._position = f;
|
this._updatePosition()
|
}
|
};
|
e.prototype.getStyleByText = function(i, h) {
|
var g = parseInt(i);
|
var f = parseInt(g / 10);
|
f = Math.max(0, f);
|
f = Math.min(f, h.length - 1);
|
return h[f]
|
};
|
e.prototype._updateCss = function() {
|
var f = this.getStyleByText(this._text, this._styles);
|
this._domElement.style.cssText = this._buildCssText(f)
|
};
|
e.prototype._updateText = function() {
|
if (this._domElement) {
|
this._domElement.innerHTML = this._text
|
}
|
};
|
e.prototype._updatePosition = function() {
|
if (this._domElement && this._position) {
|
var f = this._domElement.style;
|
var g = this._map.pointToOverlayPixel(this._position);
|
g.x -= Math.ceil(parseInt(f.width) / 2);
|
g.y -= Math.ceil(parseInt(f.height) / 2);
|
f.left = g.x + "px";
|
f.top = g.y + "px"
|
}
|
};
|
e.prototype._buildCssText = function(g) {
|
var h = g.url;
|
var n = g.size;
|
var k = g.anchor;
|
var j = g.offset;
|
var l = g.textColor || "white";
|
var f = g.textSize || 10;
|
var m = [];
|
if (d.browser.ie < 7) {
|
m.push('filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="' + h + '");')
|
} else {
|
m.push("background-image:url(" + h + ");");
|
var i = "0 0";
|
(j instanceof BMap.Size) && (i = j.width + "px " + j.height + "px");
|
m.push("background-position:center;")
|
}
|
if (n instanceof BMap.Size) {
|
if (k instanceof BMap.Size) {
|
if (k.height > 0 && k.height < n.height) {
|
m.push("height:" + (n.height - k.height) + "px; padding-top:" + k.height + "px;")
|
}
|
if (k.width > 0 && k.width < n.width) {
|
m.push("width:" + (n.width - k.width) + "px; padding-left:" + k.width + "px;")
|
}
|
} else {
|
m.push("height:" + n.height + "px; line-height:" + n.height + "px;");
|
m.push("width:" + n.width + "px; text-align:center;")
|
}
|
}
|
m.push("cursor:pointer; color:" + l + "; position:absolute; font-size:" + f + "px; font-family:Arial,sans-serif; font-weight:bold");
|
return m.join("")
|
};
|
e.prototype._bind = function() {
|
if (!this._domElement) {
|
return
|
}
|
var g = this;
|
var i = this._map;
|
var f = d.lang.Event;
|
|
function h(m, l) {
|
var k = m.srcElement || m.target;
|
var j = m.clientX || m.pageX;
|
var o = m.clientY || m.pageY;
|
if (m && l && j && o && k) {
|
var n = d.dom.getPosition(i.getContainer());
|
l.pixel = new BMap.Pixel(j - n.left, o - n.top);
|
l.point = i.pixelToPoint(l.pixel)
|
}
|
return l
|
}
|
d.event.on(this._domElement, "mouseover", function(j) {
|
g.dispatchEvent(h(j, new f("onmouseover")))
|
});
|
d.event.on(this._domElement, "mouseout", function(j) {
|
g.dispatchEvent(h(j, new f("onmouseout")))
|
});
|
d.event.on(this._domElement, "click", function(j) {
|
g.dispatchEvent(h(j, new f("onclick")))
|
})
|
}
|
})();
|