fix
This commit is contained in:
@ -29,6 +29,19 @@ export const loadAMap = async (plugins) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getGPSPosition = (options) =>
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
|
navigator.geolocation.getCurrentPosition(
|
||||||
|
(result) => {
|
||||||
|
resolve(result);
|
||||||
|
},
|
||||||
|
(error) => {
|
||||||
|
reject(error);
|
||||||
|
},
|
||||||
|
options
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
export const searchPlace = ({ AMap, map, searchPlugin, keyword, events }) => {
|
export const searchPlace = ({ AMap, map, searchPlugin, keyword, events }) => {
|
||||||
if (events.beforeSearch) {
|
if (events.beforeSearch) {
|
||||||
events.beforeSearch();
|
events.beforeSearch();
|
||||||
|
@ -254,13 +254,14 @@
|
|||||||
import tab from "@/plugins/tab";
|
import tab from "@/plugins/tab";
|
||||||
import { onMounted, watch } from "vue";
|
import { onMounted, watch } from "vue";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { loadAMap } from "@/utils/map";
|
import { getGPSPosition, loadAMap } from "@/utils/map";
|
||||||
import { ElMessage, ElMessageBox, ElOption, ElSelect } from "element-plus";
|
import { ElMessage, ElMessageBox, ElOption, ElSelect } from "element-plus";
|
||||||
import endPng from "@/assets/images/end.png";
|
import endPng from "@/assets/images/end.png";
|
||||||
import RouteStepList from "./RouteStepList.vue";
|
import RouteStepList from "./RouteStepList.vue";
|
||||||
import startPng from "@/assets/images/start.png";
|
import startPng from "@/assets/images/start.png";
|
||||||
import markBsPng from "@/assets/images/mark_bs.png";
|
import markBsPng from "@/assets/images/mark_bs.png";
|
||||||
import { addLine, getLine, updateLine } from "@/api/line/line";
|
import { addLine, getLine, updateLine } from "@/api/line/line";
|
||||||
|
import { resolve } from "path";
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const AMap = shallowRef(null);
|
const AMap = shallowRef(null);
|
||||||
@ -742,11 +743,13 @@ onMounted(async () => {
|
|||||||
"AMap.AutoComplete",
|
"AMap.AutoComplete",
|
||||||
"AMap.Geocoder",
|
"AMap.Geocoder",
|
||||||
// "AMap.TruckDriving",
|
// "AMap.TruckDriving",
|
||||||
]).then((_AMap) => {
|
]).then(async (_AMap) => {
|
||||||
AMap.value = _AMap;
|
AMap.value = _AMap;
|
||||||
|
|
||||||
map.value = new AMap.value.Map("map-container", {
|
map.value = new AMap.value.Map("map-container", {
|
||||||
zoom: 16, // 缩放级别
|
zoom: 16, // 缩放级别
|
||||||
center: [117.290345, 31.797813], // 中心点
|
center: [117.290345, 31.797813], // 中心点
|
||||||
|
// center,
|
||||||
// city: "合肥",
|
// city: "合肥",
|
||||||
});
|
});
|
||||||
window.mapinstance = map.value;
|
window.mapinstance = map.value;
|
||||||
|
@ -185,8 +185,17 @@ const searchPoint = (val /** 搜索建议选项 */, type) => {
|
|||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
marker.on("mouseover", () => {});
|
marker.on("mouseover", (ev) => {
|
||||||
marker.on("click", handleMapClick);
|
resultInfoWindow.value.setContent(`
|
||||||
|
<div>
|
||||||
|
${ev.target.getExtData().name}</div>
|
||||||
|
`);
|
||||||
|
resultInfoWindow.value.open(map.value, [
|
||||||
|
ev.lnglat.lng,
|
||||||
|
ev.lnglat.lat,
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
marker.on("click", handleResultClick);
|
||||||
marker.on("mouseout", (ev) => {
|
marker.on("mouseout", (ev) => {
|
||||||
resultInfoWindow.value.close();
|
resultInfoWindow.value.close();
|
||||||
});
|
});
|
||||||
@ -197,6 +206,21 @@ const searchPoint = (val /** 搜索建议选项 */, type) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 搜索结果点击
|
||||||
|
const handleResultClick = async (ev) => {
|
||||||
|
const lnglat = ev.target.getExtData()?.location;
|
||||||
|
if (!lnglat) return ElMessage.error("获取经纬度失败");
|
||||||
|
let address;
|
||||||
|
try {
|
||||||
|
address = ev.target.getExtData()?.name ?? (await regeoCode(lnglat));
|
||||||
|
} catch (error) {
|
||||||
|
address = `${lnglat.lng},${lnglat.lat}`;
|
||||||
|
}
|
||||||
|
open.value = true;
|
||||||
|
form.value.coordinate = `${lnglat.lng},${lnglat.lat}`;
|
||||||
|
form.value.address = address;
|
||||||
|
};
|
||||||
|
|
||||||
function back() {
|
function back() {
|
||||||
reset();
|
reset();
|
||||||
tab.closeOpenPage({ path: "/basic/site" });
|
tab.closeOpenPage({ path: "/basic/site" });
|
||||||
|
Reference in New Issue
Block a user