|
@ -251,6 +251,7 @@ import { Loading } from "element-ui"; // 引入Loading服务 |
|
|
import { requestPost } from "@/js/dai/request"; |
|
|
import { requestPost } from "@/js/dai/request"; |
|
|
import formVltHelper from "dai-js/tools/formVltHelper"; |
|
|
import formVltHelper from "dai-js/tools/formVltHelper"; |
|
|
import nextTick from "dai-js/tools/nextTick"; |
|
|
import nextTick from "dai-js/tools/nextTick"; |
|
|
|
|
|
import daiMap from "@/utils/dai-map"; |
|
|
|
|
|
|
|
|
var map; |
|
|
var map; |
|
|
var search; |
|
|
var search; |
|
@ -390,100 +391,51 @@ export default { |
|
|
organizationPersonnel.splice(index, 1); |
|
|
organizationPersonnel.splice(index, 1); |
|
|
this.dataForm.organizationPersonnel = organizationPersonnel; |
|
|
this.dataForm.organizationPersonnel = organizationPersonnel; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 地图初始化函数,本例取名为init,开发者可根据实际情况定义 |
|
|
// 地图初始化函数,本例取名为init,开发者可根据实际情况定义 |
|
|
initMap() { |
|
|
initMap() { |
|
|
let { latitude, longitude } = this.$store.state.user; |
|
|
let { latitude, longitude } = this.$store.state.user; |
|
|
if (!latitude || latitude == "" || latitude == "0") { |
|
|
|
|
|
latitude = 39.9088810666821; |
|
|
map = new daiMap( |
|
|
longitude = 116.39743841556731; |
|
|
document.getElementById("app"), |
|
|
} |
|
|
{ latitude, longitude }, |
|
|
// 定义地图中心点坐标 |
|
|
{ |
|
|
var center = new window.TMap.LatLng(latitude, longitude); |
|
|
|
|
|
// 定义map变量,调用 TMap.Map() 构造函数创建地图 |
|
|
|
|
|
map = new window.TMap.Map(document.getElementById("app"), { |
|
|
|
|
|
center: center, // 设置地图中心点坐标 |
|
|
|
|
|
zoom: 16.2, // 设置地图缩放级别 |
|
|
zoom: 16.2, // 设置地图缩放级别 |
|
|
pitch: 43.5, // 设置俯仰角 |
|
|
pitch: 43.5, // 设置俯仰角 |
|
|
rotation: 45, // 设置地图旋转角度 |
|
|
rotation: 45, // 设置地图旋转角度 |
|
|
}); |
|
|
} |
|
|
|
|
|
); |
|
|
search = new window.TMap.service.Search({ pageSize: 10 }); |
|
|
|
|
|
// 新建一个地点搜索类 |
|
|
|
|
|
markers = new TMap.MultiMarker({ |
|
|
|
|
|
map: map, |
|
|
|
|
|
geometries: [], |
|
|
|
|
|
}); |
|
|
|
|
|
infoWindowList = Array(10); |
|
|
|
|
|
|
|
|
|
|
|
geocoder = new TMap.service.Geocoder(); // 新建一个正逆地址解析类 |
|
|
|
|
|
|
|
|
|
|
|
// 监听地图平移结束 |
|
|
// 监听地图平移结束 |
|
|
map.on("panend", (e) => { |
|
|
map.on("moveend", (e) => { |
|
|
this.handleMoveCenter(e); |
|
|
this.handleMoveCenter(e); |
|
|
}); |
|
|
}); |
|
|
// this.handleMoveCenter(); |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
setMarker(lat, lng) { |
|
|
async handleSearchMap() { |
|
|
markers.setGeometries([]); |
|
|
const { msg, data } = await map.searchNearby(this.dataForm.address); |
|
|
markers.add([ |
|
|
if (msg == "success") { |
|
|
{ |
|
|
const { lat, lng } = data; |
|
|
id: "4", |
|
|
map.setCenter(lat, lng); |
|
|
styleId: "marker", |
|
|
map.setMarker(lat, lng); |
|
|
position: new TMap.LatLng(lat, lng), |
|
|
|
|
|
properties: { |
|
|
|
|
|
title: "marker4", |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
]); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
handleSearchMap() { |
|
|
|
|
|
infoWindowList.forEach((infoWindow) => { |
|
|
|
|
|
infoWindow.close(); |
|
|
|
|
|
}); |
|
|
|
|
|
infoWindowList.length = 0; |
|
|
|
|
|
markers.setGeometries([]); |
|
|
|
|
|
// 在地图显示范围内以给定的关键字搜索地点 |
|
|
|
|
|
search |
|
|
|
|
|
.searchNearby({ |
|
|
|
|
|
keyword: this.dataForm.address, |
|
|
|
|
|
radius: 1000, |
|
|
|
|
|
autoExtend: true, |
|
|
|
|
|
center: map.getCenter(), |
|
|
|
|
|
}) |
|
|
|
|
|
.then((result) => { |
|
|
|
|
|
let { data } = result; |
|
|
|
|
|
if (Array.isArray(data) && data.length > 0) { |
|
|
|
|
|
const { |
|
|
|
|
|
location: { lat, lng }, |
|
|
|
|
|
} = data[0]; |
|
|
|
|
|
map.setCenter(new TMap.LatLng(lat, lng)); |
|
|
|
|
|
this.setMarker(lat, lng); |
|
|
|
|
|
this.dataForm.latitude = lat; |
|
|
this.dataForm.latitude = lat; |
|
|
this.dataForm.longitude = lng; |
|
|
this.dataForm.longitude = lng; |
|
|
} else { |
|
|
} else { |
|
|
this.$message.error("未检索到相关位置坐标"); |
|
|
this.$message.error("未检索到相关位置坐标"); |
|
|
} |
|
|
} |
|
|
}); |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleMoveCenter(e) { |
|
|
async handleMoveCenter(e) { |
|
|
console.log(e); |
|
|
console.log("handleMoveCenter", e); |
|
|
//修改地图中心点 |
|
|
//修改地图中心点 |
|
|
const center = map.getCenter(); |
|
|
const { lat, lng } = map.getCenter(); |
|
|
const lat = center.getLat(); |
|
|
|
|
|
const lng = center.getLng(); |
|
|
|
|
|
this.dataForm.latitude = lat; |
|
|
this.dataForm.latitude = lat; |
|
|
this.dataForm.longitude = lng; |
|
|
this.dataForm.longitude = lng; |
|
|
this.setMarker(lat, lng); |
|
|
map.setMarker(lat, lng); |
|
|
|
|
|
|
|
|
if (e && e.originalEvent) { |
|
|
let { msg, data } = await map.getAddress(lat, lng); |
|
|
geocoder |
|
|
if (msg == "success") { |
|
|
.getAddress({ location: new TMap.LatLng(lat, lng) }) // 将给定的坐标位置转换为地址 |
|
|
this.dataForm.address = data.address; |
|
|
.then((result) => { |
|
|
|
|
|
this.dataForm.address = result.result.address; |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
@ -498,7 +450,7 @@ export default { |
|
|
|
|
|
|
|
|
await nextTick(800); |
|
|
await nextTick(800); |
|
|
if (map) { |
|
|
if (map) { |
|
|
map.setCenter(new TMap.LatLng(row.latitude, row.longitude)); |
|
|
map.setCenter(row.latitude, row.longitude); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|