@tarojs/components
Version:
1 lines • 29.4 kB
JavaScript
import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,g as getElement}from"./index-ab3c86da.js";import Hammer from"hammerjs";var mapCss=".BMap_cpyCtrl,.anchorBL img,.BMap_bubble_buttons{display:none}";var Map=function(){function t(t){var e=this;registerInstance(this,t);this.onTap=createEvent(this,"tap",7);this.currentRotation=0;this._getCenterLocation=function(t){e.map.getOverlays().forEach((function(t){if(t instanceof BMapGL.Marker&&t.isCenterMarker){e.map.removeOverlay(t)}}));t.iconPath="https://img0.baidu.com/it/u=2604176863,3349829508&fm=253&fmt=auto&app=138&f=PNG?w=243&h=243";var a=new BMapGL.Icon(t.iconPath,new BMapGL.Size(20,30));var o=[e.longitude,e.latitude];var i=new BMapGL.Marker(new BMapGL.Point(e.longitude,e.latitude),{icon:a});i.isCenterMarker=true;e.map.addOverlay(i);return o};this._setLocMarkerIcon=function(t){var a=new BMapGL.Icon(t.iconPath,new BMapGL.Size(20,30));var o=new BMapGL.Point(116.404,39.915);var i=new BMapGL.Marker(o,{icon:a});e.map.addOverlay(i)};this._translateMarker=function(t){var a=t.destination.latitude;var o=t.destination.longitude;if(a<-80&&a>=-90){a=t.destination.latitude+10}var i=new BMapGL.Point(o,a);var n={flagId:true,flagCoordinate:true};var r={errMsg:"animationEnd:ok"};var l=e.map.getOverlays();var s=l.find((function(e){return e instanceof BMapGL.Marker&&e.id===t.markerId}));if(!s){console.error('Marker "'.concat(t.markerId,'" not found.'));n.flagId=false;return n}if(a>90||a<-90||o>180||o<-180||isNaN(a)||isNaN(o)){n.flagCoordinate=false;return n}var d=s.getPosition();var u={lng:(i.lng-d.lng)/(t.duration/16),lat:(i.lat-d.lat)/(t.duration/16)};var c=s.getRotation();var p=t.rotate;if(!e.currentRotation){e.currentRotation=p}else{e.currentRotation+=p}var h=(e.currentRotation-c)/(t.duration/16);var v=d;var f=c;if(!t.moveWithRotate&&t.autoRotate){var m=0;var g=setInterval((function(){v=new BMapGL.Point(v.lng+u.lng,v.lat+u.lat);s.setPosition(v);m++;if(m>=t.duration/16){clearInterval(g);var e=0;var a=setInterval((function(){f+=h;s.setRotation(f);e++;if(e>=t.duration/16){clearInterval(a);t===null||t===void 0?void 0:t.animationEnd(r)}}),16)}}),16)}else if(t.moveWithRotate&&t.autoRotate){var b=0;var w=setInterval((function(){v=new BMapGL.Point(v.lng+u.lng,v.lat+u.lat);s.setPosition(v);f+=h;s.setRotation(f);b++;if(b>=t.duration/16){clearInterval(w);t===null||t===void 0?void 0:t.animationEnd(r)}}),16)}else if(t.moveWithRotate&&!t.autoRotate){var y=0;var M=setInterval((function(){v=new BMapGL.Point(v.lng+u.lng,v.lat+u.lat);s.setPosition(v);y++;if(y>=t.duration/16){clearInterval(M);t===null||t===void 0?void 0:t.animationEnd(r)}}),16)}return n};this._includePoints=function(t){var a=t.points.map((function(t){return new BMapGL.Point(t.longitude,t.latitude)}));var o=e.map.getZoom();var i=e.map.getCenter();var n=e.map.getViewport(a);e.map.centerAndZoom(n.center,n.zoom);var r=e.map.getBounds();var l=true;for(var s=0;s<a.length;s++){if(!r.containsPoint(a[s])){e.map.centerAndZoom(i,o);l=false;break}}return l};this._getRegion=function(){var t=e.map.getBounds();var a=t.getSouthWest();var o=t.getNorthEast();return{southwest:{lat:a.lat,lng:a.lng},northeast:{lat:o.lat,lng:o.lng}}};this._getRotate=function(){var t=e.rotate;if(t<0||t>360){t=0}return t};this._getSkew=function(){var t=e.skew;if(t<0||t>40){t=0}return t};this._getScale=function(){var t=e.scale;return t};this._setCenterOffset=function(t){var a=t.offset,o=a[0],i=a[1];var n=e.map.getSize();var r=Math.max(.25*n.width,Math.min(.75*n.width,o*n.width));var l=Math.max(.25*n.height,Math.min(.75*n.height,i*n.height));var s=new BMapGL.Pixel(r,l);var d=e.map.pixelToPoint(s);e.map.panTo(d)};this._addMarkers=function(t){if(t.clear){e.map.clearOverlays(e.markers)}t.markers.forEach((function(a){var o,i,n,r,l,s,d,u,c,p,h,v,f,m;if(a.latitude&&a.longitude&&a.iconPath){var g=new BMapGL.Point(a.longitude,a.latitude);var b=new BMapGL.Marker(g,{enableClicking:true});e.map.addOverlay(b);b.id=a.id;b.alpha=a.alpha;if(a.zIndex){b.setZIndex(a.zIndex)}if(a.width&&a.height&&a.iconPath){var w=new BMapGL.Icon(a.iconPath,new BMapGL.Size(a.width,a.height));b.setIcon(w)}else if(a.iconPath){var y=new Image;y.src=a.iconPath;y.style.opacity=String(a.alpha);y.onload=function(){var t=new BMapGL.Size(y.width,y.height);var e=new BMapGL.Icon(y.src,t);e.imageOffset=new BMapGL.Size(0,0,a.alpha||1);b.setIcon(e)}}else{console.error("没有找到iconPath图片路径");return}var M=a.rotate?a.rotate:0;if(M){b.setRotation(M)}if(a.anchor){var x=((i=(o=a.anchor)===null||o===void 0?void 0:o.x)!==null&&i!==void 0?i:0)*(a.width||0);var B=((r=(n=a.anchor)===null||n===void 0?void 0:n.y)!==null&&r!==void 0?r:0)*(a.height||0);b.setOffset(new BMapGL.Size(x,B))}if(!a.callout&&a.title){var L=new Hammer(e.mapRef);L.on("tap",(function(a){var o=a.center;var i=o.x;var n=o.y;var r=15;t.markers.forEach((function(t){var a=document.getElementsByClassName("bmap-container")[0];var o=a.getBoundingClientRect();var l=o.left;var s=o.top;var d=new BMapGL.Point(t.longitude,t.latitude);var u=e.map.pointToPixel(d);var c=u.x+l;var p=u.y+s;var h=Math.sqrt(Math.pow(i-c,2)+Math.pow(n-p,2));if(h<r&&t.id===b.id){var v='<div style="text-align:center">'.concat(t.title,"</div>");var f=new BMapGL.InfoWindow(v);e.map.openInfoWindow(f,g)}}))}))}if(a.callout){var x=((l=a.callout)===null||l===void 0?void 0:l.anchorX)?(s=a.callout)===null||s===void 0?void 0:s.anchorX:0;var B=((d=a.callout)===null||d===void 0?void 0:d.anchorY)?(u=a.callout)===null||u===void 0?void 0:u.anchorY:0;var _=new BMapGL.InfoWindow('<div style="\n padding: '.concat((c=a.callout)===null||c===void 0?void 0:c.padding,"px;\n color:").concat((p=a.callout)===null||p===void 0?void 0:p.color,";\n text-align:").concat((h=a.callout)===null||h===void 0?void 0:h.textAlign,';"\n >\n <p style="font-size:').concat((v=a.callout)===null||v===void 0?void 0:v.fontSize,'px">').concat(((f=a.callout)===null||f===void 0?void 0:f.content)||"","</p>\n </div>"),{width:200,height:100,offset:new BMapGL.Size(x-24,B-20)});b.callout=_;e.map.addOverlay(b);if(((m=a.callout)===null||m===void 0?void 0:m.display)==="ALWAYS"){b.callout.disableCloseOnClick();var P=b.getPosition();b.callout.addEventListener("open",(function(){var t,e,o,i;console.log(b.callout);var n=document.querySelector(".BMap_bubble_pop");if(n){var r=n.querySelector(".triangle");if(!r){r=document.createElement("div");r.className="triangle";n.appendChild(r)}var l=document.querySelector(".BMap_bubble_pop>img");if(l){l.setAttribute("style","position: absolute;transform: translate(-50%, 0); top: ".concat(P.lat-100,"px; left: ").concat(P.lng-20,"px;display:none"))}var s=(t=a.callout)===null||t===void 0?void 0:t.bgColor;var d=((e=a.callout)===null||e===void 0?void 0:e.borderWidth)||5;var u=(o=a.callout)===null||o===void 0?void 0:o.borderColor;var c=(i=a.callout)===null||i===void 0?void 0:i.borderRadius;d=Math.min(d,15);r.setAttribute("style","width:0;height:0;border-left:".concat(d,"px solid transparent;border-right:").concat(d,"px solid transparent;border-top:").concat(d,"px solid ").concat(u,";position:absolute;left:83px;bottom:-").concat(2*d,"px"));n.setAttribute("style","background-color:".concat(s,";top:").concat(P.lat-120,"px; left:").concat(P.lng-100,"px;position: absolute;border: ").concat(d,"px solid ").concat(u,";border-radius:").concat(c,"px; "))}}));e.map.openInfoWindow(b.callout,g)}else{var L=new Hammer(e.mapRef);L.on("tap",(function(a){var o=a.center;var i=o.x;var n=o.y;var r=15;t.markers.forEach((function(t){var a=document.getElementsByClassName("bmap-container")[0];var o=a.getBoundingClientRect();var l=o.left;var s=o.top;var d=new BMapGL.Point(t.longitude,t.latitude);var u=e.map.pointToPixel(d);var c=u.x+l;var p=u.y+s;var h=Math.sqrt(Math.pow(i-c,2)+Math.pow(n-p,2));if(h<r&&t.id===b.id){var v=b.getPosition();b.callout.addEventListener("open",(function(){var e,a,o,i;console.log(b.callout);var n=document.querySelector(".BMap_bubble_pop");if(n){var r=n.querySelector(".triangle");if(!r){r=document.createElement("div");r.className="triangle";n.appendChild(r)}var l=document.querySelector(".BMap_bubble_pop>img");if(l){l.setAttribute("style","position: absolute;transform: translate(-50%, 0); top: ".concat(v.lat-100,"px; left: ").concat(v.lng-20,"px;display:none"))}var s=(e=t.callout)===null||e===void 0?void 0:e.bgColor;var d=((a=t.callout)===null||a===void 0?void 0:a.borderWidth)||5;var u=(o=t.callout)===null||o===void 0?void 0:o.borderColor;var c=(i=t.callout)===null||i===void 0?void 0:i.borderRadius;d=Math.min(d,15);r.setAttribute("style","width:0;height:0;border-left:".concat(d,"px solid transparent;border-right:").concat(d,"px solid transparent;border-top:").concat(d,"px solid ").concat(u,";position:absolute;left:83px;bottom:-").concat(2*d,"px"));n.setAttribute("style","background-color:".concat(s,";top:").concat(v.lat-120,"px; left:").concat(v.lng-100,"px;position: absolute;border: ").concat(d,"px solid ").concat(u,";border-radius:").concat(c,"px; "))}}));e.map.openInfoWindow(b.callout,g)}else{b.callout.enableCloseOnClick()}}))}))}}if(a.label){var G=a.label.content||"";var C={position:g,offset:new BMapGL.Size(a.label.anchorX||0,a.label.anchorY||0)};var S=new BMapGL.Label(G,C);S.setStyle({color:a.label.color,fontSize:a.label.fontSize+"px",borderWidth:a.label.borderWidth+"px",borderColor:a.label.borderColor,borderRadius:a.label.borderRadius+"px",background:a.label.bgColor,padding:a.label.padding+"px"});b.setLabel(S)}}}))};this._removeMarkers=function(t){var a=e.map.getOverlays();var o={};t.markerIds.forEach((function(t){var i=a.find((function(e){return e instanceof BMapGL.Marker&&String(e.id)===t}));o=i;e.map.removeOverlay(i)}));return o};this._moveAlong=function(t){var a=t.path;var o=t.markerId;var i=t.duration;var n=t.autoRotate;var r=e.map.getOverlays().find((function(t){return t instanceof BMapGL.Marker&&t.id===o}));var l=a.map((function(t){return new BMapGL.Point(t.longitude,t.latitude)}));var s={flagId:true,flagCoordinate:true};if(!r){console.error('Marker "'.concat(o,'" not found.'));s.flagId=false;return s}for(var d=0;d<l.length;d++){var u=l[d];if(u.lat<-80&&u.lat>=-90){u.lat+=10}if(u.lng<-180||u.lng>180||u.lat<-90||u.lat>90||isNaN(u.lng)||isNaN(u.lat)){s.flagCoordinate=false;return s}}if(s.flagId&&s.flagCoordinate){var c=performance.now();var p=function(t){var a=t-c;var o=Math.min(a/i,1);var s=e.getPointOnPath(l,o);r.setPosition(s);if(n&&o<1){var d=e.getPointOnPath(l,Math.min(o+.01,1));var u=e.calculateRotation(s,d);r.setRotation(u)}if(o<1){requestAnimationFrame(p)}else{r.setPosition(l[l.length-1]);r.setRotation(0)}};requestAnimationFrame(p)}return s};this.getPointOnPath=function(t,a){var o=e.calculateTotalLength(t);var i=o*a;var n=0;for(var r=0;r<t.length-1;r++){var l=e.map.getDistance(t[r],t[r+1]);if(n+l>=i){var s=(i-n)/l;var d=t[r+1].lng-t[r].lng;var u=t[r+1].lat-t[r].lat;var c=t[r].lng+d*s;var p=t[r].lat+u*s;return new BMapGL.Point(c,p)}n+=l}return t[t.length-1]};this.calculateTotalLength=function(t){var a=0;for(var o=0;o<t.length-1;o++){a+=e.map.getDistance(t[o],t[o+1])}return a};this.calculateRotation=function(t,e){var a=e.lng-t.lng;var o=e.lat-t.lat;var i=Math.atan2(o,a)*(180/Math.PI);i=90-i;return i};this._addGroundOverlay=function(t){var a=t.src,o=t.opacity,i=t.bounds,n=t.visible,r=t.id,l=t.zIndex;var s=true;if(i.southwest.longitude>=i.northeast.longitude||i.southwest.latitude>=i.northeast.latitude){s=false;return}if(i.southwest.latitude>90||i.southwest.latitude<-90||i.southwest.longitude>180||i.southwest.longitude<-180||isNaN(i.southwest.latitude)||isNaN(i.southwest.longitude)){s=false;return}if(i.northeast.latitude>90||i.northeast.latitude<-90||i.northeast.longitude>180||i.northeast.longitude<-180||isNaN(i.northeast.latitude)||isNaN(i.northeast.longitude)){s=false;return}var d=new BMapGL.Bounds(new BMapGL.Point(i.southwest.longitude,i.southwest.latitude),new BMapGL.Point(i.northeast.longitude,i.northeast.latitude));function u(t,e,a,o,i,n,r){this._bounds=t;this._imageUrl=e;this._map=a;this._visible=o;this._opacity=i;this._zIndex=n;this._id=r}u.prototype=new BMapGL.Overlay;u.prototype.initialize=function(t){var e=this;if(document.getElementById(this._id)){var a=document.getElementById(this._id);a===null||a===void 0?void 0:a.remove()}this._map=t;if(!this._div){var o=document.createElement("div");o.id=this._id;o.style.position="absolute";o.style.border="none";o.style.zIndex=this._zIndex;var i=document.createElement("img");i.src=this._imageUrl;var n=this._opacity<0?"1":this._opacity;i.style.opacity=n;o.appendChild(i);this._div=o}t.addEventListener("zoomend",(function(){var a=t.pointToOverlayPixel(e._bounds.getSouthWest());var o=t.pointToOverlayPixel(e._bounds.getNorthEast());var i=o.x-a.x;var n=a.y-o.y;e._div.style.width=i+"px";e._div.style.height=n+"px";var r=e._div.querySelector("img");r.style.width=i+"px";r.style.height=n+"px"}));t.getPanes().labelPane.appendChild(this._div);return this._div};u.prototype.draw=function(){var e={lat:t.bounds.northeast.latitude,lng:t.bounds.southwest.longitude};var a=this._map.pointToOverlayPixel(e);this._div.style.left=a.x+"px";this._div.style.top=a.y+"px";var o=this._map.getBounds();var i=this._map.pointToPixel(o.getSouthWest());var n=this._map.pointToPixel(o.getNorthEast());var r=n.x-i.x;var l=n.y-i.y;var s=this._map.getZoom();var d=r*Math.pow(2,18-s);var u=l*Math.pow(2,18-s);this._div.style.width=d+"px";this._div.style.height=u+"px";this._div.style.display=this._visible?"block":"none";var c=this._opacity<0?"1":this._opacity;this._div.getElementsByTagName("img")[0].style.opacity=c};var c=new u(d,a,e.map,n,o,l,r);e.map.addOverlay(c);var p=e.map.getOverlays().sort((function(t,e){return t._zIndex-e._zIndex}));e.groundOverlay=c;p.forEach((function(t){return t.draw()}));var h=e.map.getZoom();if(h<20){e.map.setZoom(h+1);e.map.setZoom(h)}else{e.map.setZoom(h-1);e.map.setZoom(h)}return s};this._updateGroundOverlay=function(t){var a=t.src,o=t.opacity,i=t.bounds,n=t.visible,r=t.id,l=t.zIndex;var s;var d=true;var u=true;var c={};var p=e.map.getOverlays();var h=p.find((function(t){return t._id===r}));if(!h){d=false;c={flagId:d,flagCoordinate:u};s=Object.assign({},c);return s}if(i.southwest.longitude>=i.northeast.longitude||i.southwest.latitude>=i.northeast.latitude){u=false;c={flagId:d,flagCoordinate:u};s=Object.assign({},c)}if(i.southwest.latitude>90||i.southwest.latitude<-90||i.southwest.longitude>180||i.southwest.longitude<-180||isNaN(i.southwest.latitude)||isNaN(i.southwest.longitude)){u=false;c={flagId:d,flagCoordinate:u};s=Object.assign({},c)}if(i.northeast.latitude>90||i.northeast.latitude<-90||i.northeast.longitude>180||i.northeast.longitude<-180||isNaN(i.northeast.latitude)||isNaN(i.northeast.longitude)){u=false;c={flagId:d,flagCoordinate:u};s=Object.assign({},c)}if(d&&u){var v=new BMapGL.Bounds(new BMapGL.Point(i.southwest.longitude,i.southwest.latitude),new BMapGL.Point(i.northeast.longitude,i.northeast.latitude));var f=e.map.getZoom();if(h){var m=document.getElementById(r);if(m){var g=m.querySelector("img");if(g){var b=o<0?"1":o;m.style.opacity=b;g.style.display=n?"block":"none";m.style.zIndex=l;var w=new Image;w.onload=function(){g.src=a;var t=v.getNorthEast().lng-v.getSouthWest().lng;var o=e.map.getSize().width;var i=o/Math.pow(2,18-f)*t;var n=w.naturalHeight/w.naturalWidth;var r=i*n;g.style.width="".concat(i,"px");g.style.height="".concat(r,"px");h._bounds=v;h.draw();e.map.panTo(e.map.getCenter());h.draw()};w.src=a}}}else{console.error("未找到id为".concat(r,"的元素"))}c={flagId:d,flagCoordinate:u};s=Object.assign({},c);return s}else{return s}};this._removeGroundOverlay=function(t){var a=e.map.getOverlays();var o="";var i=a.find((function(e){return e._id===t.id}));o=i;if(i){e.map.removeOverlay(i)}return o};this._setBoundary=function(t){var a=t.northeast.latitude;var o=t.southwest.latitude;var i=true;if(t.northeast.latitude<=-80&&t.northeast.latitude>=-90){a=t.northeast.latitude+10}if(t.southwest.latitude<=-80&&t.southwest.latitude>=-90){o=t.southwest.latitude+10}if(t.northeast.latitude<-90||t.northeast.latitude>90||t.northeast.longitude<-180||t.northeast.longitude>180||isNaN(t.northeast.latitude)||isNaN(t.northeast.longitude)||t.northeast.longitude<t.southwest.longitude||t.northeast.latitude<t.southwest.latitude){i=false;return}if(t.southwest.latitude<-90||t.southwest.latitude>90||t.southwest.longitude<-180||t.southwest.longitude>180||isNaN(t.southwest.latitude)||isNaN(t.southwest.longitude)){i=false;return}var n=new BMapGL.Point(t.northeast.longitude,a);var r=new BMapGL.Point(t.southwest.longitude,o);var l=new BMapGL.Bounds(r,n);var s=e.map.getViewport([n,r]);e.map.centerAndZoom(new BMapGL.Point(s.center.lng,s.center.lat),s.zoom+2);e.map.addOverlay(new BMapGL.Polygon([new BMapGL.Point(l.sw.lng,l.sw.lat),new BMapGL.Point(l.sw.lng,l.ne.lat),new BMapGL.Point(l.ne.lng,l.ne.lat),new BMapGL.Point(l.ne.lng,l.sw.lat)],{fillOpacity:0}));BMapGLLib.AreaRestriction.setBounds(e.map,l);return i};this.latitude=undefined;this.longitude=undefined;this.scale=undefined;this.minScale=undefined;this.maxScale=undefined;this.markers=undefined;this.polyline=undefined;this.circles=undefined;this.polygons=undefined;this.subkey=undefined;this.layerStyle=undefined;this.rotate=undefined;this.skew=undefined;this.showCompass=undefined;this.showScale=undefined;this.enableOverlooking=undefined;this.enableZoom=undefined;this.enableScroll=undefined;this.enableRotate=undefined;this.enableSatellite=undefined;this.enableTraffic=undefined;this.enableBuilding=undefined;this.enableAutoMaxOverlooking=undefined;this.enable3D=undefined;this.width="100%";this.height="100%"}t.prototype.componentDidLoad=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,a,o,i,i,n,r,l,s,d,u,c,p,h,v,f,m,g,b,w,y;var M=this;return __generator(this,(function(x){switch(x.label){case 0:return[4,this.loadMapScript()];case 1:x.sent();return[4,this.LoadBmapLibScript()];case 2:x.sent();if(this.mapRef){this.mapRef.addEventListener("touchmove",(function(t){if(t.cancelable){t.preventDefault()}}));this.map=new BMapGL.Map(this.mapRef);this.map.removeControl(this.map.getMapType());if(this.latitude<-90||this.latitude>90||this.longitude<-180||this.longitude>180||isNaN(this.latitude)||isNaN(this.longitude)){console.error("请正确设置中心经纬度");return[2]}t=isNaN(this.scale)?16:this.scale;e=isNaN(this.minScale)?3:this.minScale;a=isNaN(this.maxScale)?16:this.maxScale;o=new BMapGL.Point(this.longitude,this.latitude);if(e<3||e>20){e=3;this.map.setMinZoom(3)}else{this.map.setMinZoom(e)}if(a>20||a<3){a=20;this.map.setMaxZoom(20)}else{this.map.setMaxZoom(a)}if(e>a){e=3;this.map.setMinZoom(3);a=20;this.map.setMaxZoom(20)}if(e<=16&&a>=16){if(t>=e&&t<=a){this.map.centerAndZoom(o,t)}else{t=16;this.map.centerAndZoom(o,t)}}else{if(t>=e&&t<=a){this.map.centerAndZoom(o,t)}else if(t<e){t=e;this.map.centerAndZoom(o,e)}else{t=a;this.map.centerAndZoom(o,a)}}if(Array.isArray(this.markers)){this.addMarkers(this.markers)}if(Array.isArray(this.polyline)){this.polyline.forEach((function(t){if(t.points){var e=t.points.map((function(t){return new BMapGL.Point(t.longitude,t.latitude)}));var a=new BMapGL.Polyline(e,{strokeColor:t.color,strokeWeight:t.width,strokeStyle:t.dottedLine?"dashed":"solid",strokeOpacity:1});M.map.addOverlay(a)}}))}if(Array.isArray(this.circles)){this.circles.forEach((function(t){if(t.latitude&&t.longitude&&t.radius){var e=new BMapGL.Point(t.longitude,t.latitude);var a=new BMapGL.Circle(e,t.radius,{strokeColor:t.color,fillColor:t.fillColor,strokeWeight:t.strokeWidth});M.map.addOverlay(a)}}))}if(Array.isArray(this.polygons)){this.polygons.forEach((function(t){var e=t.points.map((function(t){return new BMapGL.Point(t.longitude,t.latitude)}));var a=new BMapGL.Polygon(e,{strokeColor:t.strokeColor,fillColor:t.fillColor,strokeWeight:t.strokeWidth});M.map.addOverlay(a)}))}if(this.layerStyle===0){i=this.layerStyle;if(i){this.map.setMapStyleV2({styleId:this.subkey})}}else{i=this.layerStyle?this.layerStyle:1;if(i===1){this.map.setMapStyleV2({styleId:this.subkey})}}n=this.enable3D===true?this.enable3D:false;r=this.enableOverlooking===true?this.enableOverlooking:false;l=this.enableAutoMaxOverlooking===true?this.enableAutoMaxOverlooking:false;s=this.skew?this.skew:0;if(n===true){if(r===true){if(l===true){this.map.setTilt(75)}else{this.map.setTilt(45)}}else if(s>=0&&s<=40){this.map.setTilt(s)}else{this.map.setTilt(0)}}else{this.map.setTilt(0)}d=this.showCompass===true?this.showCompass:false;if(d===true){u=new BMapGL.NavigationControl3D({anchor:BMAP_ANCHOR_TOP_RIGHT,type:3});this.map.addControl(u)}c=this.showScale===true?this.showScale:false;if(c===true){p=new BMapGL.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT});this.map.addControl(p)}h=this.enableZoom===false?this.enableZoom:true;if(h===true){this.map.enableScrollWheelZoom(this.enableZoom)}if(this.enableZoom===true&&this.mapRef){this.map.enablePinchToZoom()}else{this.map.disablePinchToZoom()}v=this.enableScroll===false?this.enableScroll:true;if(v===true){this.map.enableDragging()}else{this.map.disableDragging()}f=this.rotate?this.rotate:0;if(f>=0&&this.rotate<=360){this.map.setHeading(this.rotate)}else{this.map.setHeading(0)}if(this.enableRotate===true){this.map.enableRotateGestures()}m=this.enableSatellite===true?this.enableSatellite:false;if(m===true&&this.mapRef){g=new BMapGL.MapTypeControl({mapTypes:[BMAP_NORMAL_MAP,BMAP_SATELLITE_MAP]});this.map.addControl(g)}b=this.enableTraffic===true?this.enableTraffic:false;if(b===true&&this.mapRef){this.map.setTrafficOn()}w=this.enableBuilding===false?this.enableBuilding:true;if(w===false){this.map.setDisplayOptions({building:false})}}if(this.map){y=new Hammer(this.mapRef);y.on("tap",(function(t){var e=M.map.pixelToPoint({x:t.center.x,y:t.center.y});M.onTap.emit({longitude:e.lng,latitude:e.lat})}))}return[2]}}))}))};t.prototype.disconnectedCallback=function(){if(this.map){this.map.destroy()}};t.prototype.addMarkers=function(t){var e=this;var a=[];t.forEach((function(t){var o,i,n,r,l,s,d,u,c,p,h,v,f,m;if(a.includes(t.id)){console.error("请输入不同的marker的id");return}a.push(t.id);if(t.latitude&&t.longitude&&t.iconPath&&t.id){if(t.latitude<-90||t.latitude>90||t.longitude<-180||t.longitude>180){console.error("请正确设置marker的经纬度");return}var g=new BMapGL.Point(t.longitude,t.latitude);var b=new BMapGL.Marker(g,{enableClicking:true});b.id=t.id;b.alpha=t.alpha;if(t.zIndex){b.setZIndex(t.zIndex)}if(t.width&&t.height){var w=document.createElement("canvas");w.width=t.width*2;w.height=t.height*2;var y=w.getContext("2d");var M=new Image;M.crossOrigin="Anonymous";M.src=t.iconPath;M.onload=function(){y.drawImage(M,0,0,t.width*2,t.height*2);var e=new BMapGL.Icon(w.toDataURL(),new BMapGL.Size(t.width,t.height),{anchor:new BMapGL.Size(0,0)});b.setIcon(e)}}else{var x=new Image;x.src=t.iconPath;x.style.opacity=String(t.alpha);x.onload=function(){var e=new BMapGL.Size(x.width,x.height);var a=new BMapGL.Icon(x.src,e);a.imageOffset=new BMapGL.Size(0,0,t.alpha||1);b.setIcon(a)}}var B=t.rotate?t.rotate:0;if(B>=0&&B<=360){b.setRotation(B)}var L=(i=(o=t.anchor)===null||o===void 0?void 0:o.x)!==null&&i!==void 0?i:.5;var _=(r=(n=t.anchor)===null||n===void 0?void 0:n.y)!==null&&r!==void 0?r:1;if(L>=0&&L<=1&&_>=0&&_<=1){var P=-L*(t.width||0);var G=-_*(t.height||0);b.setOffset(new BMapGL.Size(P,G))}else{var P=-.5*(t.width||0);var G=-1*(t.height||0);b.setOffset(new BMapGL.Size(P,G))}if(!t.callout&&t.title){var C=new Hammer(e.mapRef);C.on("tap",(function(t){var a=t.center;var o=a.x;var i=a.y;var n=15;e.markers.forEach((function(t){var a=document.getElementsByClassName("bmap-container")[0];var r=a.getBoundingClientRect();var l=r.left;var s=r.top;var d=new BMapGL.Point(t.longitude,t.latitude);var u=e.map.pointToPixel(d);var c=u.x+l;var p=u.y+s;var h=Math.sqrt(Math.pow(o-c,2)+Math.pow(i-p,2));if(h<n&&t.id===b.id){var v='<div style="text-align:center">'.concat(t.title,"</div>");var f=new BMapGL.InfoWindow(v);e.map.openInfoWindow(f,g)}}))}))}if(t.callout){var P=((l=t.callout)===null||l===void 0?void 0:l.anchorX)?(s=t.callout)===null||s===void 0?void 0:s.anchorX:0;var G=((d=t.callout)===null||d===void 0?void 0:d.anchorY)?(u=t.callout)===null||u===void 0?void 0:u.anchorY:0;var S=new BMapGL.InfoWindow('<div style="\n padding: '.concat((c=t.callout)===null||c===void 0?void 0:c.padding,"px;\n color:").concat((p=t.callout)===null||p===void 0?void 0:p.color,";\n text-align:").concat((h=t.callout)===null||h===void 0?void 0:h.textAlign,';"\n >\n <p style="font-size:').concat((v=t.callout)===null||v===void 0?void 0:v.fontSize,'px">').concat(((f=t.callout)===null||f===void 0?void 0:f.content)||"","</p>\n </div>"),{width:200,height:100,offset:new BMapGL.Size(P-24,G-20)});b.callout=S;e.map.addOverlay(b);if(((m=t.callout)===null||m===void 0?void 0:m.display)==="ALWAYS"){b.callout.disableCloseOnClick();var k=b.getPosition();b.callout.addEventListener("open",(function(){var e,a,o,i;var n=document.querySelector(".BMap_bubble_pop");if(n){var r=n.querySelector(".triangle");if(!r){r=document.createElement("div");r.className="triangle";n.appendChild(r)}var l=document.querySelector(".BMap_bubble_pop>img");if(l){l.setAttribute("style","position: absolute;transform: translate(-50%, 0); top: ".concat(k.lat-100,"px; left: ").concat(k.lng-20,"px;display:none"))}var s=(e=t.callout)===null||e===void 0?void 0:e.bgColor;var d=((a=t.callout)===null||a===void 0?void 0:a.borderWidth)||5;var u=(o=t.callout)===null||o===void 0?void 0:o.borderColor;var c=(i=t.callout)===null||i===void 0?void 0:i.borderRadius;d=Math.min(d,15);r.setAttribute("style","width:0;height:0;borderLeft:".concat(d,"px solid transparent;borderRight:").concat(d,"px solid transparent;borderTop:").concat(d,"px solid ").concat(u,";position:absolute;left:83px;bottom:-").concat(2*d,"px"));n.setAttribute("style","background-color:".concat(s,";top:").concat(k.lat-120,"px; left:").concat(k.lng-100,"px;position: absolute;border: ").concat(d,"px solid ").concat(u,";border-radius:").concat(c,"px; "))}}));e.map.openInfoWindow(b.callout,g)}else{var C=new Hammer(e.mapRef);C.on("tap",(function(t){var a=t.center;var o=a.x;var i=a.y;var n=15;e.markers.forEach((function(t){var a=document.getElementsByClassName("bmap-container")[0];var r=a.getBoundingClientRect();var l=r.left;var s=r.top;var d=new BMapGL.Point(t.longitude,t.latitude);var u=e.map.pointToPixel(d);var c=u.x+l;var p=u.y+s;var h=Math.sqrt(Math.pow(o-c,2)+Math.pow(i-p,2));if(h<n&&t.id===b.id){var v=b.getPosition();b.callout.addEventListener("open",(function(){var e,a,o,i;var n=document.querySelector(".BMap_bubble_pop");if(n){var r=n.querySelector(".triangle");if(!r){r=document.createElement("div");r.className="triangle";n.appendChild(r)}var l=document.querySelector(".BMap_bubble_pop>img");if(l){l.setAttribute("style","position: absolute;transform: translate(-50%, 0); top: ".concat(v.lat-100,"px; left: ").concat(v.lng-20,"px;display:none"))}var s=(e=t.callout)===null||e===void 0?void 0:e.bgColor;var d=((a=t.callout)===null||a===void 0?void 0:a.borderWidth)||5;var u=(o=t.callout)===null||o===void 0?void 0:o.borderColor;var c=(i=t.callout)===null||i===void 0?void 0:i.borderRadius;d=Math.min(d,15);r.setAttribute("style","width:0;height:0;border-left:".concat(d,"px solid transparent;border-right:").concat(d,"px solid transparent;border-top:").concat(d,"px solid ").concat(u,";position:absolute;left:83px;bottom:-").concat(2*d,"px"));n.setAttribute("style","background-color:".concat(s,";top:").concat(v.lat-120,"px; left:").concat(v.lng-100,"px;position: absolute;border: ").concat(d,"px solid ").concat(u,";border-radius:").concat(c,"px; "))}}));e.map.openInfoWindow(b.callout,g)}else{b.callout.enableCloseOnClick()}}))}))}}if(t.label){var I=t.label.content||"";var O={position:g,offset:new BMapGL.Size(t.label.anchorX||0,t.label.anchorY||0)};var N=new BMapGL.Label(I,O);var R=t.label.borderColor?t.label.borderColor:"white";N.setStyle({color:t.label.color,fontSize:t.label.fontSize+"px",borderWidth:t.label.borderWidth+"px",borderColor:R,borderRadius:t.label.borderRadius+"px",background:t.label.bgColor,padding:t.label.padding+"px"});b.setLabel(N)}e.map.addOverlay(b)}else{console.error("请检查marker经纬度和marker自定义图标路径和id值")}}))};t.prototype.loadMapScript=function(){return new Promise((function(t,e){var a=document.createElement("script");a.src="https://api.map.baidu.com/getscript?v=3.0&type=webgl&ak=Mb1FLBD3gfnY6bup4v6zEWh6MXwsZ9eo";a.defer=true;a.onload=function(){return t()};a.onerror=e;a.type="text/javascript";document.head.appendChild(a)}))};t.prototype.LoadBmapLibScript=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){return[2,new Promise((function(t,e){var a=document.createElement("script");a.src="//mapopen.bj.bcebos.com/github/BMapGLLib/AreaRestriction/src/AreaRestriction.min.js";a.defer=true;a.type="text/javascript";a.onload=function(){t()};a.onerror=e;document.head.appendChild(a)}))]}))}))};t.prototype.render=function(){var t=this;return h(Host,null,h("div",{id:"mapContainer",ref:function(e){if(e){t.mapRef=e}},style:{width:this.width,height:this.height}}))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();Map.style=mapCss;export{Map as taro_map_core};