1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| <template>
| <BaseMap></BaseMap>
| </template>
| <script setup>
| import { watch } from 'vue';
| import { map, onMapMounted } from '@/utils/map/index';
| import marks from '@/utils/map/marks';
| import { sceneIcon } from '@/assets/scene-icon';
| const props = defineProps({
| // 场景点位信息
| data: Array
| });
|
| var markViewList = [];
|
| watch(
| () => props.data,
| (nV, oV) => {
| if (nV != oV) {
| drawSceneMarks();
| }
| },
| { immediate: true }
| );
|
| function drawSceneMarks() {
| onMapMounted(() => {
| markViewList = [];
| props.data.forEach((d) => {
| const mark = marks.createMarker({
| position: [d.longitude, d.latitude],
| icon: sceneIcon(d.typeid),
| label: d.name,
| extData: d.guid
| });
| markViewList.push(mark);
| });
| map.setFitView(markViewList);
| });
| }
| </script>
| <style scoped></style>
|
|