qd-changjing/public/static/js/InfoBox.js

9 lines
9.2 KiB
JavaScript
Raw Permalink Normal View History

2022-07-05 16:56:29 +08:00
/*
* @Author: hisense.wuhongjian
* @Date: 2022-03-19 22:00:29
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-03-19 22:08:17
* @Description: 告诉大家这是什么
*/
var BMapGLLib=window.BMapGLLib=BMapGLLib||{};var INFOBOX_AT_TOP=1,INFOBOX_AT_RIGHT=2,INFOBOX_AT_BOTTOM=3,INFOBOX_AT_LEFT=4;(function(){var b,a=b=a||{version:"1.5.0"};a.guid="$BAIDU$";(function(){window[a.guid]=window[a.guid]||{};a.lang=a.lang||{};a.lang.isString=function(d){return"[object String]"==Object.prototype.toString.call(d)};a.lang.isFunction=function(d){return"[object Function]"==Object.prototype.toString.call(d)};a.lang.Event=function(d,e){this.type=d;this.returnValue=true;this.target=e||null;this.currentTarget=null};a.object=a.object||{};a.extend=a.object.extend=function(f,d){for(var e in d){if(d.hasOwnProperty(e)){f[e]=d[e]}}return f};a.event=a.event||{};a.event._listeners=a.event._listeners||[];a.dom=a.dom||{};a.dom._g=function(d){if(a.lang.isString(d)){return document.getElementById(d)}return d};a._g=a.dom._g;a.event.on=function(e,h,j){h=h.replace(/^on/i,"");e=a.dom._g(e);var i=function(l){j.call(e,l)},d=a.event._listeners,g=a.event._eventFilter,k,f=h;h=h.toLowerCase();if(g&&g[h]){k=g[h](e,h,i);f=k.type;i=k.listener}if(e.addEventListener){e.addEventListener(f,i,false)}else{if(e.attachEvent){e.attachEvent("on"+f,i)}}d[d.length]=[e,h,j,i,f];return e};a.on=a.event.on;a.event.un=function(f,i,e){f=a.dom._g(f);i=i.replace(/^on/i,"").toLowerCase();var l=a.event._listeners,g=l.length,h=!e,k,j,d;while(g--){k=l[g];if(k[1]===i&&k[0]===f&&(h||k[2]===e)){j=k[4];d=k[3];if(f.removeEventListener){f.removeEventListener(j,d,false)}else{if(f.detachEvent){f.detachEvent("on"+j,d)}}l.splice(g,1)}}return f};a.un=a.event.un;a.dom.g=function(d){if("string"==typeof d||d instanceof String){return document.getElementById(d)}else{if(d&&d.nodeName&&(d.nodeType==1||d.nodeType==9)){return d}}return null};a.g=a.G=a.dom.g;a.dom._styleFixer=a.dom._styleFixer||{};a.dom._styleFilter=a.dom._styleFilter||[];a.dom._styleFilter.filter=function(e,h,j){for(var d=0,g=a.dom._styleFilter,f;f=g[d];d++){if(f=f[j]){h=f(e,h)}}return h};a.string=a.string||{};a.string.toCamelCase=function(d){if(d.indexOf("-")<0&&d.indexOf("_")<0){return d}return d.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})};a.dom.setStyle=function(f,e,g){var h=a.dom,d;f=h.g(f);e=a.string.toCamelCase(e);if(d=h._styleFilter){g=d.filter(e,g,"set")}d=h._styleFixer[e];(d&&d.set)?d.set(f,g):(f.style[d||e]=g);return f};a.setStyle=a.dom.setStyle;a.dom.setStyles=function(e,f){e=a.dom.g(e);for(var d in f){a.dom.setStyle(e,d,f[d])}return e};a.setStyles=a.dom.setStyles;a.browser=a.browser||{};a.browser.ie=a.ie=/msie (\d+\.\d+)/i.test(navigator.userAgent)?(document.documentMode||+RegExp["\x241"]):undefined;a.dom._NAME_ATTRS=(function(){var d={"cellpadding":"cellPadding","cellspacing":"cellSpacing","colspan":"colSpan","rowspan":"rowSpan","valign":"vAlign","usemap":"useMap","frameborder":"frameBorder"};if(a.browser.ie<8){d["for"]="htmlFor";d["class"]="className"}else{d["htmlFor"]="for";d["className"]="class"}return d})();a.dom.setAttr=function(e,d,f){e=a.dom.g(e);if("style"==d){e.style.cssText=f}else{d=a.dom._NAME_ATTRS[d]||d;e.setAttribute(d,f)}return e};a.setAttr=a.dom.setAttr;a.dom.setAttrs=function(f,d){f=a.dom.g(f);for(var e in d){a.dom.setAttr(f,e,d[e])}return f};a.setAttrs=a.dom.setAttrs;a.dom.create=function(f,d){var g=document.createElement(f),e=d||{};return a.dom.setAttrs(g,e)};b.undope=true})();var c=BMapGLLib.InfoBox=function(f,e,d){this._content=e||"";this._isOpen=false;this._map=f;this._opts=d=d||{};this._opts.offset=d.offset||new BMapGL.Size(0,0);this._opts.boxClass=d.boxClass||"infoBox";this._opts.boxStyle=d.boxStyle||{};this._opts.closeIconMargin=d.closeIconMargin||"2px";this._opts.closeIconUrl=d.closeIconUrl||"close.png";this._opts.enableAutoPan=d.enableAutoPan?true:false;this._opts.align=d.align||INFOBOX_AT_TOP;this._opts.disableClose=(d.disableClose===true)};c.prototype=new BMapGL.Overlay();c.prototype.initialize=function(e){var d=this;var g=this._div=a.dom.create("div",{"class":this._opts.boxClass});a.dom.setStyles(g,this._opts.boxStyle);g.style.position="absolute";this._setContent(this._content);var f=e.getPanes().floatPane;f.style.width="auto";f.appendChild(
e._point=e._marker.getPosition();e._adjustPosition(e._point)})}}this.show();this._point=f;this._panBox();this._adjustPosition(this._point)};c.prototype.close=function(){if(this._isOpen){this._map.removeOverlay(this);this._remove();this._isOpen=false;this._dispatchEvent(this,"close",{"point":this._point})}};c.prototype.enableAutoPan=function(){this._opts.enableAutoPan=true};c.prototype.disableAutoPan=function(){this._opts.enableAutoPan=false};c.prototype.setContent=function(d){this._setContent(d);this._getInfoBoxSize();this._adjustPosition(this._point)};c.prototype.setPosition=function(d){this._point=d;this._adjustPosition(d);this._removeMarkerEvt()};c.prototype.getPosition=function(){return this._point};c.prototype.getOffset=function(){return this._opts.offset},c.prototype._remove=function(){var d=this;if(this.domElement&&this.domElement.parentNode){a.event.un(this._div.firstChild,"click",d._closeHandler());this.domElement.parentNode.removeChild(this.domElement)}this.domElement=null;this._isOpen=false;this.dispatchEvent("onremove")},a.object.extend(c.prototype,{_getCloseIcon:function(){if(this._opts.disableClose){return"<div></div>"}var d="<img src='"+this._opts.closeIconUrl+"' align='right' style='position:absolute;right:0px;cursor:pointer;margin:"+this._opts.closeIconMargin+"'/>";return d},_setContent:function(e){if(!this._div){return}var d=this._getCloseIcon();if(typeof e.nodeType==="undefined"){this._div.innerHTML=d+e}else{this._div.innerHTML=d;this._div.appendChild(e)}this._content=e;this._addEventToClose()},_adjustPosition:function(f){var d=this._getPointPosition(f);var e=this._marker&&this._marker.getIcon();switch(this._opts.align){case INFOBOX_AT_TOP:if(this._marker){this._div.style.bottom=-(d.y-this._opts.offset.height-e.anchor.height+e.infoWindowOffset.height)-this._marker.getOffset().height+2+"px"}else{this._div.style.bottom=-(d.y-this._opts.offset.height)+"px"}break;case INFOBOX_AT_BOTTOM:if(this._marker){this._div.style.top=d.y+this._opts.offset.height-e.anchor.height+e.infoWindowOffset.height+this._marker.getOffset().height+"px"}else{this._div.style.top=d.y+this._opts.offset.height+"px"}break}if(this._marker){this._div.style.left=d.x-e.anchor.width+this._marker.getOffset().width+e.infoWindowOffset.width-this._boxWidth/2+this._opts.offset.width+"px"}else{this._div.style.left=d.x-this._boxWidth/2+this._opts.offset.width+"px"}},_getPointPosition:function(d){this._pointPosition=this._map.pointToOverlayPixel(d);return this._pointPosition},_getInfoBoxSize:function(){this._boxWidth=parseInt(this._div.offsetWidth,10);this._boxHeight=parseInt(this._div.offsetHeight,10)},_addEventToClose:function(){var d=this;a.event.on(this._div.firstChild,"click",d._closeHandler());this._hasBindEventClose=true},_closeHandler:function(){var d=this;return function(f){d.close()}},_stopBubble:function(d){if(d&&d.stopPropagation){d.stopPropagation()}else{window.event.cancelBubble=true}},_panBox:function(){if(!this._opts.enableAutoPan){return}var i=parseInt(this._map.getContainer().offsetHeight,10),o=parseInt(this._map.getContainer().offsetWidth,10),j=this._boxHeight,d=this._boxWidth;if(j>=i||d>=o){return}if(!this._map.getBounds().containsPoint(this._point)){this._map.setCenter(this._point)}var e=this._map.pointToPixel(this._point),p,m,l,g=d/2-e.x,n=d/2+e.x-o;if(this._marker){var k=this._marker.getIcon()}console.log(k);switch(this._opts.align){case INFOBOX_AT_TOP:var f=this._marker?k.anchor.height+this._marker.getOffset().height-k.infoWindowOffset.height:0;p=j-e.y+this._opts.offset.height+f+2;break;case INFOBOX_AT_BOTTOM:var f=this._marker?-k.anchor.height+k.infoWindowOffset.height+this._marker.getOffset().height+this._opts.offset.height:0;m=j+e.y-i+f+4;break}panX=g>0?g:(n>0?-n:0);l=p>0?p:(m>0?-m:0);this._map.panBy(panX,l)},_removeMarkerEvt:function(){this._markerDragend&&this._marker.removeEventListener("dragend",this._markerDragend);this._markerDragging&&this._marker.removeEventListener("dragging",this._markerDragging);this._markerDragend=this._markerDragging=null},_dispatchEvent:function(d,e,g){e.indexOf("on")!=0&&(e="on"+e);var f=ne