更换高德

lijinlong
吕天方 1 year ago
parent 00fac0b4a9
commit 5718c6bab2

@ -0,0 +1,40 @@
.testMarker {
display: flex;
flex-direction: column;
align-items: center;
}
.markerStyles {
display: flex;
flex-direction: column;
align-items: center;
.marker-Text {
min-width: 70px;
height: 100%;
text-align: center;
padding: 5px;
font-size: 14px;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
line-height: 20px;
background-image: url('../images/personInfo.png');
background-size: 100% 100%;
margin-bottom: 5px;
}
img {
width: 54px;
}
}
.amap-info-content {
background-color: transparent;
padding: 0;
.amap-info-close {
display: none;
}
}
.amap-info-sharp {
display: none;
}
.amap-info-contentContainer .bottom-center {
padding-bottom: 0;
}

@ -6,6 +6,7 @@
@import './btn.scss';
@import '../font/font.css';
@import './leaflet.scss';
@import './amap.scss';
body {
height: 100%;

@ -4,7 +4,7 @@
* @Author: JC9527
* @Date: 2023-08-14 13:58:57
* @LastEditors: JC9527
* @LastEditTime: 2023-12-18 10:40:02
* @LastEditTime: 2023-12-18 13:30:31
*/
import Vue from 'vue'
@ -26,7 +26,6 @@ import "@/utils/rem.js"; //计算rem基准
import './assets/icons' // icon
import './permission' // permission control
import 'leaflet/dist/leaflet.css' // leaflet样式
import '@vuemap/vue-amap/dist/style.css' // 高德vue-amap样式
import moment from 'moment'
@ -83,8 +82,8 @@ import VueAMap from '@vuemap/vue-amap';
import '@vuemap/vue-amap/dist/style.css'
Vue.use(VueAMap);
VueAMap.initAMapApiLoader({
key: 'b3c7a7ce466721c3be1d4ea539f82421',
securityJsCode: 'ec84db9c5dfc3d304ca9219e764ffeb8',
key: 'b3c7a7ce466721c3be1d4ea539f82421', // 高德key
securityJsCode: 'ec84db9c5dfc3d304ca9219e764ffeb8', // 安全密钥
});
//如果需要使用自定义的threeJS相关的组件需要格外引入库中的three。该包只提供常用的模型加载灯光HDR等相关能力更细致的控制需要在模型初始化后获取对象进行操作

@ -72,7 +72,7 @@ service.interceptors.request.use(config => {
// 响应拦截器
service.interceptors.response.use(res => {
console.log(res,'resres');
// console.log(res,'resres');
// 未设置状态码则默认成功状态
const code = res.data.code || 200;
// 获取错误信息

@ -23,7 +23,51 @@
view-mode="3D"
:extra-options="{ vectorMapForeign: 'style_zh_cn' }"
class="amap-demo"
/>
>
<el-amap-layer-satellite :visible="visible"></el-amap-layer-satellite>
<!-- 江宁GeoJson文件 -->
<el-amap-geojson @init="initLocation" :geo="jiangninggeo" ref="geojson" :polygon-options="polygonOptions" :visible="true" :draggable="draggable"></el-amap-geojson>
<!-- 测试点位 -->
<el-amap-marker :position="componentMarker.position" :visible="componentMarker.visible" :draggable="componentMarker.draggable">
<div style="padding: 5px 10px;color: #fff; display:flex;" class="testMarker">
<div>{{componentMarker.text}}</div>
<img src="../../../assets/images/3.png" alt="" style="width: 40px">
</div>
</el-amap-marker>
<!-- marker标记点 -->
<el-amap-marker v-for="(marker, index) in markers" :key="index" :position="marker.position" :draggable="false" @click="(e)=> clickMarker(marker,e)">
<div class="markerStyles">
<div class="marker-Text">{{marker.text}}</div>
<img :src="marker.imgSrc" alt="">
</div>
</el-amap-marker>
<!-- 人员信息弹框 -->
<el-amap-info-window
v-if="personInfo.visible"
:offset="[27,0]"
:position="personInfo.position"
:visible.sync="personInfo.visible">
<div class="person-popup">
<div class="person-title">
<div class="title">人员信息</div>
<div class="mask" @click="markersClosePopup"></div>
</div>
<div class="person-main">
<div class="person-info">
<div class="dot"></div>
<div class="name">李飞</div>
<div class="position">执法1队队员</div>
</div>
<div class="btns">
<div id='personClick'>行程轨迹</div>
<div>附近队员</div>
<div>位置分享</div>
<div>任务派发</div>
</div>
</div>
</div>
</el-amap-info-window>
</el-amap>
<div class="left-bg">
<div class="bgt"></div>
@ -165,8 +209,8 @@
</div>
</template>
<script>
import L from "leaflet";
import VueAMap from '@vuemap/vue-amap';
// import L from "leaflet";
//
// import "proj4";
// import "proj4leaflet";
@ -223,9 +267,33 @@ export default {
},
data() {
return {
zoom: 16,
center: [121.59996, 31.197646],
zoom: 12,
center: [118.835418, 31.863971], // 121.59996, 31.197646
map: null,
// GeoJson
polygonOptions: {
strokeColor: '#00C5EC', // 线使16#00D3FC
fillColor: 'rgba(64,175,255,0.4)' // 使16#00B2D5
},
draggable:false, //
jiangninggeo:jiangninggeo,
componentMarker: {
position: [118.79808425903322, 31.96840071263104],
visible: true,
draggable: false,
text: '1'
},
//
markers:[],
//
personInfo: {
position: [],
visible: false,
},
globalMap: null,
basemap: null,
townCenter: [31.863971, 118.835418],
@ -265,15 +333,22 @@ export default {
weilanData: null, //
luduanData: null, //
personLine: [], // 线
visible: false, //
};
},
methods: {
init(o) {
this.map = o;
init(map) {
this.map = map;
// o.setMapStyle('amap://styles/darkblue')
o.setMapStyle("amap://styles/d02b66b0a7f190d5a1556a3f59c86518");
map.setMapStyle("amap://styles/d02b66b0a7f190d5a1556a3f59c86518");
// console.log(o.getCenter())
// console.log(this.$refs.map.$$getInstance())
// console.log(this.$refs.map.$$getInstance(),'TTTTTTT')
},
initLocation(map){
//
const mapInstance = this.$refs.map.$$getInstance();
// setFitView GeoJSON
mapInstance.setFitView();
},
initMap() {
this.globalMap = L.map("showMap", {
@ -590,6 +665,54 @@ export default {
this.addMark(obj);
});
},
//
getMarkers(id){
let ico1 = require("../../../assets/images/icon/icon1.png");
let ico2 = require("../../../assets/images/icon/icon2.png");
let ico3 = require("../../../assets/images/icon/icon3.png");
let ico4 = require("../../../assets/images/icon/icon4.png");
let ico5 = require("../../../assets/images/icon/icon5.png");
this.markers = [];
if(id == 1) {
getDeviceList({ imei: "861316060217211" }).then((res) => {
console.log(res,'点位信息');
if (res.data.obj) {
res.data.obj.forEach((element) => {
if (element.status == 0 || element.status == 1) {
this.personLine.push(element);
let obj = {position:[]};
obj.position[0] = element.longitude;
obj.position[1] = element.latitude;
obj.text = element.userName;
obj.imgSrc = ico1;
obj.userId = element.userId;
this.markers.push(obj)
}
})
} else {
this.$modal.msgError("执法人员" + res.data.msg);
}
})
} else if(id == 2) {
point.forEach((element)=>{
})
}
},
//
clickMarker(marker,e){
console.log(marker,e);
if (this.actionMap == 1) {
this.personInfo.position = marker.position;
this.personInfo.visible = true;
}
},
//
markersClosePopup(){
if (this.actionMap == 1) {
this.personInfo.visible = false;
}
},
getIcons(name, src) {
let icon = L.divIcon({
className: "divIcon-marker",
@ -1160,8 +1283,16 @@ export default {
});
});
},
// /
actionBtn(id) {
this.action = id;
if(id == 1) {
this.visible = false
this.map.setMapStyle("amap://styles/d02b66b0a7f190d5a1556a3f59c86518")
} else {
this.visible = true;
this.map.setMapStyle("amap://styles/whitesmoke")
}
// if(id == 1) {
// this.globalMap.removeLayer(this.satelliteMap);
// this.globalMap.removeLayer(this.satelliteNoteMap);
@ -1172,12 +1303,6 @@ export default {
// this.globalMap.addLayer(this.satelliteNoteMap);
// }
// console.log(id)
// this.$emit('actionBtn',id);
// if(id == 1){
// this.$refs.personageTrack.open();
// } else {
// this.$refs.crewAssign.open();
// }
},
//
search() {},
@ -1215,12 +1340,14 @@ export default {
// return;
// }
},
//
leftAnimation() {
setTimeout(() => {
this.leftAnimationData = !this.leftAnimationData;
}, 200);
this.$emit("leftAnimationAction");
},
//
rightAnimation() {
setTimeout(() => {
this.rightAnimationData = !this.rightAnimationData;
@ -1230,7 +1357,7 @@ export default {
},
mounted() {
this.$nextTick(() => {
// this.initMap();
this.getMarkers(1)
});
},
};

Loading…
Cancel
Save