日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

基于Vue與Three.js的中國(guó)3D地圖可視化大屏實(shí)戰(zhàn)解析

基于Vue與Three.js的中國(guó)3D地圖可視化大屏實(shí)戰(zhàn)解析 簡(jiǎn)介本資源是一個(gè)基于Three.js與Vue.js實(shí)現(xiàn)的交互式中國(guó)3D地理可視化項(xiàng)目面向前端開發(fā)者、GIS初學(xué)者及Web 3D技術(shù)實(shí)踐者解決傳統(tǒng)二維地圖缺乏空間感知與動(dòng)態(tài)交互的問題適用于數(shù)字孿生、政務(wù)可視化、教學(xué)演示等場(chǎng)景。壓縮包共2000個(gè)文件主體為2002個(gè)JavaScript文件含three.module.js、web-ifc-api.js等核心3D庫(kù)、165個(gè)JSON格式地理數(shù)據(jù)與配置文件、50個(gè)Markdown文檔說明及少量CSS/HTML資源整體體積11.35MB結(jié)構(gòu)模塊清晰涵蓋場(chǎng)景初始化、省份網(wǎng)格建模、相機(jī)控制、光照紋理配置與Vue響應(yīng)式狀態(tài)管理邏輯。已有3829人學(xué)習(xí)下載提供開箱即用的Three-chinaMap-Demo.html入口完整包含地形渲染、鼠標(biāo)拖拽縮放、區(qū)域點(diǎn)擊高亮、LOD性能優(yōu)化等可運(yùn)行功能是深入理解WebGL封裝、Vue 3D狀態(tài)聯(lián)動(dòng)與大規(guī)模地理數(shù)據(jù)可視化的優(yōu)質(zhì)實(shí)踐樣本。 去年接了一個(gè)展廳數(shù)據(jù)可視化需求要在現(xiàn)場(chǎng)大屏上放一張中國(guó)3D地圖能看省份海拔差異、重點(diǎn)城市分布、還有點(diǎn)擊省份彈出業(yè)務(wù)數(shù)據(jù)。當(dāng)時(shí)第一反應(yīng)就是用 Three.js因?yàn)橐氖钦嫒S不是那種用 CSS 搞出來的偽 3D。整個(gè)項(xiàng)目最終用 Vue Three.js 完成前后大概兩周時(shí)間踩了不少坑也總結(jié)出一套可以直接復(fù)用的流程。這篇文章就把整個(gè)項(xiàng)目從技術(shù)選型到核心實(shí)現(xiàn)、再到坑位排查完整拆一遍希望對(duì)正在做 Web 3D 可視化大屏的朋友有幫助。先說結(jié)論Vue 負(fù)責(zé)頁面骨架、交互狀態(tài)和業(yè)務(wù)數(shù)據(jù)Three.js 負(fù)責(zé)地圖渲染和三維場(chǎng)景兩者通過組件生命周期綁定用 ref 掛載 DOM用 reactive 驅(qū)動(dòng)場(chǎng)景狀態(tài)。這套分工在實(shí)操里非常順也是后文展開的主線。1. 為什么是 Three.js Vue而不是其他方案1.1 Three.js 到底解決了什么問題很多人會(huì)問地圖可視化用 ECharts 或者 Mapbox 不就行了為什么還要上 Three.js我的回答是視業(yè)務(wù)目標(biāo)而定。ECharts 的 map3D 確實(shí)能做出帶擠出效果的 3D 地圖但它的擴(kuò)展邊界很明顯——你想在某個(gè)城市上方放一個(gè)動(dòng)態(tài)波紋標(biāo)記、想從北京畫一條飛到烏魯木齊的曲線、想讓相機(jī)沿著某個(gè)路徑自動(dòng)巡航這些在 ECharts 里做起來要么依賴 hack要么干脆做不了。Three.js 是底層 WebGL 渲染引擎本質(zhì)上是給你一塊自由的 3D 畫布地圖只是你在這塊畫布上搭出來的一個(gè)場(chǎng)景而已。換句話說Three.js 不是“地圖庫(kù)”它比地圖庫(kù)更底層也更靈活。這次項(xiàng)目里實(shí)際用到的高頻能力包括幾何體擠出ExtrudeGeometry、多邊形輪廓線、Raycaster 點(diǎn)擊拾取、OrbitControls 相機(jī)控制、Sprite 標(biāo)記點(diǎn)、CatmullRomCurve3 飛線。這些在 Three.js 里都是成熟能力組合起來就能做出一張交互感很強(qiáng)的中國(guó)3D地圖。1.2 Vue 在這里不是主角但離了它很別扭地圖主體雖然是 Three.js 干的但整個(gè)頁面不可能只有一張地圖左側(cè)要放省份數(shù)據(jù)排行右側(cè)要放選中省份的詳情面板底部可能還有時(shí)間軸篩選。這些 UI 和地圖之間需要聯(lián)動(dòng)比如鼠標(biāo)懸停到某個(gè)省右側(cè)面板實(shí)時(shí)更新點(diǎn)擊某個(gè)省地圖視角飛過去。如果純用原生 JS 寫這些狀態(tài)管理會(huì)非常痛苦而 Vue 的響應(yīng)式數(shù)據(jù)天生就適合干這事。我的做法是把“當(dāng)前選中省份”“當(dāng)前懸停省份”這類狀態(tài)放在 Vue 的 reactive 對(duì)象里Three.js 側(cè)監(jiān)聽這些狀態(tài)變化對(duì)應(yīng)更新地圖材質(zhì)顏色、相機(jī)位置、UI 面板內(nèi)容。反過來Three.js 的 Raycaster 拾取到省份后修改的也是 Vue 的響應(yīng)式對(duì)象這樣 UI 和 3D 場(chǎng)景就形成了一個(gè)閉環(huán)數(shù)據(jù)流。這個(gè)思路對(duì)于所有用 Three.js 做數(shù)據(jù)可視化大屏的項(xiàng)目都適用。2. 環(huán)境搭建與地圖數(shù)據(jù)預(yù)處理2.1 快速初始化 Vue3 Vite Three.js 開發(fā)環(huán)境這個(gè)項(xiàng)目我用的 Vite 而不是 Vue CLI原因很簡(jiǎn)單Vite 冷啟動(dòng)快、熱更新快在開發(fā)階段會(huì)舒服很多。Node.js 版本用的是 18直接按官方文檔創(chuàng)建命令如下npm create vitelatest china-3d-map -- --template vue cd china-3d-map npm install npm install three npm install --save-dev unplugin-auto-import unplugin-vue-components裝完以后先確認(rèn)一下 three 的版本。我寫這篇文章時(shí) three 已經(jīng)到 0.160 了API 基本穩(wěn)定下面示例代碼在 0.150 ~ 0.170 之間都能跑。不過要注意一個(gè)小變化新版本里THREE.Geometry已經(jīng)移除很久了所有幾何體都是BufferGeometry寫代碼時(shí)別再用舊 API。項(xiàng)目里還需要引入地圖 GeoJSON 數(shù)據(jù)。中國(guó)省份邊界的 GeoJSON 可以在阿里云 DataV 的公開數(shù)據(jù)集里拿到搜索“china.json”或者“中國(guó)地圖 geojson”就能找到。我用的這份數(shù)據(jù)包含了省份名稱、adcode、以及對(duì)應(yīng)的多邊形坐標(biāo)數(shù)組格式是標(biāo)準(zhǔn)的 GeoJSON FeatureCollection。2.2 GeoJSON 坐標(biāo)數(shù)據(jù)解析從經(jīng)緯度到 3D 平面坐標(biāo)拿到 GeoJSON 以后第一步不是急著渲染而是把經(jīng)緯度坐標(biāo)轉(zhuǎn)換成 Three.js 場(chǎng)景里能用的平面坐標(biāo)。這里面有個(gè)新手最容易踩的坑直接把經(jīng)緯度當(dāng)成 x/y 用。中國(guó)地圖的大致范圍是經(jīng)度 73°~135°、緯度 18°~54°如果你原樣用這組數(shù)字去創(chuàng)建幾何體地圖確實(shí)能顯示出來但它會(huì)跑到坐標(biāo)軸的右上方很遠(yuǎn)的地方而且比例失衡相機(jī)很難定位。比較穩(wěn)妥的做法是先計(jì)算整個(gè)數(shù)據(jù)集的最小/最大經(jīng)緯度然后按比例映射到一個(gè)以原點(diǎn)為中心的矩形區(qū)域內(nèi)。下面是我項(xiàng)目里實(shí)際用的投影函數(shù)function normalizeGeoJSON(features, width 100, height 100) { // 1. 計(jì)算經(jīng)緯度范圍 let minLon Infinity, maxLon -Infinity; let minLat Infinity, maxLat -Infinity; features.forEach(feature { const coords getAllCoordinates(feature); coords.forEach(([lon, lat]) { minLon Math.min(minLon, lon); maxLon Math.max(maxLon, lon); minLat Math.min(minLat, lat); maxLat Math.max(maxLat, lat); }); }); // 2. 計(jì)算等比縮放比例保持地圖不變形 const xScale width / (maxLon - minLon); const yScale height / (maxLat - minLat); const scale Math.min(xScale, yScale); // 3. 返回一個(gè)經(jīng)緯度轉(zhuǎn) x/y 的函數(shù) return function project(lon, lat) { const x (lon - minLon) * scale - width / 2; const y (lat - minLat) * scale - height / 2; return { x, y }; }; } function getAllCoordinates(feature) { // GeoJSON 可能是 Polygon 也可能是 MultiPolygon統(tǒng)一拍平處理 const geometry feature.geometry; if (geometry.type Polygon) return geometry.coordinates.flat(); if (geometry.type MultiPolygon) return geometry.coordinates.flat(2); return []; }這里有個(gè)細(xì)節(jié)值得多說一句為什么用Math.min(xScale, yScale)而不是分別用 x 和 y 方向的縮放因?yàn)槿绻蝗〉缺壤貓D的橫向和縱向會(huì)被拉伸中國(guó)地圖看起來會(huì)比實(shí)際“胖”或者“瘦”。很多教程沒提這一點(diǎn)做完以后地圖輪廓總覺得不對(duì)勁其實(shí)就是這里出了問題。等比例縮放犧牲的是一部分展示面積但換來的地圖形狀保真是完全值得的。2.3 三種可選的“高度”數(shù)據(jù)來源這個(gè)項(xiàng)目標(biāo)題叫“3D地圖”3D 體現(xiàn)在哪里最直觀的就是每個(gè)省份的墻體和擠出高度。在實(shí)操里高度數(shù)據(jù)常見有三種來源真實(shí)地形高程比如 NASA 的 SRTM 30米分辨率 DEM 數(shù)據(jù)但處理起來很麻煩需要切片、讀像素值對(duì)前端來說成本太高一般不做業(yè)務(wù)指標(biāo)映射比如各省 GDP、人口、銷售額用數(shù)值大小決定擠出高度這是大屏項(xiàng)目最常用、也是效果最直觀的方案模擬海拔如果只是想要一個(gè)酷炫的展示效果并不需要反映真實(shí)業(yè)務(wù)數(shù)據(jù)那可以直接給每個(gè)省份設(shè)定一個(gè)“虛擬海拔”比如西藏高度 5000四川 1000你只需要維護(hù)一個(gè)省名對(duì)應(yīng)高度的字典就行。我這次項(xiàng)目一開始用了真實(shí)海拔數(shù)據(jù)模擬方案后來客戶要求能反映業(yè)務(wù)數(shù)據(jù)變化于是改成按指標(biāo)映射高度。建議你把高度計(jì)算抽成一個(gè)函數(shù)后續(xù)切換數(shù)據(jù)源會(huì)非常方便function getProvinceHeight(provinceName, data) { const value data[provinceName] || 0; return 3 value * 20; // 最低 3 個(gè)單位最高根據(jù)數(shù)據(jù)自適應(yīng) }實(shí)踐下來如果所有省份高度都是平的比如都是 3地圖看起來就是一張“餅”沒有立體感。至少要保證西藏、青海、云南這些區(qū)域比東部省份高一點(diǎn)視覺上才有“中國(guó)地勢(shì)三級(jí)階梯”的感覺。這雖然不是真實(shí)地理數(shù)據(jù)但觀眾的直覺會(huì)覺得“對(duì)就是這種感覺”。3. 核心功能拆解與實(shí)現(xiàn)3.1 用 ExtrudeGeometry 把省份從“平面”變成“立體”處理完坐標(biāo)以后就可以為每個(gè)省份創(chuàng)建幾何體了。Three.js 里做立體地圖最直接的方法是ExtrudeGeometry先畫一個(gè)多邊形平面再沿 z 軸方向擠出一個(gè)高度就得到了有“墻體”的立體形狀。具體流程分三步第一步把省份的多邊形輪廓轉(zhuǎn)成THREE.Shape。注意一個(gè)省可能有多個(gè)不相連的輪廓比如廣東省包含海南島不對(duì)海南是單獨(dú)的省份但有些省份確實(shí)有飛地或島嶼所以一個(gè)Shape可能不夠需要循環(huán)處理。function createProvinceShape(coordinates, project) { const shape new THREE.Shape(); coordinates.forEach(([lon, lat], index) { const { x, y } project(lon, lat); if (index 0) shape.moveTo(x, y); else shape.lineTo(x, y); }); return shape; }第二步用ExtrudeGeometry擠出。這里有兩個(gè)關(guān)鍵參數(shù)depth是擠出高度也就是省份的“海拔”bevelEnabled默認(rèn)是true會(huì)產(chǎn)生一個(gè)倒角我建議在大多數(shù)地圖場(chǎng)景里把它關(guān)掉否則省份邊緣會(huì)有一個(gè)斜切面影響視覺精度而且會(huì)額外增加頂點(diǎn)數(shù)。const geometry new THREE.ExtrudeGeometry(shape, { depth: provinceHeight, bevelEnabled: false, });第三步把幾何體平移到合適的位置。ExtrudeGeometry默認(rèn)從 z0 向上擠所以省底和頂都在一個(gè)很小的范圍內(nèi)。為了讓地圖看起來是“懸浮”的或者“沉在底座上的”可以整體平移geometry.translate(0, 0, -provinceHeight / 2)讓省體居中。每個(gè)省份對(duì)應(yīng)一個(gè)獨(dú)立 Mesh把這個(gè) Mesh 放進(jìn)一個(gè)THREE.Group里方便統(tǒng)一管理。給每個(gè) Mesh 的userData上掛省份名稱、adcode、原始高度等業(yè)務(wù)字段后面做點(diǎn)擊高亮和飛線都會(huì)用到。3.2 省份高亮、選中與點(diǎn)擊交互交互是大屏項(xiàng)目的重頭戲。Three.js 里做點(diǎn)擊拾取的標(biāo)準(zhǔn)方式是用Raycaster從相機(jī)發(fā)射一條射線檢測(cè)與哪些 Mesh 相交。這里有個(gè)性能優(yōu)化的點(diǎn)場(chǎng)景里可能有幾十個(gè)省份 Mesh如果每一次鼠標(biāo)移動(dòng)都做全量射線檢測(cè)會(huì)有一些多余的 CPU 開銷。我一般會(huì)單獨(dú)維護(hù)一個(gè)provinceMeshes數(shù)組只對(duì)這個(gè)數(shù)組做檢測(cè)而不是對(duì)scene.children全部檢測(cè)。const raycaster new THREE.Raycaster(); const mouse new THREE.Vector2(); function onMouseMove(event) { // 將鼠標(biāo)位置轉(zhuǎn)換成 NDC 坐標(biāo)-1 ~ 1 mouse.x (event.clientX / window.innerWidth) * 2 - 1; mouse.y -(event.clientY / window.innerHeight) * 2 1; raycaster.setFromCamera(mouse, camera); const intersects raycaster.intersectObjects(provinceMeshes); if (intersects.length 0) { const mesh intersects[0].object; hoverProvince(mesh.userData.name); } else { clearHover(); } }高亮的效果我推薦兩種方案一起用。一是改變材質(zhì)顏色懸停時(shí)從默認(rèn)藍(lán)色調(diào)變成亮一點(diǎn)的青色或綠色二是疊加一個(gè)描邊效果用EdgesGeometryLineSegments把省份輪廓線畫出來選中時(shí)讓輪廓線變成亮色。只有顏色變化的話在展廳大屏的高亮環(huán)境下容易被忽略加上輪廓線以后辨識(shí)度會(huì)高很多。關(guān)于點(diǎn)擊后如何把 Vue 側(cè)的 UI 面板帶出來我的數(shù)據(jù)流是這樣的點(diǎn)擊某個(gè)省先更新 Vue 的 reactivestate.currentProvince然后地圖側(cè)通過watch監(jiān)聽這個(gè)值執(zhí)行相機(jī)飛行動(dòng)畫用 Tween 或自定義軌跡飛行到目標(biāo)省份上方同時(shí)把省份材質(zhì)換成選中色。UI 面板里展示的業(yè)務(wù)數(shù)據(jù)直接根據(jù)state.currentProvince從接口或者本地 JSON 里讀取。3.3 城市標(biāo)記與飛線動(dòng)畫讓地圖有生命力光有立體的省份輪廓還不夠大屏上還得有“點(diǎn)”和“線”——點(diǎn)代表重點(diǎn)城市線代表城市之間的關(guān)聯(lián)。城市標(biāo)記我用的是THREE.Sprite Canvas 生成的紋理這樣能保證文字比如城市名始終面向相機(jī)而且成本很低。function createCitySprite(name, position) { const canvas document.createElement(canvas); canvas.width 128; canvas.height 64; const ctx canvas.getContext(2d); ctx.fillStyle #ffffff; ctx.font bold 24px sans-serif; ctx.textAlign center; ctx.fillText(name, 64, 36); const texture new THREE.CanvasTexture(canvas); const material new THREE.SpriteMaterial({ map: texture, transparent: true }); const sprite new THREE.Sprite(material); sprite.position.copy(position); sprite.scale.set(8, 4, 1); return sprite; }飛線是這種地圖展示里最出效果的一環(huán)。我的做法是拿到起點(diǎn)和終點(diǎn)城市的三維坐標(biāo)后用CatmullRomCurve3創(chuàng)建一條貝塞爾曲線。為了讓飛線看起來有弧度我在起點(diǎn)和終點(diǎn)中間加一個(gè)抬升的中間點(diǎn)控制點(diǎn)高度向上偏移 20~30 個(gè)單位。然后用TubeGeometry生成管狀線條或者用Line直接渲染曲線。帶漸變效果的飛線更推薦用Line2FatLines但實(shí)現(xiàn)復(fù)雜度會(huì)高一些。第一次做的話先用CatmullRomCurve3.getPoints(50)生成一系列點(diǎn)再用THREE.Line畫出來效果已經(jīng)足夠。飛線動(dòng)畫有兩種常見做法一種是讓線的透明度或?qū)挾妊芈窂诫S時(shí)間變化需要 Shader另一種是移動(dòng)一個(gè)“光點(diǎn)”從起點(diǎn)到終點(diǎn)后面這種比較好理解。用一個(gè)球體或 Sprite 作為飛行光點(diǎn)每一幀更新它在曲線上的位置// 預(yù)先計(jì)算曲線 const curve new THREE.CatmullRomCurve3([startPoint, controlPoint, endPoint]); // 在 requestAnimationFrame 里更新 const t (Date.now() / 1500) % 1; // 1.5 秒走完一次 const point curve.getPoint(t); flyPoint.position.copy(point);3.4 Vue 生命周期與 Three.js 場(chǎng)景的綁定把 Three.js 塞進(jìn) Vue 組件里有一個(gè)老生常態(tài)但很多人還是會(huì)踩的坑場(chǎng)景只能在組件掛載后創(chuàng)建組件銷毀前必須清理。我的組件結(jié)構(gòu)大概是這樣的template div refmapContainer classmap-container/div /template script setup import { ref, onMounted, onBeforeUnmount } from vue; const mapContainer ref(null); let renderer, scene, camera, controls; let animationId null; function initScene() { const container mapContainer.value; const width container.clientWidth; const height container.clientHeight; scene new THREE.Scene(); camera new THREE.PerspectiveCamera(45, width / height, 0.1, 1000); camera.position.set(0, -80, 80); camera.lookAt(0, 0, 0); renderer new THREE.WebGLRenderer({ antialias: true, alpha: true }); renderer.setSize(width, height); container.appendChild(renderer.domElement); controls new OrbitControls(camera, renderer.domElement); controls.enableDamping true; } function animate() { animationId requestAnimationFrame(animate); controls.update(); renderer.render(scene, camera); } onMounted(() { initScene(); loadMapData(); animate(); window.addEventListener(resize, onResize); }); onBeforeUnmount(() { cancelAnimationFrame(animationId); window.removeEventListener(resize, onResize); renderer.dispose(); mapContainer.value.removeChild(renderer.domElement); }); /script這里額外提醒一下renderer.dispose()之后一定要把 canvas 從 DOM 里移除否則在 Vue 的 HMR 熱更新或路由切換時(shí)你的頁面里會(huì)保留很多幽靈 canvas占用顯存。4. 性能優(yōu)化與三個(gè)最值得記錄的坑4.1 大屏渲染性能優(yōu)化展廳大屏的分辨率一般是 1920x1080 或者更高數(shù)據(jù)量大的時(shí)候容易掉幀。我做過的優(yōu)化主要有幾個(gè)方向合并靜態(tài)幾何體如果某些省份的幾何體不需要單獨(dú)交互可以先把它們合并成一個(gè)幾何體一次 draw call 渲染完能顯著降低 GPU 壓力。需要交互的省份再單獨(dú)保留減少透明物體大量半透明疊加會(huì)觸發(fā)透明度排序GPU 開銷成倍增加。標(biāo)記點(diǎn)、貼片能用不透明的就盡量不透明GeoJSON 數(shù)據(jù)簡(jiǎn)化中國(guó)地圖的 GeoJSON 原始文件可能有幾百 KB頂點(diǎn)數(shù)非常多??梢杂?mapshaper 之類的工具把精度從 5 位小數(shù)降到 2~3 位肉眼幾乎看不出差別但頂點(diǎn)數(shù)可以減少一半以上使用 DRACOLoader 壓縮模型如果還有 GLTF/GLB 模型比如建筑模型、裝飾物務(wù)必用 Draco 壓縮壓縮率通常在 70% 以上。我記得有一次地圖旋轉(zhuǎn)的時(shí)候掉幀特別嚴(yán)重檢查了半天發(fā)現(xiàn)是 GeoJSON 里每個(gè)省份的輪廓精度都特別高渲染時(shí)的頂點(diǎn)數(shù)達(dá)到了十幾萬。用 mapshaper 簡(jiǎn)化到 2% 以后幀率從 30 以下直接拉回 60效果非常明顯。4.2 坐標(biāo)偏移導(dǎo)致省份輪廓“錯(cuò)位”的排查思路這個(gè)項(xiàng)目里最典型的一個(gè)問題地圖渲染出來以后某個(gè)省份的形狀整體偏離了它本來的位置或者省份之間有交疊。排查下來原因通常出在getAllCoordinates函數(shù)把MultiPolygon拍平的邏輯寫錯(cuò)了。GeoJSON 里Polygon的坐標(biāo)層級(jí)是三層數(shù)組最外層是環(huán)Ring每個(gè)環(huán)里是坐標(biāo)點(diǎn)數(shù)組而MultiPolygon是四層數(shù)組。拍平時(shí)如果flat(1)或flat(2)層級(jí)不對(duì)取出來的點(diǎn)就會(huì)錯(cuò)亂。建議你寫完之后做一個(gè)可視化調(diào)試先把所有省份的輪廓線用LineSegments畫出來疊加在平面底圖上對(duì)比這樣可以快速判斷題是否出在輪廓解析上。如果輪廓整體錯(cuò)位一定是投影函數(shù)的問題如果只有個(gè)別省份錯(cuò)位、扭曲那就是MultiPolygon解析的問題按上面提到的拍平層級(jí)逐層檢查即可。4.3 透明材質(zhì)渲染順序問題Three.js 里透明物體的渲染順序是一個(gè)老大難問題。地圖場(chǎng)景里如果既要有透明的省份漂浮塊半透明膜狀效果又要有透明的飛線、透明的標(biāo)記點(diǎn)經(jīng)常會(huì)出現(xiàn)“透過一個(gè)透明物體看到另一個(gè)透明物體時(shí)后面的物體有一部分不顯示”的現(xiàn)象。這個(gè)問題沒有一勞永逸的解決辦法。我的經(jīng)驗(yàn)是depends 優(yōu)先級(jí) renderOrder 手動(dòng)調(diào)整。在創(chuàng)建 Mesh 的時(shí)候顯式設(shè)置provinceMesh.renderOrder 1; flyLineMesh.renderOrder 2; sprite.renderOrder 3;同時(shí)把透明材質(zhì)的depthWrite: false設(shè)上防止透明物體寫入深度緩沖導(dǎo)致后面的透明物體被遮擋。這個(gè)技巧不是萬能的但對(duì)大多數(shù)情況能明顯改善。5. 項(xiàng)目還能怎么擴(kuò)展從“會(huì)動(dòng)的地圖”到“可用的產(chǎn)品”做完主體功能以后我并沒有馬上收工而是按客戶需求加了幾個(gè)擴(kuò)展點(diǎn)這里也一并分享出來。第一是時(shí)間軸播放。在 Vue 側(cè)做一個(gè) slider拖動(dòng)時(shí)間軸時(shí)各省的擠出高度會(huì)按照時(shí)間變化而重新計(jì)算形成一個(gè)數(shù)據(jù)演變的動(dòng)畫效果。實(shí)現(xiàn)起來并不復(fù)雜因?yàn)槭》莞叨纫呀?jīng)抽成了getProvinceHeight函數(shù)改動(dòng)高度時(shí)只需要循環(huán)省份 Mesh更新幾何體或者重新創(chuàng)建幾何體就行。不過要注意頻繁重建幾何體很耗內(nèi)存更好的做法是用geometry.attributes.position動(dòng)態(tài)修改頂點(diǎn)位置但計(jì)算量會(huì)大一些需要自己權(quán)衡。第二是圖表面板與地圖聯(lián)動(dòng)。頁面右側(cè)放一個(gè) ECharts 折線圖展示選中省份的歷史數(shù)據(jù)。點(diǎn)擊省份時(shí)Vue 側(cè)更新 ECharts 的option這個(gè)很簡(jiǎn)單重點(diǎn)在于地圖和圖表要共用一套數(shù)據(jù)源避免兩側(cè)數(shù)據(jù)不一致。第三是部署和加載體驗(yàn)。地圖 GeoJSON 文件如果比較大建議放到 CDN 上并用fetch異步加載期間顯示一個(gè) loading 狀態(tài)。還可以用topojson-client把 TopoJSON 轉(zhuǎn) GeoJSON文件更小加載更快。不過 TopoJSON 會(huì)增加一個(gè)轉(zhuǎn)換步驟如果不是特別在意首屏速度直接用優(yōu)化后的 GeoJSON 就夠。我在實(shí)際部署時(shí)踩過一個(gè)相關(guān)的小坑如果項(xiàng)目部署在 Nginx 子路徑下比如http://example.com/geo/靜態(tài)資源路徑默認(rèn)是相對(duì)路徑直接fetch(china.json)會(huì) 404。解決方法是給 Vite 配置base: /geo/或者用相對(duì)路徑fetch(new URL(./china.json, import.meta.url).href)。6. 最后幾個(gè)實(shí)用建議寫到這里項(xiàng)目主體基本講完了。按照我的經(jīng)驗(yàn)再給大家?guī)讉€(gè)通用建議別期待一次寫對(duì)。三維場(chǎng)景坐標(biāo)系遠(yuǎn)比二維 Web 頁面復(fù)雜最好先把地圖輪廓線渲染出來看形狀再往上疊加立體和交互。一步一步來更容易定位問題。相機(jī)位置和燈光是照片質(zhì)量的關(guān)鍵。同一種藍(lán)色材質(zhì)在偏暗的展廳大屏和明亮的辦公顯示器上呈現(xiàn)效果差別巨大。建議用HemisphereLight作為環(huán)境光再配一個(gè)DirectionalLight作為主光并花時(shí)間調(diào)光的方向陰影和高光會(huì)比默認(rèn)光照自然很多。保持場(chǎng)景可配置化。把省份顏色、高度、飛線速度、相機(jī)初始位置這些參數(shù)全部抽到一個(gè)配置文件里。因?yàn)榇笃另?xiàng)目的需求溝通通常不是一次性能敲定的客戶總會(huì)在交付前提出“這個(gè)紫色換一下”“地圖轉(zhuǎn)得再慢一點(diǎn)”之類的改動(dòng)。配置化之后改起來就是調(diào)參數(shù)的事。最后再分享一個(gè)我在項(xiàng)目交付階段學(xué)到的經(jīng)驗(yàn)不要只盯著技術(shù)指標(biāo)還要多考慮“使用場(chǎng)景”??蛻艨创笃恋臅r(shí)候不會(huì)關(guān)注你用的是 Three.js 的哪個(gè) API只會(huì)關(guān)注視覺效果是否夠震撼、交互反饋是否夠流暢。所以寧可減少幾個(gè)花哨功能也要保證相機(jī)旋轉(zhuǎn)、飛線動(dòng)畫、點(diǎn)擊響應(yīng)這些核心交互的流暢度。我這次項(xiàng)目里最受好評(píng)的一個(gè)設(shè)置其實(shí)是 OrbitControls 的autoRotate——地圖加載完成后自動(dòng)緩慢旋轉(zhuǎn)立刻讓整個(gè)大屏的科技感上了一個(gè)臺(tái)階。這個(gè)設(shè)置對(duì)代碼來說只有一行但現(xiàn)場(chǎng)效果提升非常大強(qiáng)烈建議也試一下。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲综合在线91| 精品久| 综合网亚洲1| 欧美韩国你懂得在线| 五月天婷婷欧美三区| 亚洲av无线观看| 精品国产乱码久久久久久久| 久久久精品电影| 东北黄色电影| 天天综合精品| 加勒比大香蕉视频在线| 伊人婷婷五月天| 91精品丝袜久久久久久无码人妻| 操逼逼中文字幕| 操逼不卡中文字幕| 视频一区二区免费在线| 天天操天天日天天干| 亚洲色啪| 青草青草久热| 美女被啪到深处抽搐视频| 97爱b| 久久无码成人| 免费?级毛片无码?∨蜜芽试看| 玖玖超碰熟| 人妻精品综合中文字幕在线| 天天干天天爽| 天天干,天天日| 翔田千里Av在线| 久久99国产精品| 国产视频第2页| 免费精品99| 中文字幕美女91| 四虎av在线| 日韩一级二级三级免费看完整版国语版 | 欧美高清无码免费视频高清版| 国产不卡中文字幕免费avi| 五月婷婷性爱| 色色五月婷婷| 国产亚洲人妻综合日韩 久久| 亚洲日韩美国人妻| 温婉少妇玩3p| 无码精品蜜桃一区二区三区ww| 99久久99久久免费精品蜜臀| 久久久久久久久久久久97| 99热精品青草在线 | 色婷婷婷五月天激情四射| 牛牛aV| 17c在线成人免费A片观看| 欧美色青| 天天躁日日躁狠狠躁| 久超碰这里只有精品| A男人的天堂| 黄色网址在线免费观看| 全国男人天堂网| 国产免费一区| 色综合20p| 精品999日本| 国产精品久久久久久夜夜夜| 午夜性| 青青久操| 青操影院| 欧洲亚洲少妇| 午夜小电影在线插入淫高潮| 俺去啦俺来也久久综合| 综合网91| 成人小说视频在线精品欧美| 搡老女人老91妇女老熟女| 日本在线伊人啪啪| 国产精品天堂| 豆花视频操逼网址| 日韩欧美成人性爱在线| 韩国三级理论在线| 欧美黑人精品一区二区| 伊人激情| 九九亚洲精品| 美女好片色日本| 黑人综合色| 亚洲女人91| 人妻天天爽天天爽三区| 亚洲啪AⅤ永久无码| 草莓精品视频在线免费观看| 欧美一级黄片免费播放| 亚洲熟女乱色| 久久女女| 97Ai亚洲| 噜噜噜在线视频| 少妇的嫩逼图片| 欧美色九九九| 日本东京热久久久电影| 久久综合亚洲色1080p| 久久久久久九九九| 亚洲欧美天| 亚洲古典另类欧美在线| 白丝一区| 天天综合影院91| av凤凰久久久| 久久久久久亚洲中文| 精品福利| 国产毛片片精品天天看视频| 欧美v亚洲v综合v国产v妖精| 精品一区二区国产日韩| 97视频在线免费| 97色综合中文网| 久草视频观看视频在线| 国产精品97超碰| 啪啪综合网| 亚洲三区视频| 日韩AV电影网站| 中文字幕天天操| 亚洲熟女性高潮久久久| 波多野结衣先锋影音| 亚洲日韩AV视色| 久久美女国产| 三级网站超变态精品| 台湾佬激情综合| 国产精品黄色三级av| 美中日韩无码| 亚洲综合五月天| 欧美色图成人网一区二区 | 欧美成人四级在线播放| 中文字幕在线日亚州9| 麻豆婷婷成人一二三| 国产久久久久影院老熟女| 东京热天堂网| 人人操人人叉人人插人人| 婷婷色综合| 4虎在线视频| 2023天天操夜夜操| 91女网站| 国产精品日本无码A片| 看日韩美女二区三区免费操逼视频 | 97jingpin| 日本免费人成视频播放120秒| 夜夜嗨一区二区| 国产97在线播放| 亚洲色系另类精品国产| 老师充足的奶水小说| 国产农村妇女精品| 东北女人av| 欧美淫乱视频| 欧美日韩另类在线| 五十路人妻在线| 日韩激情啪啪啪| 久久久九九九九| 91精品亚洲内射孕妇| 久久国产精品一级二级三级| 亚洲精品欧洲色| 首页亚洲国产高跟丝袜诱惑视频| 日韩欧美中文字幕搭讪巨乳美人妻视频| 国产视频一区二区三区在线免费观看 | 国产精品视屏| 99re69| 一区二区高清视频| 在线观看日韩av不卡| 可免费观看的av毛片中日美韩| 午夜婷婷| 97亚洲精品| 淫色网综合| 2019久久久久久久久福利| 久久日本熟妇熟色高清| 大香网伊人久久综合| 久久久久久久国产| 亚洲制服欧美另类内射| 人人操人人摸超碰| 日日夜夜草草草| 国产人伦a片信息免费片| 欧美精品不卡一二三四在线91| 亚洲操人| 精品无码一区二区三区| 中日992视频| 日韩素人无码一区二区三区三州| 欧美久久伊人| 日本一区二区亚洲综合| 色欲色香天天天综合网www-亚洲综合国| 上海一级黄片| 亚洲天堂一区| 日韩av电影网站| 久久思思热| 在线观看一级α片刺激高潮视频| 成人欧美日超碰| 色婷婷狠狠18禁| 91天美免费| 97玖玖人妻| 岛国激情视频软件| 国产成人亚洲精品无| 刺激精品视频| 麻豆天美国美国产| 久9久| 亚洲色图殴美色图激情乱伦| 欧美亚洲中文字幕| 黑丝制服中文字幕| 97精品97久久| 青青草色情网站视频| 91精品91久久久中77777| 日本十八禁免费看污网站| 日韩97在线| 人妻熟女一区二区三区在线| 日韩一999精品| 国产超碰人人操| 色天使亚洲综合在线观看| 男人的天堂VA| 久久9精品网站| 内射中出日韩在线观看视频| 欧亚综合一卡二卡中文字幕| 精品-91人妻子系列| 久久精品国产Aⅴ| 99少妇内射| 蜜桃臀久久| 成年男人的天堂| 久久98| 久久精品店| 亚洲国产91精品一区二区久久| 亚洲天堂自拍| 91女优在线观看| 91+欧美| 欧美在线官网| 国产欧美日韩女同性恋ww喷水精品| 国产资源中文字幕在线| 国产呦精品系列在线观看| 999热日韩精品| 九九九精品一区二区无码| 有码色中文字幕在线观看| 久久精品国产精品亚洲艾通辽熟妇 | 超碰诱惑| 天天色综合影视网| 久久亚州大香蕉| 91最新综合| 欧美在线官网| 97色97好| 神马久久啊啊| 97超碰人操| 国产一区二区三区,在线观看观看 五月开心久久AV官网 | 色婷婷色99国产综合精品| 一级aaaaa欧美中文字幕录像片| 国产女大学生AV| 少妇久久久久久| 91在线视频国产网站| 久久东京热久久| 伊人麻豆传媒| 国产精品久久久 | 欧洲大香蕉| 97在线青| 亚洲性高潮| 中文字幕国产| 男人的天堂一区| 极品色| 午夜国产成人精品视频| 日韩欧美中文| 99久久精品国产高潮| 日韩女模中文造逼| 激情综合97| 素人美腿视频网站| 天天看高清麻豆| 欧美激情久| 久久9免费视频| 日躁天天爽爽| 日韩黄色片子| 强奸乱伦αv片| 18禁网站在线播放| 狠狠狠一区二区三区| 91美腿丝袜在线观看| 国产成人主播| 暴力av在线| AV乱伦国产| 欧美另类综合久久| 久久久影院| 91操人| 精品国产乱码久久久久久蜜臀| 蜜臀久久99精品久久久久久| 午夜福利无毒不卡| 亚洲nv男人的天堂网| 天天爽夜夜欢视| 人人操人人精品影片| 狠狠爱夜夜| 久久久久亚洲熟妇熟女| 99超级碰免费视频| 亚州色图狠狠干| 夜夜免费视频| 欧美中文字幕日韩在线| 色色丁香| 骚人妻少妇视频| 亚洲av性爱电影| 国产a级午夜毛片| 江都AV在线| 97日韩欧美亚洲| 天天影视色香欲综合网小说| 激情婷婷五月天| 中文字幕第23区| 精品天堂| 91狠狠综合久久久久久| 97视频在线观看网站| 亚洲 中文字幕 精品| 成人黑料社久久| 超碰久久草| 久久成年片色大黄全免费网站| 最新国产亚洲精品精品国产亚洲综合| 69综合网| 精品免费一区| 99热在线播放| 丰满欧美放荡少妇在线| 色色香蕉| 九久久精品| se吧提供91精品国产91久久久久久 | 97人妻免费中文字幕| 精品一区二区三区最新| 2020中文字幕在线观看| 婷婷五月激情综合| 亚洲色图欧美| www.丁香五月| 91丝袜人妻| 狠狠操官网| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲天堂久久| 91丝袜人妻| 人人爱人人操人人性| 91艹逼精品| 日韩av免费一级电影| 旡码电影特区| 亚洲欧美日韩偷拍色图| 色综合美国| 东京热毛片177b2viP| www色色色com| 色欧洲| 成人五月香网在线| 欧美男人天堂| 欧美熟女丝袜| 亚欧高清v| 天堂亚洲精品| 麻豆久久久一区二区| 激情一区二区| 久久大线蕉一区| 为用户提供免费看黄网址在线观看| 歐美一級亂黃99在綫精品| 亚洲色人阁| 亚州精人品大香蕉| 国产sv美女内射| 99热99re超碰精品| 操操吧亚洲乱伦视频| 日本五十路在线| 国产91福利小视频在线观看| 亚洲丝袜B诱惑| www国产天美久久久| 91在线精品一区二区三区| 精品人妻一区二区视频| 久久老子无码午夜伦不卡| 人妻少妇久久久| 亚洲最大无码中文字幕网站 | 操淫穴亚洲五月丁香 | 啪啪啪综合网| 久久久少妇| 人妻 欧美 中文| 久久精品国产免费观看99| 天天操妹子| 精品人妻夜夜草| 啪啪啪东京| 国语精品av| 久久久久久久久久久久久久9999| 国产传媒午夜理伦精品| 国产精品高朝久久久久久久| 巨爆乳肉感一区二区三区竹菊影视| 欧美乱伦专区| 国产欧美日产一区二区三区 - 国产欧美日 | 凹凸视频特色日本特黄| 男女做爰猛烈动高潮A片免费应用| 蜜屁Av| 大香网伊人久久综合| 91亚州| 国产精品天干天干综合网麻豆 | 啊a一区在线| 午夜噜噜噜| 欧美日韩精品一区二区三区高清| 精品成人久久久人人亚洲| 国产日本熟女顶级一区二区三区视频| 青青久久手机线视频| 欧美日韩色| 蜜桃丰满熟妇av无码区不卡| 性色avv| 午夜寂寞欧美| 久久免费99精品久久久久久| 日韩熟女精一区二区三区不卡| 99热精品国产| 欧美日韩国第一区| 精品少妇一区二区三区免费观看| 日本一区二区成人在线| 欧美1区二区三区公司| 97欧美视频| 欧美肥臀在线| 欧美线天码中字| 97亚洲欧美日韩| 91在线美女| 蜜臀国产AV中文字幕| av天堂手机版追回| 国产A v无码专区| 午夜.DJ高清在线观看免费7| 极品销魂美女一区二区| 精品国产a∨一区天美传媒| 中文字幕人乱码中文字的预防方法 | 中文字幕免费看| 欧美熟爽综合| 亚洲 图片 欧美 色图| 国产精品久久久三级无码| 性爱Av免费| 97天堂| 亚欧成人一级片在线播放| 日1区2区3区2020| 欧美综合自拍亚洲综合图| 欧美色图 人妻| 久草新免费| 97超级色碰碰| 国产欧美日韩一区二区三区| 国产传媒一区二区三区| 亚洲精品成人激情在线| 99亚亚热| 操逼无码操逼| 天天干人妻视频| 性色av婷婷久久一区二区点复制| 旡码电影特区| 久久原创中文| 欧美亚洲韩国视频十五区| 少妇特黄一区二区三区| 淫纸中9区| 欧美一区二区| 天天综合91| 被窝影院午夜看片无码| 人人潮人人摸| 日本免费一级AAA大片器| 亚洲资源站| 免费试看60秒| 最新av网站在线观看| 中文字幕在线免费观看2| 欧美成97爱| 日日摸日日碰夜夜爽视频| 97伦乱| 啊啊啊久久久视频 | 日韩少妇在线视频| 9久久久久久| 久久久久久97| 嫩草影院在线观看精品 | 蜜区区视频79 | 欧美中文字幕一区 | 99热一区二区三区四区| 欧美日韩国产一区二区小黄片大全| 欧美激情视频在线一区| 你懂得91| 亚洲永久AV无码精品秋霞| 欧美综合777| 精品人妻av区天天看片| 99在线免费公开视频| 五月天黄色激情视频| 亚洲,欧美,春色,另类| 日本女厕偷拍| 91狠狠狠| 嗯啊视频免费在线观看| 狠狠五月天| 97久久免费| 国产97视频| 风流老熟女一区二区三区l| 97久精品| 欧美宗合网| 国产精品无套内谢| 亚洲精品久久久久久久久豆丁网| 欧美综合色综合| 12一15性XXXX粉嫩国产| 成人av动漫在线观看| 欧美最婬乱婬爆婬性视频 | 国产超碰在线一区| julia国产在线| 日韩熟女精一区二区三区不卡| 九九九九亚洲| 亚洲精品美女久久久久久久久| 毛片17S| 中文字幕视频二区| 青青操狠狠撩| 夜夜嗨老熟女AV一区二区三区| 久久大黄片| 婷婷丁香六月| 我爱操| 多毛小伙内射老太婆| 国产精品一区二区在钱播放| 老熟女综合网| 在线v中文字幕一区二区三区 | 日韩78m视频| 操一操摸一摸| 91精品成人www| 日韩欧美亚欧在线视频| 九一综合精品视品av| 国产AB视频| 国产1024在线播放| 色好看av| 国产多人在线观看视频| 美腿丝袜偷拍亚洲欧美| 国产成人拍国产亚洲精品| 极品色社| 最新国产精品| 综合亚洲情色| 在线岛| www.AV有限公司一区| 91看黄片| 大肉棒导航| 人干人人人操人人摸| 夜夜 中文视频rt| 亚洲**2021在线观看| 99热色这里只有精品| 美女91AV| 欧美亚男人的天堂| 日韩在线一区高清在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 欧美性色网| 好吊妞转入那个网| 你懂的在线观看区国产| 天美传媒AV国产在线| 亚洲 欧美 日韩 国产一区二区| 丁香五月天激情网站| 新怡红院| 欧美精品人妻视频| 国产精品噜噜噜日日日| 亚洲视频二区| 亚洲av噜噜噜噜噜噜| 超碰国产精品久| 亚洲男人天堂2019| 尤物国产一区在线观看| 综合久久少妇中文字幕| 日韩一级欧美一级国产一级台湾| 99操视频| 亚洲伊人久久综合97| 夜夜高潮夜夜爽高清视频一| 亚洲 欧美 手机在线观看| 亚洲精品一区中文字幕乱码| AV男人天堂网| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 秋霞视频一区二区| 91中文字幕在线观看| 欧美久久九九| 夂久色| 97亚洲精品| 国产精品一级二级在线| 动漫片子网站3黄| 色97干| 国产精品熟女丝袜一区二区| 中文字幕熟女人妻丝袜| 日日夜夜模| 激情五月天婷婷| 午夜性刺激视频免费观看| 色香伊人| 日本人妻一区二区| 国内外色色色色色成人视频| 日韩亚洲中文字幕在线| 国产精品久久aV| 黄页av| 久久一本大香蕉| 韩国一区二区精品亚洲| 综合自拍| 草草影院日本第一页| 超碰人妻久久| 久久九九精品一区二区 | 99re国产精品视频| av网站在线看| 狠狠操,使劲操| 日韩激情啪啪啪| 亚洲精品日日夜夜52| 欧美日韩操逼嗦吊| AV天堂电影网| 亚洲欧美综合网站| 97亚洲精品| 无码人妻丰满熟妇区毛片| 情色五月天就去干| AV综合中文字幕干| 97超碰天天爱天天爱| 国产亚洲99久久精品| 国产精品经典一卡久久久| 色色国产| 69精品人人人人| 曰韩av中文字幕专区| 婷婷午夜成人色中色| 91国产操逼视频| 91少妇| 日韩在线观看三级电影| 久久欧洲| 人人摸人人添人人操 | 国产精品免费视频人成| 日韩人妻免费精品| 曰韩av中文字幕专区| 国模无码一区二区三区在线| 人人色人人操在线| 久7色| 国产精品天美传媒| 嗯嗯啊啊好疼| avav青青草久久夜| 91高潮| 久草尤物| 粉嫩绯色AV一区二区在线| 色色色色电影网| 欧美综合站| 麻豆福利视频导航| 91AV天美在线视频| 国产区在线| 国产精品久久久久久久久久久久| 亚洲黄色电影| 国产九九九九九九| 欧美性夜| 国内偷自视频区视频综合| 国产一区二区在线电影| 大香樵伊人网| 日本九九久久99| 久久人妻四季| 色婷婷一区二区三区久久午夜成人不| 亚洲色宗合| 97资源视频| 丁香五月影院| 欧美一区二区三区黄色影视| 熟妇色99| 欧美,日韩综合久久| 中文字幕精品一区二区精品| 天天综合影院91| 新怡红院| 亚洲高清无毛一区二区| 99热久| 亚洲素人网| 久9九综合在线| 成人激情无码在线视频| 国产丝袜美女诱惑| 五月天欧美色图| 日韩精品资源专区二区| 久久女人一区二区三区| 99re这里| 亚洲无码太久| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久久久久久99AV无码免费网站| 亚洲中文国际强奸字幕| 第二页中文字幕| 不卡视频一区蜜桃视频| 亚州免费啪啪视频| 免费人人搞97| 国产h小视频在线观看免费| 欧美一区二区观看在线| 麻豆天美传媒在线视频天堂| 欧美亚洲情色| 婷婷综合久久| www.人人摸在线视频| 亚洲黄色a级片| oumeisetupian| 欧美97| 成人贴图日韩欧美| 91N综合网| 久操不卡视频| 丝袜视频网国产90| 日逼国产| 少妇蹲下买菜露大唇0| 一级特级aaaa毛片免费观看 | 人人摸人人舔一区二区| 欧亚性爱在线视频| 久久久18禁| 7777奇米影视久久| 综合网欧| 免费一级特黄特色大片在线观看看 | 久久久久久97| 国产二区三区粉嫩在线| 日韩激情小说一区二区| 2019亚洲男人天堂| 情色日播放AV| 99re这里只有精品3| 97亚洲欧美日韩| 日韩av乱伦| 黄片色区软件| 亚洲精品中文字幕一区在线视频 | 一本色道久久天天射天天干| 激情露脸爱| 91欧美亚洲| 狠狠躁AV| 午夜亚洲国产理论秋霞| 国产日韩区| 一区二区三区在线资源| 激情小说亚洲色图| 欧美少妇内射| 国产成人一级av88| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 欧美色图 色综合图| 收看日本人日bb| 精品国产乱子伦一区二区三区,精品一| 亚洲一二三四区| 97碰| 久久黄色网址| 精品熟女呻吟久久91| 91女优在线观看| 少妇激情AV| 99re视频这里只有精品| 欧美日本中字另类在线| 久久久久久久国产| 91劲爆| 亚洲18禁| 大香蕉一区二区在线观看.| 防屏蔽在线视频| 亚洲在线观看| 草草网站影院白丝内射| 亚洲自拍欧美国产首页网曝| 久久受www免费人成| 麻豆伊人网| 亚洲无码超碰免费| 人人噜夜夜操| 日韩人体偷拍| 色黄色美女大长腿午夜视频| 蜜臀99久| 亚洲综合一| 激情五月婷婷综合| 久综合国内精品自在自线| 乱色老一区二区三区的观看方式| 久热99| 97超碰人人操人人操| 97超碰巨乳| 五月综合激情| 五月综合婷婷久久网站| 青娱乐休闲视频在线观看| 久久久久中出| www.久久| 久久精品国产亚洲AV无码电影| 亚洲黑人在线| 91综合天天看| 大香蕉欧美国产日韩高潮| 亚州国产精品乱| 在线播放免费av福利片| 大色综合| 欧美写真视频一区| 99热日| 今日头条成人一区二区三区四虎精品| 免费看黄视频亚洲网站| 日韩欧美中文字亚洲慕| 国际精品久久久| 久久97| 国产精品无套内谢| 久 久无码人妻AV| 久久久久久中文字幕中文字幕最新| 日韩人妻少妇中文字幕| 中 文字幕一区二区三四 五 区日 日 骚| 99人人干| www.色操逼| 老司机深夜影院18未满| 翔田千里无码一区| 懂色AV一区二区三区| 粉嫩绯色AV一区二区在线| 囯戸精品高潮呻吟旡码| 青娱乐老司机视频| 五月丁香综合| 六六久久日韩不卡| 男人把坤坤插入女人的下体| 亚洲 欧美 第一页| 亚洲超碰97| 欧美在线官网| 日韩欧美亚洲自拍偷拍| 国精精品无码一二三区水多多| 国产成人亚洲精品无码古代早漏男| A片 AV一级在线播放观看免费| 欧美亚洲综合色| 欧美激情久| 天天看天天日天天操| 亚洲精品无码成人久久久99| 九月丁香婷婷色| 人妻另类 专区 欧美 制服| 亚洲熟女性高潮久久久| 日本高清加勒比| 97人人模人人爽人人| 黄色人人| 伊人91| 97色97好| 大鸡巴久久久| 欧亚日韩三区| 日韩97视频| 我想要啊 啊 啊| 91啦人妻| 一本大道不卡一二三区| 亚洲āv网址在线观看| 亚洲素人综合| 精品久久久久9999| 欧美亚洲20p| 香蕉久久精品| 国产AV人人 夜夜人人澡| 精品91摸| 看日韩美女二区三区免费操逼视频| 91亚洲色人| 97超碰中文在线| 伊人午夜福利视频| 久久综合久久综合人久久夜精品| 人妻少妇久久久| 欧美97av| 国产理论视频在线播放| 日韩影片中文字幕一区二区三区| …亚洲黄色厕厕女女在线播…| 97欧美精品| se吧提供国产乱老熟视频胖女人| 91亚洲狠狠色| 九一综合网| 91黑丝操| 伊人一区二区三区| 久久久久久无码人妻中文字幕| 国产精品com| 国色天香av| 97一区二区三区视频| 欧美天天综| 国产女人9999| 亚洲欧美97| 美女黄色91| 天天插夜夜操| 熟女一区二区三区四区| 玖玖综合网| 日本潮催一卡操| 男女日B国产| 少妇色欲综合网2| 97国产精品久久久久| 午夜欧美精品久久久| 九九九精品色乱九九九| 精品久久久av无码免费| 婷婷另类小说| 国产一区二区在线看| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 亚洲 欧美 小说| 玖玖爱影院| 另类av综合久久| www.91理论| 日本大香蕉综合网| 久久亚洲不卡一区二区三区 | 尤物视频新赏网鲜网色诱网| 色五月大香蕉| 1级黄色夫妻对换性交免费看| 另类 综合 日韩 欧美 亚洲| 天天色综合天天操| 日韩少妇无码| 91亚.色| 色噜噜人妻av 中文字幕| 精品人妻av在线播放| 亚洲狠| 玖玖大干人妻| 日日黄色三级网站| 久久婷婷影院| 日韩久久.一级黄色片| 狠狠图片青青草| 久久久艹艹艹| 91精品久久久久久综合五月天| 操逼视频色| 久操国产在线| 国产精品一区二区麻豆| 国产夫妻一区二区| 精品妇女一区二区三区| 免费综合亚洲中文| 国产精品久久久久久照片| 97国产精品一区二区传媒公司| 中文字幕人乱码中文字的预防方法| 天天色播| 天天综合色电影| 激情综合五| 色婷婷久久| 国产成人免费观看在线视频| 无码免费在线观看黄色片| 国产亚洲色婷婷久久99精品91 - 百度| 一卡二卡在线播放| 麻豆婷婷成人一二三| 色噜噜人妻丝袜AV资源| 婷婷综合五月天| 欧美少妇熟女| 丝袜美腿制服人妻二区中文字幕| 欧美色性爱| 日本性爱欧美性爱| 精品黑人一区二区| 婷婷色色五月天| 欧美一二三区四五区| 夜夜嗨绯色| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 男人成人黄色视频在线观看免费下载| av午夜玫瑰| 伦理日韩国产久久| 国产麻豆91欧美一区二区久久婷婷国产精品| 大屁股熟女一区二区三区| 日韩人人精品| 国产精品久久久久久久久久久久久久吹 | 色五月婷婷五月天| 91精品电影18| 青青操网| 欧美精品人妻视频| 亚洲欧美日韩制服另类| 一区二区三区四区久久视1| 人妻一二三区| 96国产精品| 亚洲综合小视频小说在线观看| 狠狠操官网| 嗯,啊。舔我逼| 99re热有精品视频国产| 国产欧美日韩女同性恋ww喷水精品| 欧美淫乱视频| 日本性交操一区二区不卡系列| 97香蕉碰碰人妻国产欧美| 97超碰资源网| 日本色色色视频| 91路www| 欧美天天搞| 国产精品人妻熟女aⅴ| 熟女乱伦二区| 色香伊人| 性色av蜜臀av色欲aV| 无码伊人久久大杳蕉中文无码| 三级日韩一区二区三区| 97人人操人人摸人人爱| 色香色欲天天综合网天天来吧| 日本A级视频| 四虎影视国产精品| 97亚洲中文| 欧美九九99久久精品| 亚洲无套久久嗯嗯| 伊人丁香五月婷婷| 伊人久久婷婷| 久久久熟女一区| 亚洲欧洲中文日韩女优乱码| 国产精品熟女丝袜一区二区| 2024人人操人人摸| 九七毛片九九毛片| 久久国产熟女影院| 男人的天堂.com| 国产探花日韩援交| 99爱爱| 久草老司机| av在线一区二区三区| 亚洲操人| 在线天堂资源亚洲| 一区二区三区 日韩欧美| 九九热超碰97亚洲最新香蕉| 欧美亚洲中文| 成人 日本A片无码8888| 自拍视频大全亚洲专媒视频/一区二区三区| 五月天婷婷社区| 99久久婷婷国产综合精品草原| 亚洲区小说| 色婷婷亚洲婷婷| 老司机香蕉| 亚洲18禁| 精品无码一区二区三区| 天天享受天天看| 性videos欧美熟妇hdx| 欧美少妇第一页| 无码久久亚洲高清,| Av色五月| 密乳AV免费观看| 久久噜噜噜精品国产亚洲综合| 无码乱人伦中文视频| AV久日| 色婷婷丁香五月| 中文乱码字幕观看| 国产精品色哟哟| 香蕉综合网| 国内偷自视频区视频综合| 97超色| 性爱乱伦一区| 日本精品中文字幕视频| 伊人aaa| 亚洲综合成人网| 色吧91| 碰超人人在线一区二区三区| 99热99色| 亚洲男人久久综合天堂| 91老熟女91老女人| 人妻在线臀日韩| 亚洲另类在线观看| 欧美另类综合久久| 国产一进一出视频网站| av亚欧| 人妻欧美| 91成人亚洲色图| 亚洲一二三| 国产成人无码久久精品| 欧美一区二区亚洲天堂| 精品视频免费在线一区| 干b网| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 欧美日韩情色一区二区| 中文字幕精品资源在线| 最新中文字幕在线亚洲| 综合av社区| 国内精品嫩模A∨私拍小视频| 网友自拍第1页| 国产精品另类| 嗯嗯啊啊啊好爽| 日韩人妻无码不卡网站| 超碰人人干天天射| 人妻色偷色噜| 天天久久久久久| 97精品一区| 91亚洲图片| 久久少妇| 美女操逼A A| 中文字幕交换人妻| 亚洲精品a人片在线观看视| av无码av无码专区| 人人人人人人少妇| 国产人妻精品久久久一区二区三区 | 99久久e免费热视| 国产在线精品偷| 大香蕉国产中文自拍| 啊v在线观看视频| 多乙久久久久久| 日日黄色三级网站| 中文字幕一区二区三区字幕| 久久精品人体AV| 欧美激情激情xxxx欧美专区| 操逼视频亚洲| 亚洲 综合 欧美| 97鸡把在线视频| 日韩人妻有码免费视频| 日韩AV片| 91亚洲狠狠色| 久久男人精品| 国产视频一区二区在线观看| 亚洲色图 综合| 秋霞免费无码视频日韩A片| 国产福利第一视频| 美国久久一二三四| 91综合网站| 啪啪视频亚洲第一| 91丨九色丨熟女高潮| 狠狠干综合| 97少妇人妻中文字幕久久| 欧美性爱精品七区| 天天射影院| 后入式五六区| 国产偷拍自拍在线视频| 婷婷色香| 国产精品一区午夜福利| 秋霞男人网| 亚洲午夜精品久久久中文影院| 日韩欧美aⅴ综合网站发布| 青青草原狼av| 人人搞人人插人人操| 国产精品小视频一区二区三区| 97综合激情| 婷婷亚洲综合| 日产精品久久久一区二区| 婷婷综合| 天美传媒AV在线播放| 啊啊啊啊啊在线观看网址 | 日韩免费一级性爱视频| 老熟女乱子伦中文字幕一区二区 | 青青草在线成人视频| 亚洲毛片基地专区| 国产午夜福利视频在线| 中文色综合| 67914在线兔费成人视频| 立川理惠加勒比无码| 国产精品久久久久久久久久久久久久| 精品婷婷| 成人性生活高清视频在线播放| 99色视频| 久久精品人人做人人看| 久久精彩视频9| 操逼网站视频漫画国产| 天天日天天操天天射河南省| 西西美女视频网| 久久综合国产精品国产| 午夜美女诱惑电源网| 美女91在线观看| 极品极品色影院| 国产精品久久久无码aV去| 色97欧美| 97免费视频网| 男女性感激情网站| 九草九九九| 黄污污污污| 精品国产精品一区二区| 男人女人18禁片免费看网站| 97国产精选| 色拍偷亚洲| 蜜桃视频一区二区三区| 97爱欧美| 97色欧州| 国模限制级电影| 婷婷五月天成人网| 99国产精品人妻人伦| 在线97在线| 欧美97超碰| 日本一区二区三区免费观看| 中文字幕在线免费观看 | 亚洲 欧美 小说| 人人操人人狠狠操| 日韩精品三区四区| 国产亚洲色婷婷久久99精品91| 亚洲成?V人片在线观看福利| 一区二区三区视频国产免费| 情趣丝袜无码操逼视频| 午夜精品久久一区二区| 97超碰站| 日韩性爱啪啪视频| 精品人妻视频入口| 狠狠中文字幕| 无套内射人妻在线播放| 久久亚洲欧美中文字幕国语 | 搡老熟女免费视频| 国产野战露脸在线播放| 中文字幕一区二区在线日韩精品| 加勒比海色香蕉婷婷| 五月天久久综合网| 天天色,天天干,天天干| 亚洲成A∨人影院在线欢看| 久久久夜夜嗨免费视频| 欧美激情五月天| 神马久久69| 999久久芭蕾| 中国农村熟妇毛片视频| 性爱乱伦网址| 国产网站在线播放| 天天综合精品| 99999这里都精品| 97视频在线播放| 84YTCOM性无码| 中文字幕精品区先锋资源| 91在线美女| 国产日韩美女小穴视频网站不卡| 日韩97| 天天色综合图片| 精吧天堂| 成人小说另类在线| 亚洲av无码成人精品国产| AV99热18这里只有精品| 诱惑网综合| 天综合网| 九99久久| 亚洲 欧美 手机在线观看| 伊人色综合超碰| 嗯~啊~轻一点 视频| 国产精品嫩草影院午夜两性| 51久久夜色精品国产麻豆| 亚洲无码一区成人免费午夜| 国产不卡免费在线视频| 久久內射| 9色国产精品一区粉嫩 | 男人天堂2030| 亚洲综合中文字幕有码| 天天综合网入口~91| 96超碰网| 玖玖综合.com| 中国农村熟妇毛片视频| 欧美日日夜夜| 青娱乐欧美激情一区二区| 一个人在线看的黄色电影网站| 超碰精品日韩欧美国产| 免费的av网| 精品久久久久久中文| 亚洲欧美在线综合| 家庭乱伦国产| 9久精品视频在线观看| 萌白酱自拍视频| 久久妇| 国产 码在线成人网站| 好爽视频在线观看视频| 婷婷色香| 美女国产一区二区久久| 97 国产精品| 国产乱伦一二三区| 美女网站91| 久热久| 99∨VTV| A 在线网址| 97 国产精品| 亚欧中文字幕在线视频| 国产剧情AV不卡在线观看| 人人摸人人入| 天美传媒精品一区二区三区|