amap-gps-68956a24.js 7.6 KB

1
  1. import{X as y,d as k,i as x,Y as P,o as _,g as m,M as O}from"./index-5748179b.js";import{M as C}from"./index-50b8deca.js";const j="_info_1olg7_1",U={info:j};var L={},z={get exports(){return L},set exports(l){L=l}};(function(l,g){(function(w,c){l.exports=c()})(y,function(){function w(n){var s=[];return n.AMapUI&&s.push(c(n.AMapUI)),n.Loca&&s.push(A(n.Loca)),Promise.all(s)}function c(n){return new Promise(function(s,e){var o=[];if(n.plugins)for(var i=0;i<n.plugins.length;i+=1)a.AMapUI.plugins.indexOf(n.plugins[i])==-1&&o.push(n.plugins[i]);if(d.AMapUI===t.failed)e("前次请求 AMapUI 失败");else if(d.AMapUI===t.notload){d.AMapUI=t.loading,a.AMapUI.version=n.version||a.AMapUI.version,i=a.AMapUI.version;var r=document.body||document.head,p=document.createElement("script");p.type="text/javascript",p.src="https://webapi.amap.com/ui/"+i+"/main.js",p.onerror=function(u){d.AMapUI=t.failed,e("请求 AMapUI 失败")},p.onload=function(){if(d.AMapUI=t.loaded,o.length)window.AMapUI.loadUI(o,function(){for(var u=0,f=o.length;u<f;u++){var I=o[u].split("/").slice(-1)[0];window.AMapUI[I]=arguments[u]}for(s();M.AMapUI.length;)M.AMapUI.splice(0,1)[0]()});else for(s();M.AMapUI.length;)M.AMapUI.splice(0,1)[0]()},r.appendChild(p)}else d.AMapUI===t.loaded?n.version&&n.version!==a.AMapUI.version?e("不允许多个版本 AMapUI 混用"):o.length?window.AMapUI.loadUI(o,function(){for(var u=0,f=o.length;u<f;u++){var I=o[u].split("/").slice(-1)[0];window.AMapUI[I]=arguments[u]}s()}):s():n.version&&n.version!==a.AMapUI.version?e("不允许多个版本 AMapUI 混用"):M.AMapUI.push(function(u){u?e(u):o.length?window.AMapUI.loadUI(o,function(){for(var f=0,I=o.length;f<I;f++){var b=o[f].split("/").slice(-1)[0];window.AMapUI[b]=arguments[f]}s()}):s()})})}function A(n){return new Promise(function(s,e){if(d.Loca===t.failed)e("前次请求 Loca 失败");else if(d.Loca===t.notload){d.Loca=t.loading,a.Loca.version=n.version||a.Loca.version;var o=a.Loca.version,i=a.AMap.version.startsWith("2"),r=o.startsWith("2");if(i&&!r||!i&&r)e("JSAPI 与 Loca 版本不对应!!");else{i=a.key,r=document.body||document.head;var p=document.createElement("script");p.type="text/javascript",p.src="https://webapi.amap.com/loca?v="+o+"&key="+i,p.onerror=function(u){d.Loca=t.failed,e("请求 AMapUI 失败")},p.onload=function(){for(d.Loca=t.loaded,s();M.Loca.length;)M.Loca.splice(0,1)[0]()},r.appendChild(p)}}else d.Loca===t.loaded?n.version&&n.version!==a.Loca.version?e("不允许多个版本 Loca 混用"):s():n.version&&n.version!==a.Loca.version?e("不允许多个版本 Loca 混用"):M.Loca.push(function(u){u?e(u):e()})})}if(!window)throw Error("AMap JSAPI can only be used in Browser.");var t;(function(n){n.notload="notload",n.loading="loading",n.loaded="loaded",n.failed="failed"})(t||(t={}));var a={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},d={AMap:t.notload,AMapUI:t.notload,Loca:t.notload},M={AMap:[],AMapUI:[],Loca:[]},v=[],h=function(n){typeof n=="function"&&(d.AMap===t.loaded?n(window.AMap):v.push(n))};return{load:function(n){return new Promise(function(s,e){if(d.AMap==t.failed)e("");else if(d.AMap==t.notload){var o=n.key,i=n.version,r=n.plugins;o?(window.AMap&&location.host!=="lbs.amap.com"&&e("禁止多种API加载方式混用"),a.key=o,a.AMap.version=i||a.AMap.version,a.AMap.plugins=r||a.AMap.plugins,d.AMap=t.loading,i=document.body||document.head,window.___onAPILoaded=function(u){if(delete window.___onAPILoaded,u)d.AMap=t.failed,e(u);else for(d.AMap=t.loaded,w(n).then(function(){s(window.AMap)}).catch(e);v.length;)v.splice(0,1)[0]()},r=document.createElement("script"),r.type="text/javascript",r.src="https://webapi.amap.com/maps?callback=___onAPILoaded&v="+a.AMap.version+"&key="+o+"&plugin="+a.AMap.plugins.join(","),r.onerror=function(u){d.AMap=t.failed,e(u)},i.appendChild(r)):e("请填写key")}else if(d.AMap==t.loaded)if(n.key&&n.key!==a.key)e("多个不一致的 key");else if(n.version&&n.version!==a.AMap.version)e("不允许多个版本 JSAPI 混用");else{if(o=[],n.plugins)for(i=0;i<n.plugins.length;i+=1)a.AMap.plugins.indexOf(n.plugins[i])==-1&&o.push(n.plugins[i]);o.length?window.AMap.plugin(o,function(){w(n).then(function(){s(window.AMap)}).catch(e)}):w(n).then(function(){s(window.AMap)}).catch(e)}else if(n.key&&n.key!==a.key)e("多个不一致的 key");else if(n.version&&n.version!==a.AMap.version)e("不允许多个版本 JSAPI 混用");else{var p=[];if(n.plugins)for(i=0;i<n.plugins.length;i+=1)a.AMap.plugins.indexOf(n.plugins[i])==-1&&p.push(n.plugins[i]);h(function(){p.length?window.AMap.plugin(p,function(){w(n).then(function(){s(window.AMap)}).catch(e)}):w(n).then(function(){s(window.AMap)}).catch(e)})}})},reset:function(){delete window.AMap,delete window.AMapUI,delete window.Loca,a={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},d={AMap:t.notload,AMapUI:t.notload,Loca:t.notload},M={AMap:[],AMapUI:[],Loca:[]}}}})})(z);const B=L,T=k({name:"amap-gps",setup(){const l=x({attendance_range:1e3,lnglat:[114.343011,30.55499],address:"",signInLongitudeLatitude:[114.341116,30.552401],signOutLongitudeLatitude:[114.34424,30.556584],signInMark:null,signOutMark:null,addressMark:null}),g=P(null),w=()=>{B.load({key:"501e5bfaf7cfc5d3d53a9a4d9466d8b9",version:"2.0",plugins:["AMap.ToolBar","AMap.Driving"],AMapUI:{version:"1.1",plugins:[]},Loca:{version:"2.0.0"}}).then(c=>{let A=null;g.value=new c.Map("gpsContainer",{resizeEnable:!0,zoom:16,zooms:[2,22],center:[114.34371,30.55939]}),c.plugin(["AMap.Geocoder","AMap.GeometryUtil"],function(){if(l.lnglat&&l.lnglat.length>0){g.value.setCenter(l.lnglat,!0),a(),t(l.lnglat,"教学点","addressMark");const v=new c.Circle({center:new c.LngLat(...l.lnglat),radius:l.attendance_range,strokeColor:"#00B2A7",strokeOpacity:1,strokeWeight:2,fillColor:"#A3FFF9",fillOpacity:.14});g.value.add(v),g.value.setFitView()}l.signOutLongitudeLatitude&&l.signOutLongitudeLatitude.length>0&&(console.log("signOutLongitudeLatitude",l.signOutLongitudeLatitude),t(l.signOutLongitudeLatitude,"签退点","signOutMark")),console.log(l,"selectMapAddress"),l.signInMark&&l.addressMark&&(d(l.addressMark,l.signInMark,"top"),console.log("连线 设置签到点与教学点的距离")),l.signOutMark&&l.addressMark&&(d(l.addressMark,l.signOutMark,"bottom"),console.log("连线 设置签退点与教学点的距离"))});function t(v,h,n){new c.Icon({size:[25,34],image:"https://daya.ks3-cn-beijing.ksyun.com/202211/TO13VtW.png",imageSize:[25,34]}),A=new c.Marker({position:new c.LngLat(...v),title:h}),A.setLabel({content:`<div class='${U.info}' >${h}</div>`,direction:"top"}),l[n]=A,A.setMap(g),g.value.add(A)}function a(){A&&(A.setMap(null),A=null)}function d(v,h,n){const s=new c.Polyline({strokeColor:"#01C1B5",strokeWeight:3,isOutline:!1,outlineColor:"#01C1B5"});s.setMap(g.value);const e=v.getPosition(),o=h.getPosition(),i=e.divideBy(2).add(o.divideBy(2)),r=Math.round(e.distance(o)),p=[e,o];s.setPath(p);const u=M([e.lng,o.lng],[o.lng,e.lng]);if(console.log(u,"aaaaaaa"),n=="top"){console.log(e,o,i,r,"computed",n);const f=new c.Text({text:r+"M",style:{"font-size":"12px"}});f.setPosition(i),f.setMap(g.value)}else{const f=new c.Text({text:r+"M",angle:u,style:{"font-size":"12px"}});f.setPosition(i),f.setMap(g.value)}}function M(v,h){const n=g.value.lngLatToContainer(v),s=g.value.lngLatToContainer(h),e=s.x-n.x,o=s.y-n.y;return console.log(360*Math.atan2(o,e)/(2*Math.PI)),360*Math.atan2(o,e)/(2*Math.PI)-45}}).catch(()=>{})};return _(()=>{w()}),()=>m("div",{class:U["amap-gps"]},[m(C,{position:"top"},{default:()=>[m(O,null,null)]}),m("div",{id:"gpsContainer",style:{width:"100%",height:"calc(100vh - var(--header-height))",position:"relative"}},null)])}});export{T as default};