| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <LayerControl v-if="olMap" :olMap="olMap" class="absolute top-3 left-3 z-10" /> |
| | | <!-- <LayerControl v-if="olMap" :olMap="olMap" class="absolute top-3 left-3 z-10" /> --> |
| | | |
| | | <!-- <PropertyPanel class="absolute top-14 left-10 z-14"></PropertyPanel> --> |
| | | <PanelTool |
| | |
| | | :isFullscreen="isFullscreen" |
| | | @toggleFullScreen="toggleFullScreen" |
| | | ></PanelTool> |
| | | <!-- <el-button class="absolute top-3 right-4" @click="changeTheme" type="primary">切换主题</el-button> --> |
| | | |
| | | <Search class="absolute top-0 left-2 z-14 w-fit" :olMap="olMap" :propertyMap="propertyMap" :propertyConfigMap="propertyConfigMap"/> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import equipPic from './img/equip.svg'; |
| | | import LayerControl from './LayerControl.vue'; |
| | | import PanelTool from './panelTool/index.vue'; |
| | | import Search from './Search.vue'; |
| | | import { |
| | | getMapDrawStyles, |
| | | getMapLayerGroupList, |
| | |
| | | data: any; |
| | | config?: { |
| | | sourceType: GaoDeSourceType; |
| | | markerIsVisible: boolean; |
| | | }; |
| | | isFullscreen: boolean; |
| | | }>(), |
| | | { |
| | | config: () => ({ |
| | | sourceType: GaoDeSourceType.Vector, |
| | | markerIsVisible: true, |
| | | }), |
| | | } |
| | | ); |
| | | |
| | | const locationCurrent = () => { |
| | | olMap.value.locationCurrent(); |
| | | }; |
| | | |
| | | const colsArray = computed(() => { |
| | | return props.data.cols ?? []; |
| | | }); |
| | | const emit = defineEmits(['markerClick', 'closeInfoWindow','toggleFullScreen']); |
| | | const emit = defineEmits(['markerClick', 'closeInfoWindow', 'toggleFullScreen']); |
| | | |
| | | const toggleFullScreen = () => { |
| | | emit('toggleFullScreen'); |
| | |
| | | |
| | | const handleVectorTileClick = (feature, layer) => { |
| | | panelToolRef.value.featureClick(feature); |
| | | feature && panelToolRef.value.setActivePanel(MapPanelTool.Property); |
| | | feature && panelToolRef.value.setActivePanel(MapPanelTool.Property); |
| | | // setActiveStyle(feature,layer); |
| | | }; |
| | | const propertyMap = ref({}); |
| | |
| | | const getDrawStyles = async () => { |
| | | const res = await getMapDrawStyles(); |
| | | const styleList = res?.values ?? []; |
| | | // console.log("🚀 ~ styleList:", styleList) |
| | | olMap.value.setDrawStyles(styleList); |
| | | }; |
| | | |
| | |
| | | await getDrawStyles(); |
| | | const res = await getMapLayersByPost(); |
| | | const layers = reverse(res?.layers ?? []); |
| | | if (layers.length === 0) return; |
| | | const layerModels = []; |
| | | for (const item of layers) { |
| | | const styleFunc = olMap.value.unsupportedLayers.includes(item.id) ? undefined : layerStyleFunc; |
| | |
| | | getGroupList().then((groupList) => { |
| | | olMap.value.setAllLayers(layerModels, layers, groupList); |
| | | }); |
| | | if (layers.length === 0) return; |
| | | |
| | | getThemeList(); |
| | | getPropertyList(); |
| | | olMap.value.on('featureChange', handleVectorTileClick); |
| | |
| | | olMap.value = new OLMap({ |
| | | container: containerRef.value, |
| | | sourceType: props.config?.sourceType, |
| | | markerIsVisible: props.config?.markerIsVisible, |
| | | }); |
| | | |
| | | addMarkerLayer(); |