發布日期: 2025-05-23 點擊次數: 186 字體顯示: 【大】【中】【小】 分享到
項目名稱:智慧航班
地球自轉:
下圖為成果展示圖,點擊可實現地球自轉。
實現步驟:
1. 使用inject函數注入依賴,獲取地圖對象和場景對象并分別賦值給變量。
2. 從map對象中獲取當前中心點坐標,將地圖中心點的經度減少1度。
3. 使用easeTo的方法以線性平滑的方法均勻移動到新的中心點。
4. 使用map.off方法從地圖對象上移除moveend事件監聽器。
1. 時間戳:
在子組件中通過setInterval函數實現時間的變化,利用Date()獲取當前時間,利用toLocalDateString函數獲取當前時間的年月日和時分秒。
效果圖:
代碼:
2. 更換地圖style、全屏控件
根據select的change事件,獲取當前選擇的style,并利用setStyle函數將值賦給map
3. 首頁跳轉:
在Bottom子組件中添加一個按鈕,使用 window.location.href 跳轉到指定的 URL,實現跳轉到地圖首頁的功能。
4. 切換投影方式
在select下拉框通過v-model雙向綁定實現響應式數據,@change方法實現地圖投影方式的改變。
右為首頁和切換投影插件展示=>
1. 安裝@aesqe/mapboxgl-minimap插件,初始化配置,并添加控件;卸載時移除控件。
鷹眼控件展示圖
在老師的代碼基礎上增加了雷達圖展示:將雷達圖代碼封裝在js文件中,與其他圖不同,雷達圖使用render函數展現圖層
1. 呈現結果
2. 獲取長江武漢段數據獲取
城市掃光
1. 城市場景實現
建立el表格,設置查詢結果的表格格式,通過height屬性確定表格定長以達到表格的滾動條效果,并利用el-card綁定點擊事件(toDraw)開始進行拉框查詢
建立toDraw方法,初始化畫框及地圖內容,繪制一個初始的矩形,即為查詢區域。
利用toSearch方法判斷時間是否在矩形框內,若在則利用push方法將方法的具體信息傳入列表內,并最后利用列表的長度判斷是否有點在矩形框內。若有點在矩形框內,則將列表內信息傳入el表內。
利用el表綁定的點擊事件,通過點擊行內信息,利用flyTo方法將地圖中心點顯示至點對象處。
下圖即為展示效果,點擊拉框查詢則可以進行范圍查詢,并得到框內結果,點擊則可以跳轉。
1. 添加路由及視圖基本實現畫線、矩形、多邊形、圓的功能
功能基本實現示例
2. 解決功能沖突問題,完善代碼,如下圖
發現功能沖突的問題
1. 首先根據openlayer天氣項目提供的網址,創建自己的key
2. 然后在網址后加上輸入框輸入的地址以及key值獲取郵編和經緯度信息
3. 進一步根據郵編獲取該地的天氣狀況,并利用MyMarker函數將天氣狀況以及經緯度等狀況傳遞出去
4. 根據傳出去的經緯度設置marker以及popup,并用if限制條件,對marker進行銷毀,防止連續輸入多個城市后,多個marker同時出現的情況
5. 最后利用flyTo實現地圖的移動
6. 下圖為成果展示圖,可搜索國內任意省份和地區的天氣狀況
1. 初始化模型配置
2. 利用loadObjModels.js文件進行模型的加載和移除
3. 三維模型展示圖
1. 安裝threebox-plugin插件,初始化car、soldier、bicycle三維模型
2. 安裝@mapbox/mapbox-gl-directions插件,初始化導航控件,根據不同的交通方式加載不同的模型進行漫游
地圖導航展示圖:
3. 卸載時移除模型和導航控件
1. 在子組件ChinaWind.vue中獲取到全局變量
const { map, scene } = inject("$scene_map");
2. 拿到全國季風的json數據后進行數據請求,將后端數據渲染到頁面上
3. 渲染到頁面上之后設置圖層的樣式
4. 在組件注銷時刪除季風圖層
飛行航線查詢(視圖)