国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成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强热人妻| 日韩精品三区四区| 亚洲美女精品九九视频| 91高跟美女在线播放| 亚洲高清国产理伦片| 清纯唯美第一页| 国产白领连续中出在线观看| 日韩不卡在线一区二区| 成人小说另类在线| 五月天婷婷社区| 五毛骚逼极品美女怕怕| 成人网欧美风情| 婷婷五月天成人网| 免费的黄片wwwwww| 日韩AV无码中文一区二区| 欧美性色网| 国产精品久久久久9999小说| 亚洲色情在线影视| 91少妇通奸网站| 欧美精品偷拍| 久久久久久少妇| 欧美精品 - 91爱爱| 日日操夜夜操天天操免费观看麻豆| 激情综合网五月婷婷| 婷婷五月天基地| 神马午夜久久| 99re公开精品免费视频| 久久人妻一区二区三区高清 | 黄骗免费| 久插综合| 国产精品麻豆免费视频| 久99久视频精选| 精品国产乱码久久久久久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 人人搞人人插人人操| 18禁的网站在线| 男人久久精品| 激情无码日韩| 97在线青| 欧美性爱系列| 亚洲中文字幕熟女| 亚洲精品视频在线播放| 久久久久成人网| 99久久综合| 97欧美日韩| 欧美白嫩女HD| 韩国轻伦国内自拍一区| 人人爱夜夜爱| 五月丁香婷婷综合| 少妇高潮对白在线观看| 精品人妻少妇| 欧美色色人| 亚洲欧美天堂在线| 91东北熟女| 精品少妇人妻一区二区三区| 啪啪视频mP4| 婬女免费一二三区A片| 免费观看一区| 久久久精品无码亚免费| 99精彩视频| 亚洲情色一区二区三区| 久草免费福利在线播放| 99热这里是精品| 91国产丝袜白虎| 国产精品不卡高清在线观看| 超碰激情808| 啊啊啊啊操死我| 2011国产精品| 亚洲AV麻豆Aⅴ无码电影一 | 超碰97人人乐| 国产一级αv免费看片| 青青草日韩免费观看高清在线| 亚洲自拍天堂| 中文字幕av片| 91国产大片| 亚洲欧美黄| 国产suv精品一区二区四| 人人操人人摸人人骑| 欧美色91| 色网综合网| 夜夜福利| 成人AV素股で擦久久| 国产传媒日韩| 999熟女精品| 亚洲色天堂日韩中| 一区二区三区黄色片a| 柠檬AV导航| 欧美aaaaaaa| 超碰97爽| 探花熟女,姿勢到位,體驗感也到位| 亚洲有码 视频一区| 9丨久久九九九| 长长久久免费视频| 日韩欧无码一区二区三区免费不卡| 国产精品久久久久久久毛片1| 国产嫩草精品A88AV在线| 日韩精品熟妇| 男人兔费天堂| 中文字幕AV乱伦| 97视频网站| 91成人无码| 国产精品福利视频播放| 超碰在线日韩一区| 天美传媒婬乱在| 99中文字幕| 99e久久国产精品| 秋霞免费无码视频日韩A片| 精品人妻免费观看| 中文字幕三四五区| 成人在线日韩| 日本久久999| 欧美,亚洲,日韩,v,天堂,手机在线观看| 99热亚洲| 国产人妻精品久久久一区二区三区| 超碰久草| 青青草一区二区高清无码视频| 人妻乱仑一区二区三区| 久久久不卡区一区二区三区久久久| 国产精品美女视频诱惑| 亚洲国产精品无码AV在线| 吉川爱美98堂在线| 超碰三级秋霞| 美女主播色欲91抠b在线播放| 天天干,夜夜爽| 久久人妻四季| 天天色黄色影院天天操| 亚洲性猛交| 精品女同一区二区三区| 狠狠爱综合网| 少妇精品久久| 亚洲五月丁香花狠狠干一区二区三区 | 97精品一区| 黄色AAAAAAAAAAA大片| 91neishe| 欧美成人性爱视频在线播放| 91色噜噜狠狠| 成人小说视频在线精品欧美| 96免费视频在线| 老子午夜伦不卡影院| 婷婷五月天久久精品视频一区二区三区 | 亚洲中文人妻色| 精品无码欧美三级| 99青青草国产视频| 日本色色色网站免费看不卡| 国产精品情侣啪啪| 国产高清视频无码在线| 精品九九九九九九九| 综合久久99| 少妇久久久免费| 91精品啪在线观看国产城中村| 亚洲日韩XXX| 无码精品蜜桃一区二区三区ww| 人妻激情偷乱视频一区二区三区 | 男女91| 综合97| 亚洲AV资源| 美女操逼A A| 欧洲精品人妻| 91热爆在线| 亚洲中文字幕一区二区| 天天摸夜夜摸| 黄页视频网站野外| 97Ai亚洲| 老司机免费视频在线91| 日欧操屄视频| 爱妃国产亚洲视频中文字幕| 欧美青青视频| 麻豆精品久久久久久久| 夜夜操美女| 久久亚洲日韩国产欧| 亚洲色五月| 五月丁香黄色网| 欧美三级免费伊人| 操逼视频免费日韩无码| 中文久久| 91蜜桃传媒精品久久久一区二区| 6080yy午夜理论三级一区二区三区无码| 91网九色蝌蚪操熟女| 熟女露脸激情自拍视频| 九一综合精品视品av| 蜜臀AV成人精品蜜臀| 美女极品一区二区三区| 日韩免费a级毛片无码a∨| 国产欧洲精品亚洲午夜拍精品| 可以免费观看的AV| 婷婷中文网| 岛国爱情动作片在国产AV无码专区亚洲AV漫画 | 少妇三P| 一起草av| 黄网色一区二区三区四区精品| 九九九网站| 中国熟女91| 日韩不卡码| 98一区二区精品| 亚洲AV噜噜狠狠网址蜜桃动漫| 精…码一二三区| 嫩草黄页| 无码人妻系列少妇| 91精品免费| 偷拍超碰| 青青爽| 国产99 中文字幕日韩小视频| 啊啊啊好疼| 一道本东京热加勒比一区二区三区| 日韩不卡毛片Av免费高清| 操逼逼一区视频| 综合第一页| AV天堂国产| 日少妇亚洲版| 97AV爱| 国产av高清版| 人人操AV| 91色黑人少妇| 人人操天天爽| 性色中出| 日本 免费 一区二区三区 久久香蕉| 麻豆天美国美国产AV| 不卡免费av在线播放| 久久精品久久九九精品| xxx0国产在线播放| 日韩AC| 人人爱人人操人人性| 国产性久久久| 99热这里只有精品8| 免費黃色視頻觀看一| 亚洲砖码砖专无区2023| 亚洲精品日韩国产欧美| 92福利社视频| 超碰在线974| 台湾肥佬网一区二区三区| 亚洲91色在线| 亚州色图片在线色| 超碰在线在公开超碰在线在公开| 欧美性五月| 日韩电影天堂视频一区二区| 91n免费处女| 死我十八禁| 99超碰碰| 性无码专区2020| 极品欧美一区二区三区| 国产乱伦亚洲| 俺去俺来也在线www| 亚洲欧洲国产综合av| 强奸xx国产| 综合熟女| 爱欲AV| 热天堂一区二区| 欧美亚洲综合色| 毛片17S| 自拍视频大全亚洲专媒视频/一区二区三区 | ai欧美亚洲小说| 屁股久久久久久久久| 加勒比性爱成人在线| 久久久青青草| 尤物视频一区| 日韩性爱网址| 中文字幕天天天天天| 后入式视频国产自| 欧美天堂在线| 以及麻豆国产入口在线观看免费| 岛国激情视频在线观看| 超碰资源亚洲97| 久久综合女优| 中文字幕人乱码中文字的预防方法 | 欧美亚洲首页| 日韩人妻有码免费视频| 超碰精品在线| 欧美熟妇亚洲版| 性生活性生大爱77AV国产| 丝袜美腿av女优在线| 久久久久免费看少妇A片特黄| 成年女人黄网站| 欧美少妇熟女| 97青娱乐超碰久久| 欧洲精品一级二级精品综合视频综合| 中国国国产一级特黄毛片| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 秋霞一区二区三区四区五区六区七区| 蜜臀99久久国产| 日韩欧美操逼xxx| 色色国产| 很黄很色的视频在线观看| 天天插天天干| 强乱老妇中文字幕| 国产欧美日韩在线不卡第一页 | 婷婷激情五月综合| 欧美日韩国产三级黄色| 一二三四视频在线社区中文字幕| 久久久新亚洲AV| 婷婷激情四射| 激情文学亚洲| 911粉嫩人妻| 欧美夜色| 超碰成人公开| 久久久精品视频欧州站| 99re热有精品视频国产| 二对二中文字幕。| 久久产精品一区二区三区电影| 99自拍视频在线| 美女网站黄页| 国产不卡免费在线视频| 操亚州| 国产无码久久高清| 欧美精品偷拍| 狠狠中文字幕| 另类图片五月天| 手机在线人成免费视频| AV色五月天| 亚洲一卡二卡在线免费| 99九九久久| 大香蕉视频一二三区| 欧美少妇内射| 在线一道啪| 久久久专区| 亚洲一级性爱视频免费看| yazhousetuoumei| 人人模人人看| www.AV有限公司一区| 伊人久久综合影院精品久久久| 热天堂一区二区| 欧美操人视频| 欧美日韩国产人人| 久草免费在线一区二区| 综合亚洲网| 五月婷婷六月丁香| 亚洲天堂男人天堂| 蜜桃久久精品一区二区三区| 国内毛片国产专区二| 超碰吊日色| 免费在线观看国内色片网站网址| 亚洲清纯综合| 夜夜爽妓女| 亚洲第一精品在线视频| 97 国产精品| 91校园春色长篇| 日B操| 综合视频91| 午夜久久无码1000合集| 91爱啪| 狠狠干精品一二三四五六2022| 欧美日韩黄片精品在线| 日韩电影中文字幕| 欧美永久激情一区二区| 日亚韩精品视频二区三| Sekablack无码一区| 亚洲资源网| 亚洲天堂,男人| 在线观看高清AV| 91综合天天看| 女人的天堂大香蕉网| 欧美日产国产在线成人第一区| 91精品少妇搡搡搡| 日日日啊啊啊| 91久久久久久| 国产精品69人妻无码久久久| 人人妻人人爽| 色狠狠一区二区三区香蕉| 久久伊人网视频一区二区三区 | 日韩钢筋无码高清啾啾啾| 91精品伊人久久久大香线蕉91| 国产精品久久久久久久久久久久久久| 欧美性爱一区二区三区四区| 天天综合网国产| 青娱乐国产精品| 少妇久久| 后入国产| 欧美综合亚洲| 91欧美性| 刺激精品视频| 天天夜夜久久| 97国产精品国| 色情五月丁香| 韩国手机不卡无码三级视频| yazhououmeizongya| 91国产美女丝袜足交精品视频| 婷婷丁香五月综合| 九九色色| 五月婷婷久久综合| 久久精品性| 欧美大香蕉专区网| 美国aaaaa一级黄片| jizz啪啪| A片大香蕉在线| 无码人妻一区二区三区免费九色| 2017天天操天天日| 91N综合网在线| 91狠婷| 亚洲暴力强奸AV| 亚洲视频1区| 亚洲āv网址在线观看| 亚洲熟妇A V黑人| 男人的天堂三级| 日韩精品怡红院| 97超碰免费人人性爱| 免费的av网| 天天日老熟妇| 四月丁香婷婷| AV天堂电影网| 青青伊人久久| 色综合超碰超| 怡红院成人视频| 国模91| 久久后入制服| 久久久久国色αv免费观看| 正宗无毛一线天嫩逼| 蜜桃香蕉久草精品在线| 噜噜瑟| 中文字幕视频在线观看| 久草加勒比一区在线| 久草加勒比一区在线| 激情综合网激情综合| 亚洲欧美日韩免费观看| 亚欧成人综合影院| 久操不卡视频| 国产剧情一区在线观看| 亚洲激情色片| 亚洲欧美激情小说| 亚洲三级。日韩三级| 91无码精品| 夜夜嗨视频| 日本人妻中文字幕精品| 操逼视频免费日韩无码| 一区二区三区在线资源| 国模不卡一本二本三电影| 亚洲有码第一页| 久久精品中文字幕无码l| 综合操逼| 国产伦精品一区二区三区视频女| 青青草黑寡妇男人天堂| 欧美丰满少妇交换91欧美精品| 一二三区精品视频| 免费簧片在线观看| 丁香五月成人| 性色高清..……| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 欧美国产精品| 五月婷婷激情| 97久久国产亚洲精品超碰热| 无码人妻毛片丰满熟妇精品区| 97视频免费播放| 无遮挡一级毛片视频免费的| 五月激情小说| 一二三四视频在线社区中文字幕| 天天综合-91入口| 亚洲 自拍偷拍 欧美| 婷婷午夜| 蜜桃臀AV在线| 2017人人操,人人摸| 99热这里是精品| 精品九九九九九九九九九| 男人综合网| 92午夜免费福利视频| 国产欧美精品日韩区二区麻豆天美| 欧美日韩精品久久| 国产激情视频一区区三区| 日本激情免费大片| 欧美激情久| 精品国产乱码久久| 国产视频不卡在线观看| 日韩AV电影网站| 久久精品国产久精国产| 国产福利电影| 久久欧美1卡2卡3| 精品国产乱码久久久久久久| 国产Aα| 久久精品一区| 尤物网站91| 欧美在线视频99| 国产熟女高潮一区二区三区| 青娱乐亚洲自拍| 婷婷激情一区二区三区俺也去| 蜜桃久久一区| 91久久99久久91熟女精品| 好屌色综合| a男人的天堂久久一级A毛片| 美女露胸露尿口| 97超碰欧美精品| 丁香六月婷婷综合| 亚洲一区二区av| 强奸乱亚洲| 国产97在线播放| www成人啪啪18秘 免费| 一区二区三区色综合| 成人无遮挡毛片免费看| 日韩精品第3页| 91av熟女人妻| 天天日天天操VV| 久操网视频| A男人的天堂| 无码WWW免费视频网站| 亚洲骚女一区二区三区| 少妇天堂| 国产精品乱人伊人网| 国产熟女一区二区| 久久婷婷色| 78超碰| 国产人妻精品久久久一区二区三区 | 99re99视频在线免费观看| 波多野结衣AV无码一区| 欧美综合 站| 免费看A片毛毛片在线播| AV男人天堂网| 95人妻爽爽人人做人人澡| 在线二区不卡| 美腿丝袜偷拍亚洲欧美| 国产强上视频在线观看| 国产丝袜啪啪| 一区二区三区四区姦女| 男人a天堂手机在线版| 九九九九97| 国产亚洲人妻综合日韩 久久| …亚洲黄色厕厕女女在线播…| 操香逼| 中文字幕亚洲永久精品| 大乔未久88一区| 91一起操| 牛牛操视频逼| 麻豆尤物视频网| 91jk色拍| 99无码视频| 精品蜜乳AV免费观看| 国产丸一视频| 丝袜色综合| 女人天堂av在线播放| 天天综合~91入口| 啊啊啊啊操死我了| 日韩亚洲美女一区久久| 一本大道不卡一二三区| 丰满人妻一区二区三区色-百度| 天天日日日射| 精品国产片亚洲一区| 在线视频亚洲无码| 久久久久久九九九九九| 九九九九九九九九九五码| 国产原创自拍| 久久AV无码网址| 日产操逼| 国产深喉视频一区二区| 中文熟女五十乱码在线| 日韩美女久久一区二区三区| 国产伦乱91| 国产福利电影| 人妻少妇精品| 国产97色在线 | 亚洲| 热热热热日日漂亮永久永久国产日| 久久久久婷婷| 艹比视频国产精品| 影音先锋日本一区二区| 欧美亚洲情色| 久久久精精精| 综合亚州欧美| 国产后入内射| 欧美少妇高潮久久91| 日本久久久久久久久| 久久久久久久久成人av解说| 97在线精品观看视频| 久久久久九九九| 蜜臀99久久国产| 中文字幕精品三级久久久| 91撸色网 玖玖网 欧美| 啊啊啊啊啊操我视频| 亚洲日本加勒比在线| 熟女突然公开看18禁影片| A片大香蕉在线| 综合网 欧美| 黄页av| 97久操| 丝袜美腿91| 精品欧美日韩在线观看| 欧美,亚洲,日韩,v,天堂,手机在线观看| 日夜精品| 噜噜瑟| 色婷婷日韩精品一区二区三区 | 中文字幕乱亚洲美女精品一区| 99黄页网站| 久日综合网| 加勒比伊人影院| 久久婷婷欧美| 天操天操夜操夜月操月年年操操| 色婷婷一区二区三区久久午夜成人不| 91碰碰| 亚洲图片偷拍欧美| 青青操在线视频| 精品人妻丰满熟妇一区二区三| 嗯嗯啊啊啊好爽| 外站AV在线| 97精品一区二区视频| 国产丝袜欧美在线视频| 国产精品女生av| 懂色中文一区二区三区 | 成人欧美一区二区三区黑人一| 99ri在线视频| 精品久久久av| 秋霞鲁丝午夜无码一区二区三| 天美一二三在线观看Av| 久久国产精品一级二级三级| 超碰性爱97| 使劲用力艹少妇视频一区二区| 天天操天天7| 午夜操一视频一区| 乱欲视频| 一本一道vs波多野结衣| 五月婷久久| 日本一区二区三区精品| 日韩精品人妻中文字有码在线 | 一二三四视频中文字幕在线看| 亚州免费啪啪视频| 综合熟女| 一牛一区二区三区久久| 久久精品国产精品| 欧美成人精品一区| 欧美人与动性人交a| 日本狂喷奶水在线播放212| 黑人精品成人一区二区三区| 大香蕉AV丝袜| 色777999综合| 98人妻精品一区二区色欲| 婷婷激情五月天小说网| 九九热免费国产视频婷婷伊人五月| 久久欧洲| 成人性交免费视频| 国语国产操逼伊人AV网| 一区二区三区 丝袜 高跟 美腿| baiduhicn.com。| 九9热伊人| 中文有码9| www亚洲免费| 日韩啪啪啪啪啪| 精品二999| 天天躁日日躁狠狠躁| 欧美极度丰满熟妇hd| 超碰色中文| 欧美丝袜中文字幕07在线| 乱欲一区二区| 欧美大香蕉97| 亚洲久久久久| 激情综合五月| Julia Annxxxxx| 久久久久久亚洲Av无码精| 91狠狠色丁香婷婷综合久久| 日本久久999| 香港澳门日本三级网站| 六九九九| 中国和日本人色哪个不下载能放| 可以在线观看AV的网站| 97资源欧美| 91欧美经典| ?亚洲伊人伊成久久人综合网| 久久产精品一区二区三区电影| 成人性爱电影一区二区| 偷拍片久久| 成人激情无码在线视频| 密臀AV在线| 91美女视频| 熟女啪啪视频| 欧美99999| 加勒比在线视频| 超碰97 线线 在现| 伊人成人中文字幕久久网| 深夜激情| 99在线免费观看| 国产又粗又长又大的视频| 大香蕉乱伦视频网| 91亚洲最新在线| 九九黄色网| 中文字幕第2页| 偷看洗澡一二三区美女| 天天摸夜夜操视频| 日逼国产| 久久久久久久久久久精| 91色婷婷综合久久中文字幕二区| 91精品操美女| 99久久综合| 久久免费少妇| 第45页一区二区| 无码区蜜乳| 加勒比人妻综合| 在线国产一区二区av| 91精品在线播放| 思思热在线| 亚洲学生妹高清av| 日本A级视频| 视频在线观看免费一区二区三区| 嗯嗯啊啊好大好爽| 深田咏美亚洲精品福利社| 久久久久久十| 日韩伦理视频| 狠狠中文字幕| 欧美综合色站| AAAAAAAAA黄片| 九九九九一区| 91亚洲不卡一区| 色综合久久av| 香蕉国产97| 日韩三四五区| 欧美成人A天堂片在线观看| 91精品操美女| 久久发布国产伦子伦精品| 强奸乱伦AV一天堂网| 中文一区在线日| 丁香六月啪| 欧美性爽xyxOOOO| 欧美色日| 欧美日韩人人精品| 91小视频| 黑人娇小av在线播放 | 亚洲 小说 欧美 激情 另类| 色偷偷男人的天堂麻豆| 欧美色棕合| 国产操逼逼网| www国产无码| 日韩av电影网站| 久久久久久夜夜夜夜夜| 日韩欧美中文| 99热伊人| 成人天天爽| 日韩美女久久一区二区三区| 蜜乳AV一区二区三区四| 在线视频 亚洲精品| 国产AB视频| 天天综合有色网| 亚洲成av人片色午夜乱码| 性夜影院爽黄A爽免费动漫| 乱操9999| 330dv亚洲成年视频网| 女色视频社区| 熟女六十路| 日韩精品人妻| 亚洲另类色综合网站| 欧美后入视频| 高清不卡视频| 五月婷婷基地| 91人妻素女| 成人av性爱电影在线观看| 午夜精品久久久久久久久久久久久| 久久久九精品| 啊啊啊啊啊好大好舒服想要| 男人天堂.AB| 91久久久久免| 久久99精品视频| 麻豆伊人网| 91国产精品熟女| 五月天激情小说| 蜜乳性色无码专日粉嫩骚逼AV| 色爱亚洲| 亚洲综合射| 999综合色| 国模不卡一本二本三电影| 偷拍欧美综合| 久热伊人99re| 日韩精品一区二区三区四虎影视| 色婷网| 亚洲中文一区二区三区视频| 中文字幕一区二区日韩网| 日韩精品在线放| 精品三级在线专区| 精品无码一区二区三区| jizz啪啪| 亚洲日本激情| 免费自拍三级综合| 亚洲国产尤物yw在线观看| 亚洲人妻久久| 日韩欧美久久婷婷网站| 97视频一区| 国产精品久久泡妞网站| 亚欧洲日韩国产精品| 992视频一区| 午夜毛片亚洲精品片国产久久久| 久久粉色| 91综合在线| 无码人妻一区二区三区色欲aⅴ| 亚洲久久久久| 午夜啪| 女同女同恋久久级三级| 天天看天天在线精品| av在线免费一区二区| 樱花蜜乳av| 国产久久av| 亚洲天堂99| 啊…啊…操我用力操我| 黄页大片在线观看| 日日黄色三级网站| 国产乱青青草久久| 中文字幕一区二区三区四五区| 夜夜爽夜夜操| 操操逼视频| 全球成人中文在线| 丝袜 亚洲 偷拍| 亚洲精品一二三四区| 亚洲综合小视频小说在线观看| 长久操视频| 欧美亚洲今日在线| 无码久久国产 | 91N欧美| 亚洲欧美国产中文字幕| 亚洲蜜臀精品视频久久| 欧美少妇色图| 伊人网综合在线视频| 亚洲操逼网| 第四色色综合91| 亚洲综合性网址| 91N综合网| 国产中文字幕在线点播| 在线性黄高清免费视频| 99re这里只有精品3| 啊啊啊啊啊啊啊在线| 麻豆成人影音在线| 亚洲最大成人a毛毛片| www.99热| 自拍亚洲综合| 国产精品爆乳懂色蜜乳| 丰满人妻av一区二区三区| 天天肏美女| 欧美日韩国产精品久久色婷婷| 一起草高清无码| 久久美女福利是上海美女| 欧美大香蕉在线观看| 色97欧美| 国产精品无码av| 伊人久久亚洲中文字幕| 亚洲第一视频 欧美风情 日韩| 91精品人妻偷情| 无码99| 高清不卡 中文 人妻| 国产成人亚洲精品无| 大屁股xxxxx| 嫩草伊人久久精品| 欧美大片91| 色婷婷五月综合| 中文字幕文字幕无码一区二区三区电影99| 78超碰| 操逼逼无码| 青青草乱入乱欲视频在线观看| 91少妇高潮| 婷婷av在线中文字幕| 激情综合五月婷婷| 2020中文字幕在线| 熟妇亚洲一区二区三区| 91欧美www| 免费综合亚洲中文| 亚洲图片在线| 太久视频| 日日干夜夜欢| 激情无码日韩| 亚洲色资源| 国产亚洲精品A在线观看下载| 人妻天天操天天爽视频免费| 免费看国产大AB| 色哟哟511老熟女| 青青草成人视频在线观看二区| 欧美人与动性人交a| 国产怡红院| 女人精品内射国产99| 天堂av2019| 天天看天天日天天操| 天天爽爽爽爽| 又大又大又大又粗爽高潮观看| 五月天婷婷基地| 久9无限国产| 国内三级自拍小视频在线观看| 综合亚洲情色| wwwxxx日本爽| 色综合久久夜色精品国产天堂| 熟女乱伦A| 偷拍片久久| 最近2019中文字幕国语免费版| 99精品丰满人妻无码| 操逼片中文| 2017天天操天天日| 99在线精品视频| 搡老女人老熟女91| 国产精品熟女AV中文字幕在线播放| 尤物网站91| 久久久久密臀一区二区| 男女激情黄色网址| 四虎免费在线播放| 后入 亚洲 美女 射| 美日韩男女操屄视频| 亚州综合图片| 亚洲中文字幕三级在线| 欧成人精品H无码| 亚洲国产综合久久久性感熟妇| 欧美精品精品一区二区| 射丝袜大香蕉| 91一起操| 久热影视| 九九九九九九综合| 日韩美一区| 国产精品毛片?v一区二区三区 | 亚洲综合九九| 亚洲影院小综合| 久久精品福利影院| 人妻 欧美亚洲| 精品国产嫩穴视频| 欧美性爱中文字幕无线码| 久久精品国产97欧美精品亚洲 | 日韩有码专区| 九九热在线精品视频| 综合色图区| 免费看片黄| 亚洲欧美日产国产91毛片| 日韩av不卡在线看| 精品人妻15区| 日韩情色AV| 91Chinese在线| 91人精品妻入口| 国产夫妻性生活视频| 操我啊啊啊啊啊| 色狠狠综合| 亚洲天天做日日做天天谢日日 | 亚洲天堂五月天国产| 久热精品在线| 久久成年精品| 亚洲色吧网| 欧美成人性爱视频免费观看| 欧美激情久操网| 密臀在线视频| 天天舔天天日天天射| 四虎影库国产精品免费| 入口操逼网站| 五月婷婷丁香六月丁香| 国产剧情在线| 抽插一区二区视频| 亚洲日韩熟女人妻高清在线| 热久久91婷婷| 色婷婷av在线观看| 太久视频| 欧美性爱免费短视频| 日韩欧美性爱电影在线观看| 人妻少妇精品久久久久久| 我中文字幕6区| 91夜色chaopeng| 中文啪啪视频| 婷婷综合久久| 成人av动漫在线观看| 五月婷网站| 成人av毛片在线观看| 91熟女丨91老女人| 国产精品97视频| 俺去啦自拍| 欧美一级专区免费大片| 懂色AV中文| 四月丁香婷婷| 操狠狠| 裸体美女免费看网站青草| 欧美东京热精品A∨| 日本免费一级AAA大片器| 色色色日本| A级国产欧美激情在线| 亚洲av噜噜噜噜噜噜| 亚洲欧美电影| 老司机福利社视频在线观看| 91 国产丝袜在线播放-百度| 九九av| 精品一区二区三区蜜桃臀www| 乱老熟女一区二区三区| 搞中出视频在线观看| 操B久久| 日日黄色三级网站| 欧美亚男人的天堂| 大香蕉免| 欧美激情片一区二区| 中文字幕日韩精品一区二区三区| 91久久久久免| 天无日色综合| 一区二区首页| 草b在线 | 91美女视频电影| 色老牛| 97国产精品久久久久| 99热国产| 4虎在线观看| 0755午夜福利视频| 日韩有码回春沙龙第一页| 热G综合热G中文| 夜夜性| 国产精品懂色tv影视免费观看| 高清无码久操视频| 无码丰满熟妇一区二区浪潮AV| 啪一啪免费视频| 亚洲精品三| 极品白嫩福利在线| 欧美少妇大量自拍视频在线观看| 亚洲精品久| 中国黑人三级片网站上区| 秋霞福利网| 四虎av在线| 国产精品人妻免费精品| 日本免费一级AAA大片器| 久久久久久日韩| 日本色婷婷| 九九英色视频| 亚洲第91页 | 在线观看视频91| 暴力av在线| 在线αⅴ| 中文自拍欧美影视| 天天综合在线4| 制服中出中文人人精品| 日韩大香蕉AV影片| 屁股久久久久久| 亚洲精品无码久久AV| 素人播放一区| 精品中文一区二区| 中文久久| 亚洲精品xxx| 999狠狠综合| 超碰 另类 欧美| 黑人精品欧美一区二区蜜桃| 日本一级特级毛片视频| 日日碰狠狠添天天爽超| 99久久com免费视频′| 成人精品视频| 欧美成人免费在线观看| 国产女人成人精品视频| 极品白嫩福利在线| 九九九九九精品十六| 一区二区高清视频| 日本在线播放不卡一区| 亚洲色图加勒比| 成人青青草原伊人| 国产熟女完整版中字| 九色 人妻 大香蕉| 九九九九一区| 少妇xx精品| 99re3这里只有精品| 女生看匆91网站| 日韩三级在线观看网站| 啪啪91| 2019午夜福利视频| 欧美片第一页| 男人的天堂2010| 久久大香蕉97| 欧美v亚洲v日韩v最新在线二区 | 俞拍久久国应视频| 性爱乱伦一区| 中文字幕精品人妻丝袜| 日本97久久| 一级黄色性爱A级片| 亚州色图狠狠干| 三上悠亚在线毛片91| 成人看片网站| 后入福利| 黄色性爱网网| 91无码人妻| 欧美一级黄色免费专区| 日本九九九九| 亚洲中字慕不卡| 91操人| 国产欧洲精品亚洲午夜拍精品| 99re免费视频精品全部| 欧亚乱色熟一区二区三四区| 一区二区高清视频| 亚洲综合网电影91| 97综合激情| 亚洲中文日韩欧美大香蕉视频| 亚洲大色堂| 黄色片一区二区三区四区五区 | 韩国女主播青草福利视频| 密臀视频三区免费网站| 色婷婷五月天| 男人久久天堂| 91精品久久久久久综合五月天| 欧美精品三区| h无码动漫在线观看| 免费97视频| 亚洲成人性爱在线观看| 五月天亚洲网| 日本福利二区视频| 97资源站国产精品| 在线无码操| 亚洲成人妻日韩在线| 天天躁日日躁xxxxx| 无码男人天堂| 秋霞视频一区二区| 任你干在线视频| 久热在线精品免费观看| 亚洲欧美性生活| 一区二区高清视频| 亚洲图片欧美制度| 尤物视频一区| 亚洲欧美天| 久久怡红院| 国产兽交视频在线播放| 91黑丝美女| 青青操狠狠撩| 日韩无码视频黄色| 国产精品禁久久久精品| 国产SV一线| 丁香啪啪| 精品午夜福利国产一区二区在线观看| 婷婷人妻激情| 最新精品久久蜜桃 | 日韩乱码Av| 日韩综合成人免费视频| 蜜臀99久久精品| 丁香五月天婷婷姐| 操逼www.| 亚洲熟妇A V黑人| WWW.加勒比人妻一区不卡.com| 成人午夜小视频手机在线看| 夜夜夜夜爽| 91九色精品熟女内射| 操逼网站网站| 亚洲国产中文字幕| 蜜桃色色网站视频三区| 男人天堂站| 强奸乱伦av电影| 日本久久女同性恋视频| 超碰在线综合97| 天天日天天爽| 黄色视频高清无码网站| 夜夜青青无码影院| 国产极品999| 欧美97在线观看| 国产免费一区在线观看| 精品在线78| 天天日天天操VV| 免费看污网站| 亚洲精品日韩国产欧美| ,成人免费啪啪视频| 2017大香蕉| 麻豆尤物视频网| 大香交| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 熟女乱伦二区| 天天精品| 特级毛片特黄久久免费看 | 日本色婷婷| 欧美日韩第一页| 亚洲 欧美 手机在线观看| 岛国黄| 亚洲第一精品在线视频| 日日操免费视频| 婷婷伊人五月| 日韩成人高清一区二区| 高潮精品| 精品欧美老熟女一二区| 97欧美精品| 九九九九国产| 国产一国产一级毛片古装| 亚洲无 码A片在线观看麻豆| 91五十路| 香蕉欧美| 日韩中文字幕国产| 高清国产性猛交xxxx乱大交| 亚洲无码太久| 久久一区二区高清免费| 国产综合网站在线播放| 欧美激情中文字幕另类小说| 亚洲色图亚洲无码强奸乱伦| 黄aaaaaaaaaaaaaaaaaa色网站| 99热在线观看| 激情综合五月丁香| 桃色五月天| 狼人综合婷婷激情四射| 午夜精品久久久99| 精品人妻一区二区三区视频| 欧美综合网1| 久久天堂网|