amap-gps-71186947.js 9.4 KB

1
  1. import{m as b,d as y,i as P,n as k,o as C,g as h,M as z}from"./index-7ceda0c5.js";import{M as O}from"./index-f1fd22ef.js";const x={};var m={},T={get exports(){return m},set exports(t){m=t}};(function(t,M){(function(v,A){t.exports=A()})(b,function(){function v(n){var r=[];return n.AMapUI&&r.push(A(n.AMapUI)),n.Loca&&r.push(g(n.Loca)),Promise.all(r)}function A(n){return new Promise(function(r,o){var s=[];if(n.plugins)for(var a=0;a<n.plugins.length;a+=1)i.AMapUI.plugins.indexOf(n.plugins[a])==-1&&s.push(n.plugins[a]);if(u.AMapUI===e.failed)o("前次请求 AMapUI 失败");else if(u.AMapUI===e.notload){u.AMapUI=e.loading,i.AMapUI.version=n.version||i.AMapUI.version,a=i.AMapUI.version;var p=document.body||document.head,d=document.createElement("script");d.type="text/javascript",d.src="https://webapi.amap.com/ui/"+a+"/main.js",d.onerror=function(l){u.AMapUI=e.failed,o("请求 AMapUI 失败")},d.onload=function(){if(u.AMapUI=e.loaded,s.length)window.AMapUI.loadUI(s,function(){for(var l=0,w=s.length;l<w;l++){var I=s[l].split("/").slice(-1)[0];window.AMapUI[I]=arguments[l]}for(r();c.AMapUI.length;)c.AMapUI.splice(0,1)[0]()});else for(r();c.AMapUI.length;)c.AMapUI.splice(0,1)[0]()},p.appendChild(d)}else u.AMapUI===e.loaded?n.version&&n.version!==i.AMapUI.version?o("不允许多个版本 AMapUI 混用"):s.length?window.AMapUI.loadUI(s,function(){for(var l=0,w=s.length;l<w;l++){var I=s[l].split("/").slice(-1)[0];window.AMapUI[I]=arguments[l]}r()}):r():n.version&&n.version!==i.AMapUI.version?o("不允许多个版本 AMapUI 混用"):c.AMapUI.push(function(l){l?o(l):s.length?window.AMapUI.loadUI(s,function(){for(var w=0,I=s.length;w<I;w++){var U=s[w].split("/").slice(-1)[0];window.AMapUI[U]=arguments[w]}r()}):r()})})}function g(n){return new Promise(function(r,o){if(u.Loca===e.failed)o("前次请求 Loca 失败");else if(u.Loca===e.notload){u.Loca=e.loading,i.Loca.version=n.version||i.Loca.version;var s=i.Loca.version,a=i.AMap.version.startsWith("2"),p=s.startsWith("2");if(a&&!p||!a&&p)o("JSAPI 与 Loca 版本不对应!!");else{a=i.key,p=document.body||document.head;var d=document.createElement("script");d.type="text/javascript",d.src="https://webapi.amap.com/loca?v="+s+"&key="+a,d.onerror=function(l){u.Loca=e.failed,o("请求 AMapUI 失败")},d.onload=function(){for(u.Loca=e.loaded,r();c.Loca.length;)c.Loca.splice(0,1)[0]()},p.appendChild(d)}}else u.Loca===e.loaded?n.version&&n.version!==i.Loca.version?o("不允许多个版本 Loca 混用"):r():n.version&&n.version!==i.Loca.version?o("不允许多个版本 Loca 混用"):c.Loca.push(function(l){l?o(l):o()})})}if(!window)throw Error("AMap JSAPI can only be used in Browser.");var e;(function(n){n.notload="notload",n.loading="loading",n.loaded="loaded",n.failed="failed"})(e||(e={}));var i={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},u={AMap:e.notload,AMapUI:e.notload,Loca:e.notload},c={AMap:[],AMapUI:[],Loca:[]},f=[],L=function(n){typeof n=="function"&&(u.AMap===e.loaded?n(window.AMap):f.push(n))};return{load:function(n){return new Promise(function(r,o){if(u.AMap==e.failed)o("");else if(u.AMap==e.notload){var s=n.key,a=n.version,p=n.plugins;s?(window.AMap&&location.host!=="lbs.amap.com"&&o("禁止多种API加载方式混用"),i.key=s,i.AMap.version=a||i.AMap.version,i.AMap.plugins=p||i.AMap.plugins,u.AMap=e.loading,a=document.body||document.head,window.___onAPILoaded=function(l){if(delete window.___onAPILoaded,l)u.AMap=e.failed,o(l);else for(u.AMap=e.loaded,v(n).then(function(){r(window.AMap)}).catch(o);f.length;)f.splice(0,1)[0]()},p=document.createElement("script"),p.type="text/javascript",p.src="https://webapi.amap.com/maps?callback=___onAPILoaded&v="+i.AMap.version+"&key="+s+"&plugin="+i.AMap.plugins.join(","),p.onerror=function(l){u.AMap=e.failed,o(l)},a.appendChild(p)):o("请填写key")}else if(u.AMap==e.loaded)if(n.key&&n.key!==i.key)o("多个不一致的 key");else if(n.version&&n.version!==i.AMap.version)o("不允许多个版本 JSAPI 混用");else{if(s=[],n.plugins)for(a=0;a<n.plugins.length;a+=1)i.AMap.plugins.indexOf(n.plugins[a])==-1&&s.push(n.plugins[a]);s.length?window.AMap.plugin(s,function(){v(n).then(function(){r(window.AMap)}).catch(o)}):v(n).then(function(){r(window.AMap)}).catch(o)}else if(n.key&&n.key!==i.key)o("多个不一致的 key");else if(n.version&&n.version!==i.AMap.version)o("不允许多个版本 JSAPI 混用");else{var d=[];if(n.plugins)for(a=0;a<n.plugins.length;a+=1)i.AMap.plugins.indexOf(n.plugins[a])==-1&&d.push(n.plugins[a]);L(function(){d.length?window.AMap.plugin(d,function(){v(n).then(function(){r(window.AMap)}).catch(o)}):v(n).then(function(){r(window.AMap)}).catch(o)})}})},reset:function(){delete window.AMap,delete window.AMapUI,delete window.Loca,i={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},u={AMap:e.notload,AMapUI:e.notload,Loca:e.notload},c={AMap:[],AMapUI:[],Loca:[]}}}})})(T);const D=m,E="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAcCAMAAACnDzTfAAABHVBMVEUAAAADtKj///////////8Ktqv2/Pz////5/v3s+vnI7+z////c9fO+6+klvrSm5eFWzMX////////////////////////0/PwevLISuK7O8e7k9/Z11tC86+i46ueP3dlDx7/////////////////////////////////////////////////////////8/v7o+PczwrkwwbjH7uyB2dRYzcVhz8hRysNQysNHx8Ce4t5bzcaQ3tlp0cv///////////////////////////////////////////////////////8Asqf////1/Pvu+vnA7Oma4NspvrXp+Pff9fPa8/LG7eus5eJ21c9r0sxn0cpXzMU3wrkivLIWuK7c5d5VAAAATHRSTlMA/GsT1vr58Pn39/b29vbz8d2mPy8b+vf39/b09PPy8vLj2MWjkH9oUEU6JyAKBfv39fXz8/Py8vLy8fHv7+zRvbKrnJV8c19JNSoNw2x7SgAAAS1JREFUKM9tked2wjAMRh0IYe8NZVM2dO+9lz+ge/f9H6PEPsF2yP0l+x5LskQk7m87yTRx4K7phUm95bYZdwJAMVwOGIDXpah+HL5KhM7QqiUgMRIqXUMhRy1iBhLCNbDhoYI1A/O0N/DnqUwMXqshHdtUpYQrrlLwa+zm++3l/YlFe9C5cyHKLr4wY/LLuvWBJ13GEnPPMHlkcQE95i5wZB7/wJgyF0ZXeTeR3gWQVOp9mGrMm8kirfb5+Tqe/rCoivj8f1tUJYwW4bRR1BS1K+Yy0rEpK88qxJqSWFmXXBQNIrhEyCNNOtiX3LCOfUvlslAXnwrigCstgDOi0oYvwlwFNTex0eQld5DpETvDE5QpjRi4JosMjnGYD+GcONHNANAfiCOdePB0QAT/0uBtieUrtt8AAAAASUVORK5CYII=",N="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAcCAMAAACnDzTfAAABIFBMVEUAAAD/XFj/////////////+fn/////8/P/////////+Pj/ZGD/////cm//1dX/xcT/t7X/kY//////////////////////X1v/2tr/1NP/bWr/6ur/5+f/4N//+vr/enf/pqT/0tH/lJH/joz//////////////////////////////////////////////////Pz/9/f/ZmP/3t3/29r/rqz/8PD/mZb/iIX/hoP/wcD/hYL/npz/////////////////////////////////////////////////////////////////////////Wlb/////9PT/6ej/1tX/vbz/npz/dHH/8fD/2tn/ycj/pqT/ko//fXr/cGz/aGT/XFg2JTGLAAAAT3RSTlMA/NZqE/3796UE+vr29vPz8fF+QS8bC/v5+Pf29vb19fTy8vLx7+Pc2cWQbUg6JyD29vX08/Py8vLy8fHv7N7RvbKroZyVc2dfUVA9NSoSehyD/QAAATZJREFUKM9tked6gkAQRRcUxF4Q7BoTa2zpvffOVWN6ef+3SBiCLIbza3bPt7t3dphD8L57o2rMg7vTOkxaKf+MeVAAbOSq2TJQ87lU/wBSImr8ImzHACXoKK2BUt6wSYagOK6NtYzhUAlheu0VAmGDJ4maHUjEpuEmhpSl0ggItPP+Mnp9omoLouU6iNPGBACGn5R2Cdali5gj9wyTR6pL6JE7w565/AIxJpdDlz/3PeTOZXFLzvf33pupJAojlKG5c05G0viDql00p/3Ne/VHXKIguNQC6n57qCLWeRUOoMNsVMgVzsXR5oZ0jmKG++lInznoLezYKr8M9+DTETursIpj5sYHKUougQZl5FFQCJvxZbnHZtEPURWMaAgX7D+DfSRWijhhXqgyAFFnnlw3I0cDbv0DsZxwvZH42EwAAAAASUVORK5CYII=",S=y({name:"amap-gps",setup(){const t=P({attendance_range:1e3,lnglat:[114.343011,30.55499],address:"",signInLongitudeLatitude:[114.333488,30.547087],signOutLongitudeLatitude:[114.34424,30.556584],signInMark:null,signOutMark:null,addressMark:null}),M=k(null),v=()=>{D.load({key:"501e5bfaf7cfc5d3d53a9a4d9466d8b9",version:"2.0",plugins:["AMap.ToolBar","AMap.Driving"],AMapUI:{version:"1.1",plugins:[]},Loca:{version:"2.0.0"}}).then(A=>{let g=null;M.value=new A.Map("gpsContainer",{resizeEnable:!0,zoom:16,zooms:[2,22]}),A.plugin(["AMap.Geocoder","AMap.GeometryUtil"],function(){if(t.lnglat&&t.lnglat.length>0){M.value.setCenter(t.lnglat,!0),i(),e(t.lnglat,"教学点","addressMark");const c=new A.Circle({center:new A.LngLat(...t.lnglat),radius:t.attendance_range,strokeColor:"#00B2A7",strokeOpacity:1,strokeWeight:2,fillColor:"#A3FFF9",fillOpacity:.14});M.value.add(c),M.value.setFitView()}t.signInLongitudeLatitude&&t.signInLongitudeLatitude.length>0&&(console.log("signInLongitudeLatitude",t.signInLongitudeLatitude),e(t.signInLongitudeLatitude,"签到点","signInMark")),t.signOutLongitudeLatitude&&t.signOutLongitudeLatitude.length>0&&(console.log("signOutLongitudeLatitude",t.signOutLongitudeLatitude),e(t.signOutLongitudeLatitude,"签退点","signOutMark")),console.log(t,"selectMapAddress"),t.signInMark&&t.addressMark&&(u(t.addressMark,t.signInMark),console.log("连线 设置签到点与教学点的距离")),t.signOutMark&&t.addressMark&&(u(t.addressMark,t.signOutMark),console.log("连线 设置签退点与教学点的距离"))});function e(c,f,L){const n=new A.Icon({size:[27,28],image:E,imageSize:[27,28]});g=new A.Marker({icon:n,anchor:"bottom-center",position:new A.LngLat(...c),title:f}),g.setLabel({content:`${f}`,direction:"top",offset:[0,-2]}),t[L]=g,g.setMap(M),M.value.add(g)}function i(){g&&(g.setMap(null),g=null)}function u(c,f){console.log(f,"m1 m2");const L=c.getPosition(),n=f.getPosition(),r=L.divideBy(2).add(n.divideBy(2)),o=Math.round(L.distance(n)),s=[L,n],a=o>t.attendance_range?"#FF5A56":"#01C1B5";o>t.attendance_range&&(f.dom.classList.add("myClassM2"),f.setIcon(N));const p=new A.Polyline({strokeColor:a,strokeWeight:2,isOutline:!0,outlineColor:a});p.setMap(M.value),p.setPath(s);const d=new A.Text({text:o+"M",style:{"font-size":"12px",color:"#fff",border:"none",backgroundColor:a}});d.setPosition(r),d.setMap(M.value)}}).catch(()=>{})};return C(()=>{v()}),()=>h("div",{class:x["amap-gps"]},[h(O,{position:"top"},{default:()=>[h(z,null,null)]}),h("div",{id:"gpsContainer",style:{width:"100%",height:"calc(100vh - var(--header-height))",position:"relative"}},null)])}});export{S as default};