99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

GeoServer發(fā)布GDB全流程:GDAL直讀、格式轉(zhuǎn)換與運(yùn)維

GeoServer發(fā)布GDB全流程:GDAL直讀、格式轉(zhuǎn)換與運(yùn)維 1. GeoServer 讀不了 .gdb 文件夾先把原因刨到底很多人第一次把 GDB 數(shù)據(jù)往 GeoServer 上掛的時(shí)候遇到的畫面都差不多在新建數(shù)據(jù)存儲里翻遍了所有選項(xiàng)找不到一個(gè)叫 File Geodatabase 的類型或者硬著頭皮把.gdb目錄的路徑填進(jìn)去點(diǎn)保存GeoServer 彈一個(gè)紅色報(bào)錯(cuò)提示 URL 無法識別。這里需要先把一件事說清楚GeoServer 本身并不具備解析 GDB 二進(jìn)制格式的能力它能讀什么格式完全取決于裝了哪些數(shù)據(jù)存儲擴(kuò)展。GDB 是私有二進(jìn)制格式規(guī)范由商業(yè) GIS 廠商制定開源棧里能讀它的那條路本質(zhì)上繞不開 GDAL/OGR 這一層翻譯層。搞明白這一點(diǎn)后面的所有操作才有方向感。我見過不少人拿著一個(gè)幾十 GB 的 GDB試圖直接改后綴、改連接參數(shù)、甚至把整個(gè).gdb目錄壓成 zip 再上傳折騰一下午也沒進(jìn)展根子就在于把發(fā)布服務(wù)誤解成了上傳文件。GeoServer 發(fā)布圖層的本質(zhì)是它需要一條能持續(xù)訪問數(shù)據(jù)的連接并且這條連接的驅(qū)動棧認(rèn)識這種格式。GDB 恰好卡在第二點(diǎn)上。1.1 GDB 不是一個(gè)文件而是一套目錄約定先糾正一個(gè)非常常見的認(rèn)知偏差。.gdb在文件管理器里顯示成一個(gè)帶數(shù)據(jù)庫圖標(biāo)的文件夾點(diǎn)進(jìn)去是一堆名字像a00000001.gdbtable、a00000003.gdbtablx、gdb這樣的文件。這不是壓縮包也不是可以隨便拷一半走的目錄。它是一個(gè)小型的關(guān)系型存儲幾何、屬性、空間索引、域、子類型、關(guān)系類全在里面靠一套內(nèi)部表結(jié)構(gòu)組織起來。目錄里少一個(gè).gdbtablx整個(gè)數(shù)據(jù)集可能就讀不出空間索引.gdb目錄還在被別的進(jìn)程占用時(shí)你去復(fù)制它拷出來的可能是殘缺的。這個(gè)特性直接決定了兩件事。第一GDB 適合被 GDAL 這類專門的庫一次性讀懂不適合被 GeoServer 直接當(dāng)文件打開。第二任何轉(zhuǎn)換動作都應(yīng)該是先讀全量、再寫出目標(biāo)格式中途斷掉會得到一個(gè)半成品比沒轉(zhuǎn)換更麻煩。還有一個(gè)隱藏細(xì)節(jié)GDB 內(nèi)部字符串默認(rèn)是 UTF-8 存儲的但字段名長度、別名、域值這些東西在轉(zhuǎn)換成其他格式時(shí)經(jīng)常會丟失。所以轉(zhuǎn)換前必須做一次數(shù)據(jù)體檢把圖層清單、字段清單、坐標(biāo)系、要素?cái)?shù)量全部摸一遍不然后面在 GeoServer 里發(fā)現(xiàn)字段少了、坐標(biāo)系錯(cuò)了回頭重來一遍的成本比體檢高十倍。1.2 GeoServer 的讀取能力來自哪里GeoServer 的數(shù)據(jù)存儲是一個(gè)插件化的注冊表。裝完主程序默認(rèn)能讀 Shapefile、GeoPackage、PostGIS、MySQL、WFS 等GDAL、OGR、Oracle、SQL Server 這些統(tǒng)統(tǒng)是擴(kuò)展包得單獨(dú)下 zip解壓到WEB-INF/lib然后重啟。所以你在界面上看不到 GDB 選項(xiàng)不是操作錯(cuò)了是擴(kuò)展沒裝。這里有個(gè)容易混淆的點(diǎn)GeoServer 官方提供的 GDAL 擴(kuò)展里面其實(shí)同時(shí)包含柵格 GDAL 支持和矢量 OGR 支持。矢量那部分才是我們關(guān)心的它的底層就是調(diào)用本機(jī)的 GDAL 動態(tài)庫Windows 上是gdal3xx.dll這一套Linux 上是libgdal.so。也就是說GeoServer 不自己解析 GDB它把活外包給了本機(jī)的 GDAL。這就解釋了為什么很多人裝完插件還是報(bào)錯(cuò)——插件裝了本機(jī) GDAL 沒裝或者裝了但 Java 找不到它。提示判斷到底卡在哪一層有個(gè)很省事的辦法。先在命令行用ogrinfo打開同一個(gè) GDB如果命令行也失敗問題在 GDAL/數(shù)據(jù)本身命令行成功而 GeoServer 失敗問題在插件、環(huán)境變量或 Java 的本地庫加載路徑上。這個(gè)二分法能省掉大量瞎猜。1.3 兩條可行路線直讀插件和格式轉(zhuǎn)換把思路收斂一下實(shí)際可走的就是兩條路。第一條是直讀給 GeoServer 裝 GDAL/OGR 擴(kuò)展配好本機(jī) GDAL 環(huán)境變量讓數(shù)據(jù)存儲直接指向.gdb目錄。優(yōu)點(diǎn)是數(shù)據(jù)不落地、改一處看一處缺點(diǎn)是環(huán)境依賴重、版本咬合緊、只讀場景下還行寫入基本別想。第二條是轉(zhuǎn)換后發(fā)布用ogr2ogr把 GDB 里的目標(biāo)圖層轉(zhuǎn)成 GeoPackage 或灌進(jìn) PostGIS然后 GeoServer 發(fā)布這個(gè)中間產(chǎn)物。優(yōu)點(diǎn)是部署干凈、性能可控、跨機(jī)器遷移簡單缺點(diǎn)是數(shù)據(jù)有副本需要一套更新機(jī)制。這兩條路不存在哪個(gè)更高級只有你的場景更適合哪個(gè)。下一節(jié)我把選型邏輯掰開講因?yàn)檫@一步選錯(cuò)后面所有操作都是給錯(cuò)誤方案打補(bǔ)丁。2. 直讀還是先轉(zhuǎn)格式三條路線的實(shí)際成本對照我做過不少類似的項(xiàng)目從一開始的能直讀就別轉(zhuǎn)慢慢變成了生產(chǎn)環(huán)境一律先轉(zhuǎn)。這個(gè)轉(zhuǎn)變不是技術(shù)偏好是被運(yùn)維成本教育出來的。下面這張表是這幾年的經(jīng)驗(yàn)匯總參數(shù)不是拍腦袋是實(shí)際折騰過的時(shí)間成本估算。維度GDB 直讀GDAL 擴(kuò)展轉(zhuǎn) GeoPackage 后發(fā)布灌入 PostGIS 后發(fā)布部署復(fù)雜度高需匹配 GDAL 版本與 Java 本地庫低GeoServer 原生支持中需數(shù)據(jù)庫服務(wù)首次配置耗時(shí)半天到兩天一小時(shí)內(nèi)半天讀取性能大圖層中等每次查詢都要穿過 OGR良好優(yōu)秀有真索引數(shù)據(jù)更新直接替換 GDB 目錄替換單文件 gpkg增量 SQL 或重新導(dǎo)入并發(fā)能力一般文件鎖是隱患一般強(qiáng)字段名保留完整完整完整遷移到別的機(jī)器極麻煩環(huán)境要重建復(fù)制一個(gè)文件備份恢復(fù)即可適合場景一次性出圖、臨時(shí)演示中小體量固定數(shù)據(jù)、單機(jī)部署長期運(yùn)行、多圖層、多用戶2.1 為什么直讀路線的隱性成本最高表面上看直讀最干凈——數(shù)據(jù)不需要復(fù)制原件更新了服務(wù)就跟著更新。但實(shí)際落地時(shí)成本集中在三個(gè)地方。第一是版本咬合。GeoServer 的 GDAL 擴(kuò)展會依賴特定大版本的 GDAL比如某個(gè) GeoServer 版本配套的是 GDAL 3.x 某一系列你本機(jī)裝了個(gè)更新的或者更老的Java 加載動態(tài)庫時(shí)直接拋UnsatisfiedLinkError或者加載成功但驅(qū)動列表為空。這個(gè)報(bào)錯(cuò)信息非常不友好經(jīng)常只說找不到 native library不說到底缺哪個(gè)。第二是環(huán)境變量。GDAL 需要GDAL_DATA指向投影定義數(shù)據(jù)目錄PROJ_LIB指向 PROJ 的轉(zhuǎn)換參數(shù)庫。這兩個(gè)變量在命令行里設(shè)好了不代表 GeoServer 的啟動進(jìn)程能繼承到——尤其是 Windows 下用服務(wù)方式啟動、或者用容器啟動的時(shí)候。我見過最典型的情況命令行ogrinfo一切正常GeoServer 里選 GDB 就報(bào)無法識別坐標(biāo)系。第三是文件鎖與并發(fā)。GDB 在讀取時(shí)會持有目錄層面的句柄如果同時(shí)有別的東西比如桌面軟件、同步盤、備份腳本在動這個(gè)目錄GeoServer 的查詢會間歇性失敗而且失敗得很隨機(jī)日志里看不出規(guī)律。2.2 什么情況下直讀仍然值得也不是全盤否定。有這么幾種場景我依然會選直讀。一種是臨時(shí)演示或驗(yàn)收??蛻衄F(xiàn)場要求服務(wù)必須直連原始數(shù)據(jù)庫不能有中間副本那你只能硬著頭皮上插件。這種場景通常數(shù)據(jù)量不大、并發(fā)很低把環(huán)境配好就行。另一種是數(shù)據(jù)天天變、且變化是整庫替換。轉(zhuǎn)格式每次都要跑一遍全量幾十 GB 的數(shù)據(jù)轉(zhuǎn)換加索引重建要按小時(shí)計(jì)而直讀只需要替換 GDB 目錄再清一下 GeoServer 的緩存。這種高頻全量替換的場景直讀反而省事。還有一種是你已經(jīng)在用 GDAL 生態(tài)做別的事機(jī)器上本來就有一套調(diào)好的 GDAL 環(huán)境插件只是復(fù)用邊際成本接近零。2.3 我為什么在長期項(xiàng)目里優(yōu)先選 PostGIS說個(gè)實(shí)在話只要圖層數(shù)量超過十幾個(gè)、或者有多個(gè)前端同時(shí)在拉 WMS/WFS我就直接上 PostGIS。原因很簡單GeoServer 的很多能力只有在關(guān)系型數(shù)據(jù)源上才是完整的。比如按屬性過濾的查詢下推、空間索引的自動利用、并發(fā)連接池、CQL 過濾的性能、圖層組的聯(lián)合查詢文件型數(shù)據(jù)源要么做不到要么做得很勉強(qiáng)。GeoPackage 是個(gè)很好的折中——單文件、自帶空間索引、支持 UTF-8、字段名不限長度、GeoServer 原生支持不用裝任何插件。中小體量單圖層幾百萬要素以內(nèi)的固定數(shù)據(jù)我基本都轉(zhuǎn)成 GeoPackage。它的短板是寫入并發(fā)差但發(fā)布地圖服務(wù)本來就是讀多寫少問題不大。提示轉(zhuǎn)換不是二選一的終局決定。我常用的做法是先在 GeoPackage 上把樣式、坐標(biāo)系、字段別名全部調(diào)通驗(yàn)證沒問題后再灌進(jìn) PostGIS 做最終上線。中間那一步只是驗(yàn)證GeoPackage 文件本身不用保留這樣既不浪費(fèi)時(shí)間也不會在上線階段才發(fā)現(xiàn)數(shù)據(jù)有問題。3. 環(huán)境搭建GDAL、插件版本、JVM 路徑三者的咬合關(guān)系如果確定走直讀路線這一節(jié)是最容易翻車的地方。我把踩過的順序整理出來先確認(rèn) GDAL 能用再確認(rèn)驅(qū)動存在再裝插件最后配環(huán)境變量并驗(yàn)證。順序錯(cuò)了排查成本翻倍。3.1 版本對齊是第一道坎去 GeoServer 的下載頁找擴(kuò)展包時(shí)注意下載鏈接是按 GeoServer 版本分目錄的。比如你裝的是 2.24 系列就必須下 2.24 目錄下對應(yīng)小版本的 GDAL 擴(kuò)展跨小版本混用有一定概率出問題——不是必然崩但一旦崩了很難定位因?yàn)閳?bào)錯(cuò)信息通常指向不到版本。另一個(gè)對齊點(diǎn)是 GDAL 大版本。擴(kuò)展包內(nèi)部對 GDAL 的調(diào)用接口是有版本要求的裝一個(gè)差了好幾個(gè)大版本的 GDAL癥狀是插件加載成功、數(shù)據(jù)存儲能建、但一預(yù)覽就報(bào)驅(qū)動不支持。我一般的做法是先在目標(biāo)機(jī)器上把 GDAL 裝好并跑通ogrinfo再去看 GeoServer 日志里打印的 GDAL 版本號兩者能對上再往下走。3.2 安裝 GDAL 并確認(rèn) GDB 驅(qū)動在不在Windows 上用現(xiàn)成的安裝包最省事裝完之后把bin目錄加進(jìn)PATH然后開一個(gè)新的命令行窗口驗(yàn)證ogrinfo --version看到版本號說明主程序通了。接下來是關(guān)鍵一步確認(rèn) GDB 驅(qū)動是否被編譯進(jìn)來ogrinfo --formats | grep -i gdbWindows 命令行沒有 grep用ogrinfo --formats | findstr /i gdb正常應(yīng)該能看到類似OpenFileGDB -vector- (ro): ESRI FileGDB這一行ro表示只讀。這對發(fā)布地圖服務(wù)完全夠用——我們只需要讀。如果這一行沒有說明你裝的 GDAL 構(gòu)建里沒帶這個(gè)驅(qū)動換一個(gè)完整構(gòu)建的安裝包或者用 conda 裝一份帶全部驅(qū)動的 GDAL。這一步不通后面所有的配置都是白做。3.3 裝插件、配變量、驗(yàn)證加載把擴(kuò)展包解壓到 GeoServer 的WEB-INF/lib注意是解壓出來的 jar 直接放進(jìn)去不要留一層目錄。然后處理環(huán)境變量。GeoServer 有兩種啟動方式處理方式不一樣。用startup.bat/startup.sh手動啟動的直接改啟動腳本里的JAVA_OPTS追加-Djava.library.path/path/to/gdal/bin同時(shí)在腳本開頭export GDAL_DATA/path/to/gdal/data和export PROJ_LIB/path/to/gdal/share/projWindows 用set。用服務(wù)方式啟動的環(huán)境變量要配到服務(wù)級別或者干脆改注冊表里的服務(wù)環(huán)境。這一步最容易漏因?yàn)槟阍谧约旱慕K端里配好了變量服務(wù)進(jìn)程根本繼承不到。重啟之后去 GeoServer 的關(guān)于頁面或者日志里搜 GDAL能看到版本信息就說明插件活了。這時(shí)候新建數(shù)據(jù)存儲列表里應(yīng)該出現(xiàn) GDAL 相關(guān)條目。填入 GDB 路徑時(shí)注意格式file:///D:/data/road.gdb三個(gè)斜杠、正斜杠不要用 Windows 的反斜杠直接拼。路徑里有中文或者空格時(shí)我建議先用英文路徑測試通過再回頭處理編碼問題——把兩個(gè)變量同時(shí)引入出問題根本分不清是誰的鍋。注意國內(nèi)很多單位的數(shù)據(jù)目錄帶中文名比如基礎(chǔ)地理數(shù)據(jù)/gdb。GDAL 在 Windows 上對非 ASCII 路徑的支持時(shí)好時(shí)壞具體取決于構(gòu)建時(shí)的字符集設(shè)置。穩(wěn)妥做法是把數(shù)據(jù)復(fù)制到一個(gè)純英文路徑下再發(fā)布或者改用轉(zhuǎn)換路線繞開這個(gè)雷。4. 用 GDAL 把 GDB 拆成可發(fā)布的數(shù)據(jù)體檢、轉(zhuǎn)換、修復(fù)走轉(zhuǎn)換路線的話這一節(jié)是核心操作。我把它拆成體檢、轉(zhuǎn)換、修復(fù)三步每一步都有具體的檢查項(xiàng)別跳。4.1 動手之前先做數(shù)據(jù)體檢體檢的目的很明確搞清楚這個(gè) GDB 里到底有什么哪些能用哪些是坑。ogrinfo -so -al D:/data/road.gdb-so是只輸出摘要不輸出要素-al是列出所有圖層。輸出里要重點(diǎn)看四樣?xùn)|西。圖層數(shù)量與名稱。有些 GDB 里幾十個(gè)圖層其中一大半是注記、關(guān)系類、廢棄圖層。把真正要發(fā)布的挑出來別一股腦全轉(zhuǎn)轉(zhuǎn)完在 GeoServer 里一個(gè)個(gè)配樣式能累死人。幾何類型??词?Point、LineString、Polygon 還是 Multi 版本混用。GDB 允許一個(gè)圖層里混幾何類型但很多目標(biāo)格式和 GeoServer 的渲染器不喜歡混?;煊玫膱D層要么用PROMOTE_TO_MULTI統(tǒng)一成多部件要么拆開。坐標(biāo)系。輸出里L(fēng)ayer SRS WKT那段能看到 EPSG 或者 WKT 定義。這里有個(gè)高頻坑GDB 里記錄的坐標(biāo)系可能是自定義的、帶七參數(shù)的、甚至只是未定義。如果顯示(unknown)就必須手工指定不能指望它自動識別否則發(fā)布出來位置能偏出去幾百米。要素?cái)?shù)量。Feature Count那行。這個(gè)數(shù)字決定你后面要不要分批轉(zhuǎn)、要不要加進(jìn)度條、轉(zhuǎn)換要等多久。幾百萬要素的圖層ogr2ogr跑起來十幾分鐘很正常。4.2 轉(zhuǎn)成 GeoPackage 的完整命令確認(rèn)完就動手。下面這條是我常用的模板參數(shù)含義后面逐個(gè)解釋ogr2ogr -f GPKG D:/out/road.gpkg D:/data/road.gdb ^ -nln road ^ -nlt PROMOTE_TO_MULTI ^ -t_srs EPSG:4490 ^ -lco SPATIAL_INDEXYES ^ -lco FIDfid ^ -progress-f GPKG指定輸出格式。-nln指定輸出圖層名不起這個(gè)名字的話會沿用原名原名如果帶中文或者特殊字符后面在 GeoServer 里做 CQL 過濾會很難寫。-nlt PROMOTE_TO_MULTI把單部件幾何統(tǒng)一提升為多部件避免混類型導(dǎo)致渲染異常。-t_srs做坐標(biāo)系轉(zhuǎn)換不帶這個(gè)參數(shù)就保持原樣——如果你不確定源坐標(biāo)系千萬別亂加這個(gè)參數(shù)轉(zhuǎn)錯(cuò)了比不轉(zhuǎn)更難查。-lco SPATIAL_INDEXYES建空間索引這個(gè)對 GeoServer 的預(yù)覽和范圍查詢性能影響很大一定要開。-progress就是進(jìn)度顯示大圖層必備。如果只想轉(zhuǎn)其中一個(gè)圖層把 GDB 路徑后面加上圖層名ogr2ogr -f GPKG D:/out/road.gpkg D:/data/road.gdb road如果 GDB 里的圖層名有中文或者空格用引號包起來或者先用ogrinfo確認(rèn)準(zhǔn)確寫法。GDAL 對圖層名大小寫不敏感但對空格和特殊字符敏感。4.3 中文亂碼、字段截?cái)?、日期類型的具體處理這三個(gè)問題是 GDB 轉(zhuǎn)換途中最常見的數(shù)據(jù)看著轉(zhuǎn)了、用起來不對。中文亂碼。GeoPackage 內(nèi)部就是 UTF-8轉(zhuǎn)換過程中一般不會亂。真正會亂的是轉(zhuǎn)成 Shapefile 的時(shí)候——Shapefile 需要.cpg文件聲明編碼。如果目標(biāo)格式必須是 Shapefile加上-lco ENCODINGUTF-8并且在 GeoServer 里發(fā)布時(shí)把字符集也設(shè)成 UTF-8兩邊不一致就會出現(xiàn)屬性表里全是問號。我的建議是能不用 Shapefile 就別用字段名 10 字符限制、字段數(shù) 255 限制、日期類型丟失坑太多了。字段名截?cái)?。這個(gè)只在 Shapefile 出現(xiàn)。GDB 里叫ROAD_NAME_FULL的字段轉(zhuǎn)成 Shapefile 會變成ROAD_NAME_兩個(gè)字段如果前 10 個(gè)字符一樣直接沖突報(bào)錯(cuò)。GeoPackage 和 PostGIS 都沒這個(gè)問題這也是我推薦它們的原因之一。日期類型。GDB 里日期字段轉(zhuǎn)出來經(jīng)常變成字符串或者變成一個(gè)奇怪的時(shí)間戳。這會導(dǎo)致 GeoServer 的 WMS 時(shí)間維度功能用不了。轉(zhuǎn)換時(shí)可以用-mapFieldType DateString顯式指定策略或者干脆在轉(zhuǎn)換后用 SQL 在 PostGIS 里改類型。GeoPackage 的日期支持相對好一些但 GeoServer 讀出來的類型仍需要在圖層配置頁確認(rèn)一眼。4.4 幾何有效性修復(fù)與自相交處理GDB 里的面數(shù)據(jù)經(jīng)常有自相交、環(huán)方向錯(cuò)誤、零面積多邊形這些問題。它們在桌面軟件里能顯示但 GeoServer 的渲染器對無效幾何的容忍度低癥狀是某些多邊形消失、或者填充區(qū)域莫名其妙地連成一片。GDAL 3.4 之后ogr2ogr支持-makevalid直接修ogr2ogr -f GPKG D:/out/parcel.gpkg D:/data/parcel.gdb parcel -makevalid -nlt MULTIPOLYGON如果你的 GDAL 版本不支持退化方案是先轉(zhuǎn)出來再用ST_MakeValid在數(shù)據(jù)庫里修或者用 QGIS 的修復(fù)幾何工具批量處理。別指望 GeoServer 幫你兜底它不會。還有一個(gè)不起眼但很致命的點(diǎn)空幾何。有些圖層里混著幾何為 NULL 的記錄轉(zhuǎn)出來之后 GeoServer 在統(tǒng)計(jì)范圍時(shí)可能算出個(gè)無效的包圍盒導(dǎo)致圖層預(yù)覽一片空白你以為是樣式問題其實(shí)是范圍錯(cuò)了。轉(zhuǎn)換時(shí)加-where SHAPE IS NOT NULL過濾掉或者轉(zhuǎn)完之后在目標(biāo)庫里DELETE FROM xxx WHERE geom IS NULL。5. 在 GeoServer 里把圖層真正掛上去數(shù)據(jù)準(zhǔn)備好了接下來是在 GeoServer 里走一遍完整流程。這一段看起來是點(diǎn)點(diǎn)鼠標(biāo)但有幾個(gè)必改項(xiàng)改漏了后面全是麻煩。5.1 新建數(shù)據(jù)存儲的填寫要點(diǎn)進(jìn)數(shù)據(jù)→新建數(shù)據(jù)存儲選 GeoPackage或者 PostGIS。GeoPackage 的路徑填法和 GDB 一樣file:///D:/out/road.gpkg注意格式。PostGIS 則填主機(jī)、端口、庫名、用戶名密碼這些沒什么好說的但有一個(gè)參數(shù)值得調(diào)連接池的min connections和max connections。默認(rèn)值偏保守并發(fā)上來之后會出現(xiàn)等待連接超時(shí)把 max 調(diào)到 20 左右視機(jī)器而定會穩(wěn)很多。工作區(qū)Workspace的選擇不是隨便點(diǎn)。它的作用相當(dāng)于命名空間后面 WMS 請求里的圖層名會是工作區(qū):圖層名。我習(xí)慣按項(xiàng)目或按數(shù)據(jù)主題劃分工作區(qū)別把所有東西堆在默認(rèn)工作區(qū)里后期做權(quán)限控制和圖層組的時(shí)候會感謝自己。5.2 圖層發(fā)布頁面里必須改的幾項(xiàng)點(diǎn)發(fā)布之后進(jìn)入配置頁這一頁信息很多但真正必須確認(rèn)的就幾個(gè)。坐標(biāo)系聲明。Native SRS是數(shù)據(jù)本身的坐標(biāo)系Declared SRS是對外聲明的坐標(biāo)系。這兩個(gè)如果不一致GeoServer 會做動態(tài)投影。絕大多數(shù)情況下應(yīng)該讓兩者一致把 Declared 設(shè)成跟 Native 一樣然后靠 WMS 請求里的SRS參數(shù)控制輸出投影。我曾經(jīng)遇到一個(gè)案例數(shù)據(jù)是投影坐標(biāo)Declared 被誤設(shè)成了經(jīng)緯度結(jié)果前端拿到的圖整體壓縮變形排查了半天才發(fā)現(xiàn)是這個(gè)字段。邊框Bounding Box。點(diǎn)從數(shù)據(jù)中計(jì)算和從原生邊框計(jì)算兩個(gè)按鈕。如果算出來是0,0,-1,-1這種明顯不對的值說明數(shù)據(jù)里有空幾何或者坐標(biāo)系識別錯(cuò)誤回去查數(shù)據(jù)。邊框錯(cuò)了WMS 的BBOX請求會返回空白圖而且不報(bào)錯(cuò)最難排查。屬性勾選。Queryable要勾上否則 WFS 查詢不返回屬性。屬性列表里把不需要對外暴露的字段比如內(nèi)部 ID、敏感備注取消勾選減少傳輸量也順便做了脫敏。5.3 樣式手寫 SLD 還是從桌面軟件導(dǎo)出樣式這一塊我的實(shí)際經(jīng)驗(yàn)是簡單的單色/分級渲染直接在 GeoServer 里用界面生成復(fù)雜的多比例尺、標(biāo)注避讓、圖標(biāo)符號用桌面軟件配好再導(dǎo)出 SLD。界面生成的樣式存在 GeoServer 自己的樣式庫里改起來簡單但表達(dá)力有限。導(dǎo)出 SLD 的好處是所見即所得缺點(diǎn)是導(dǎo)出文件里常常帶一堆冗余定義而且不同版本的導(dǎo)出格式細(xì)節(jié)有差異導(dǎo)入時(shí)報(bào)錯(cuò)的話得手工改。幾個(gè)實(shí)戰(zhàn)要點(diǎn)標(biāo)注Label一定要設(shè)label和font并且配一個(gè)VendorOption控制重疊比如conflictResolutionfalse加spaceAround10否則密集路網(wǎng)的標(biāo)注會糊成一團(tuán)。分級渲染用Intervals比一堆Rule好維護(hù)。圖層如果要素特別多樣式里加VendorOption maxDisplacement之類能明顯降低渲染耗時(shí)。5.4 預(yù)覽驗(yàn)證與切片緩存發(fā)布完之后不要只看圖層預(yù)覽里的 OpenLayers 頁面。那個(gè)頁面會帶上一堆默認(rèn)參數(shù)有時(shí)候恰好繞過了問題。我一般用三步驗(yàn)證OpenLayers 預(yù)覽看整體、GetFeatureInfo請求看屬性對不對、直接拼一個(gè)指定BBOX和SRS的GetMap請求看投影轉(zhuǎn)換有沒有偏。都通過之后再上切片。切片的圖層組方案要和前端的底圖對齊GridSet里的坐標(biāo)系、分辨率層級、瓦片尺寸必須和前端一致不一致就會出現(xiàn)瓦片錯(cuò)位——放大時(shí)圖是清楚的一縮小就整體偏移半屏。緩存建好之后數(shù)據(jù)更新的那天記得清緩存不然前端看到的還是舊圖。6. 踩過的坑六個(gè)真實(shí)翻車現(xiàn)場與排查鏈路這一節(jié)是這篇文章里我最想寫的部分因?yàn)榍懊婺切┎襟E文檔里都能查到下面這些是查不到、只能踩出來的。6.1 插件裝了但驅(qū)動列表是空的癥狀數(shù)據(jù)存儲能建出來選 GDAL 類型路徑填對點(diǎn)保存報(bào)無法創(chuàng)建數(shù)據(jù)存儲。排查鏈路先看 GeoServer 日志搜 GDAL如果只有一行版本號沒有驅(qū)動列表說明本地庫加載了但驅(qū)動初始化失敗。最常見原因是GDAL_DATA沒指向正確目錄GDAL 找不到gcs.csv、proj.db這些數(shù)據(jù)文件。修復(fù)方法是把GDAL_DATA指向 GDAL 安裝目錄下的data新版可能在share/gdalPROJ_LIB指向share/proj重啟進(jìn)程再看日志。還有一個(gè)更隱蔽的原因機(jī)器上裝了多個(gè) GDAL比如 Python 環(huán)境里一份、獨(dú)立安裝一份PATH里排在前面的那個(gè)版本和插件要求的不一致。用where gdalinfo看一眼到底用的哪一份把不對的從PATH里挪走。6.2 圖層預(yù)覽一片空白日志沒有任何報(bào)錯(cuò)這是最消耗耐心的一類問題。排查順序我固定成四步。第一步看圖層配置頁的邊框是不是有效值。是0,0,-1,-1就說明數(shù)據(jù)范圍沒算出來回去查幾何和坐標(biāo)系。第二步用ogrinfo -al -geomSUMMARY打開源數(shù)據(jù)看第一條要素的坐標(biāo)大概是多少。如果坐標(biāo)是幾百、幾千量級說明是投影坐標(biāo)如果是 100 多、30 多說明是經(jīng)緯度。兩種情況下圖層配置里的 Native SRS 必須對得上。第三步手工拼 GetMap 請求把SRS、BBOX、WIDTH、HEIGHT全部顯式寫上看返回的 PNG 是不是全透明。第四步如果前三步都對但還是空檢查樣式。用一個(gè)最簡單的PolygonSymbolizer純紅色測試排除樣式表達(dá)式寫錯(cuò)導(dǎo)致的渲染失敗。6.3 大字段和 BLOB 讓渲染慢到無法接受GDB 里經(jīng)常帶照片、附件、超長備注這類字段。轉(zhuǎn)出來之后這些字段還在GeoServer 在生成要素時(shí)會把它們一起讀出來即使樣式根本用不到。一個(gè)幾萬要素的圖層帶 BLOB 字段單次 GetMap 能慢到十幾秒。解決辦法很直接轉(zhuǎn)換時(shí)就不帶這些字段。ogr2ogr支持-selectogr2ogr -f GPKG D:/out/poi.gpkg D:/data/poi.gdb poi -select name,type,lng,lat-select里只寫要保留的字段其他一律不轉(zhuǎn)。如果字段已經(jīng)轉(zhuǎn)出來了在 PostGIS 里ALTER TABLE ... DROP COLUMN更快。這一步做完同一個(gè)圖層的出圖時(shí)間能從十幾秒降到一秒以內(nèi)。6.4 WMS 出圖中文標(biāo)注變成方塊這個(gè)問題的根源是字體。GeoServer 渲染標(biāo)注時(shí)用的是服務(wù)端字體如果 SLD 里指定的字體在服務(wù)器上不存在就會 fallback 到一個(gè)沒有中文字形的字體渲染出來全是方塊或者豆腐塊。修復(fù)分兩步先確認(rèn)服務(wù)器上裝了中文字體Linux 下把字體文件放進(jìn)/usr/share/fonts再fc-cache -fv然后在 SLD 里把font-family設(shè)成一個(gè)確定存在的字體名。GeoServer 后臺有個(gè)字體列表頁面能看到當(dāng)前能用的字體SLD 里寫的名字必須在這個(gè)列表里。我一般會寫一個(gè)字體棧比如先寫主字體再寫 fallback但 GeoServer 對字體棧的支持不如瀏覽器穩(wěn)定實(shí)測還是指定單一存在的字體最可靠。6.5 時(shí)間字段變成字符串時(shí)間維度功能失效前面提過日期類型轉(zhuǎn)換會丟。這個(gè)問題在發(fā)布帶時(shí)間維度的服務(wù)時(shí)會集中爆發(fā)——GeoServer 的 WMS 時(shí)間維度要求字段是java.sql.Timestamp或者Date如果是字符串配置頁面里那個(gè)時(shí)間選項(xiàng)卡根本不會出現(xiàn)。修復(fù)方式取決于目標(biāo)庫。PostGIS 里可以直接ALTER TABLE t ALTER COLUMN dt TYPE timestamp USING dt::timestamp前提是字符串格式規(guī)范。GeoPackage 里類型改起來麻煩通常的做法是轉(zhuǎn)換時(shí)就用-mapFieldType強(qiáng)制指定或者在桌面軟件里先規(guī)范格式。我遇到過一次數(shù)據(jù)里的日期是2023/5/1這種非標(biāo)準(zhǔn)寫法轉(zhuǎn)出來之后解析失敗全變 NULL最后是用 SQL 逐條清洗的。6.6 面圖層自相交導(dǎo)致部分要素不渲染前面提到過-makevalid這里說一個(gè)更細(xì)的坑有些自相交在轉(zhuǎn)換時(shí)被修成了空幾何。修完之后要素?cái)?shù)量沒變但幾何是空的GeoServer 渲染時(shí)直接跳過看起來就像是某些地塊憑空消失了。排查方法是轉(zhuǎn)完之后統(tǒng)計(jì)空幾何數(shù)量SELECT count(*) FROM parcel WHERE geom IS NULL OR ST_IsEmpty(geom);不為零就說明有要素被修沒了。處理方式有兩種要么回頭在源數(shù)據(jù)里手工修這幾個(gè)要素通常數(shù)量不多要么接受丟失但記錄下來。我一般選前者因?yàn)槊鏀?shù)據(jù)丟一個(gè)業(yè)務(wù)上可能就是一塊地沒了。7. 服務(wù)上線之后的三件運(yùn)維事發(fā)布成功只是開始真正讓人熬夜的是上線之后。這三件事我在每個(gè)項(xiàng)目里都會提前處理。7.1 連接池與 JVM 內(nèi)存GeoServer 默認(rèn)的 JVM 堆內(nèi)存偏小幾個(gè)大圖層一起渲染就容易OutOfMemoryError。啟動腳本里把-Xmx調(diào)大具體值看機(jī)器內(nèi)存一般給到物理內(nèi)存的一半以內(nèi)比較穩(wěn)。但要注意堆開太大Full GC 的時(shí)間也會變長反而造成請求卡頓所以不是越大越好。連接池方面文件型數(shù)據(jù)源GeoPackage沒有連接池概念但 PostGIS 有。max connections別設(shè)太高超過數(shù)據(jù)庫端的連接上限會直接拒絕。這個(gè)值我一般按前端并發(fā)數(shù) × 1.5估然后壓測驗(yàn)證。另外記得開validate connections數(shù)據(jù)庫重啟之后連接池能自動恢復(fù)不然會出現(xiàn)服務(wù)活著但所有查詢都失敗的情況。7.2 切片方案與緩存失效切片是性能和體驗(yàn)的分水嶺。有緩存和沒緩存同一個(gè)圖層的首屏?xí)r間差一個(gè)數(shù)量級。但切片有個(gè)前提圖層組、坐標(biāo)系、分辨率層級、瓦片尺寸必須和前端底圖完全一致。差一點(diǎn)都不行表現(xiàn)出來就是偏移或者縮放層級錯(cuò)亂。緩存失效策略我通常配成兩種按圖層手動清以及按區(qū)域清。數(shù)據(jù)更新頻率低的更新完手動清一次就行更新頻繁的用 GeoServer 的 REST 接口在數(shù)據(jù)導(dǎo)入流程結(jié)束后自動觸發(fā)清理比人肉操作可靠。注意清緩存的時(shí)候別忘了 GeoServer 還有一層要素緩存配置頁里的Queryable附近有個(gè)緩存設(shè)置。圖層元數(shù)據(jù)緩存不清改完數(shù)據(jù)可能還是舊的范圍和要素?cái)?shù)看著像數(shù)據(jù)沒更新其實(shí)是緩存騙了你。7.3 數(shù)據(jù)更新的落地策略轉(zhuǎn)換路線的最大痛點(diǎn)是數(shù)據(jù)不是實(shí)時(shí)的。所以必須提前設(shè)計(jì)更新流程而不是等業(yè)務(wù)方問為什么昨天的圖還沒變才想。我的常規(guī)做法是保留一套腳本ogr2ogr轉(zhuǎn)換帶-append參數(shù)做增量追加前提是源數(shù)據(jù)有穩(wěn)定主鍵或者整表DROP后重建數(shù)據(jù)量不大時(shí)更簡單可靠。腳本跑完自動調(diào) GeoServer 的 REST 接口刷新數(shù)據(jù)存儲、清圖層緩存。整套流程串起來更新就是從人工操作半小時(shí)變成跑個(gè)任務(wù)等幾分鐘。如果數(shù)據(jù)源是別人提供的、更新時(shí)機(jī)不可控那就得在前端或者圖層配置里給個(gè)數(shù)據(jù)截止時(shí)間的說明至少讓使用者心里有數(shù)。這個(gè)細(xì)節(jié)看著不起眼但能省掉大量你們數(shù)據(jù)不對的扯皮。最后說一句個(gè)人體會GDB 轉(zhuǎn) GeoServer 這件事技術(shù)難度其實(shí)不高難的是把數(shù)據(jù)本身的問題摸清楚。我做過這么多類似的項(xiàng)目真正卡住人的從來不是插件裝不上而是坐標(biāo)系是自定義的、幾何是壞的、字段是重復(fù)的、編碼是亂的。所以每次開工我都會花半小時(shí)把ogrinfo的輸出從頭到尾讀一遍把可疑的地方記下來先處理掉。這半小時(shí)往往能把后面三天的返工省下來。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰99资源站| 天天天干夜夜夜操| www.一起草av| 激情小说视频图片| 婷婷五月天激情网站| 亚洲无码www| 婷婷九月激情| 99re这里有精品手机在线| 日本三日本三级少妇三级66| 玖玖在线视频| 99久久久免费| 热久精品| 天天操九九插| 97久久久| xxxx久| 大香蕉520| 成人小说 五月天 婷婷| 香蕉久久国产AV一区二区| 99国产精品久久久久久久久久久| 玖玖婷婷色五月| 亚洲天天免费| 五月天色导航婷婷资源婷婷| 欧美日韩成人在线观看| 天天干天天操天天射 | 99自拍视频| 五月婷婷久草在线视频综合| henhencao国产在线| 超级碰碰视频无码| 久久婷鲁| 色爆五月| 思思热精品在线视频| 日本 @ va 免费| 九九热这里只有精品7| 五月天丁香色色| 亚洲六月色| 激情综合激情综合| 久久久免费精彩视频| 色婷婷国色天香综合| 五月天之色情综合网| 无码AV免费精品一区二区三区| 五月婷婷六月天| 婷婷六月激情丁香| 男女久久婷婷五月天| 久久综合综合久久| 亚洲婷婷基地| 久久久www| 六月激情网| 99久久超级| 久久婷色| 中文字幕精品无码一区二区| 国产成人精品一区二三区熟女在线 | 99久精品视频| 色色五月婷婷久久| 日韩狠狠色| 久久这里99| 激情综合五月激情XXXX| 婷婷五月天,影院| 亚洲永久免费| 日本色频| 五月的婷婷六月丁香| 三级三久久线久久99久目本WW| 国产4P视频精品五区| AA片在线观看视频在线播放| 激情98色婷婷五| www.婷婷| 丁香六月丁香婷婷激情| 亚洲国产黄色电影| 99超级碰碰| 操操精品| 色情五月综合婷婷| 五月在在观看| 青草五月天| 99免费视频在线观看爱| 亚洲激情综合| 色婷婷久久综合中文久久一本| 成人国产综合| 亚洲欧洲中文日韩久久AV乱码| 色婷婷在线视频| 成人日韩欧美| 丁香,开心成人,久久| 国产在线网| 无码激情AAAAA片-区区| 香蕉大综综综合久久| 婷婷综合中文| 在线观看亚洲视频影院| 婷婷五月天成人娱乐| 五月丁香久人妻中文| 色色热99| 狠狠狠狠狠狠狠狠| 人妻无码精品一区| 刘玥精品一区| 久激情网| 伊人婷婷激情| 亚欧州精品视频| 久久性爱视频网站| 日本一级大片| 激情婷婷丁香五月| www热久久yy9| 桃色成人网| 91综合网| 九九视频精品这里只有| 久久激情五月婷婷| 久草热8精品视频在线观看| 91妻人人爽人人看片| AV在线不卡网站| 亚洲成人高清在线| 天天舔天天摸天天透| 五月天色区| 99色视频| 色老久久| 丁香六月婷婷色XXXX| 天天操综合网站| 九九精品亚洲| 97色精品视频 | 欧美丁香五月| 久久婷婷色五月| 九月婷婷激情| 亚洲成人无码片| 成人Av在线大片| 婷婷色香六月综合激情| 久久综合激情| 另类视屏| 色五月婷婷色五月婷婷色五月婷婷| 五月丁香欧美综合| 午夜成人在线免费视频| 人妻VideOssS人妻| 五月天婷婷综合网| 99热欧美| 新精品99| a性生活久久无| 久久精品国产精品| 欧美日韩成人在线网站| 色情播放| www.yw尤物| 色色97丁香婷婷五月天| 天堂婷婷五月色| 婷婷综合五月天亚洲综合| 五月天激情婷婷丁香| 玖玖热视频| 五月婷婷,狠狠操| 激情综合5| 玖玖伦理电影| 色中色综合| 欧美乱码国产一级A片| 激情综合网,婷婷五月天| 99在这里有精品| 婷婷五月丁香基地| AV伊人青草丁香六月| 日本色色色| 五月丁香婷婷啪啪| 久久只有这里精品免费| 五月丁香久久| 日本人妻丁香婷婷久久寝取熟女五月| 青青草五月天| 啊V视频在线观看| 日韩艹比| 激情小说视频图片网| 亚洲婷婷丁香| 国产露脸150部国语对白| 天天婬色综合| 夜夜天天久久婷婷| 婷婷五月天激情小说| 五月婷婷性爱网| 美女天天艹人人爽| 五月丁香久久综合| 欧美大香蕉视频| 色色色色av777| 亚洲成人免费电影| 亚洲激情无码久久| 亚洲AV人人操| 一逼色综合| 综合色色色| av九九| 97久久久久久久久久久| 99精品视频在线6| 婷婷五月天开心网| 五月丁香婷婷激情四射迷人| 五月婷六月婷婷| 性欧美大战久久久久久久83| www.婷婷,com| 丁香美女五月天婷婷| 九九热最新地址| 一本色道久久88加勒比| sisi热国产| 亚洲va综合va国产va中文| 婷婷五月综合色小姐小说| 天色综合网站| 九九在线91| 99色视频免费在线规看| 婷婷丁香www视频日本韩国| 丁香5月婷婷| 五月天天丁香婷婷| 99re这里| 九色七七| 99热精品在线播放| 色色热99| 人妻熟人中文字幕一区二区| 丁香五月天成人| 日本色色影片| 五月天天天色| 婷婷色5月天在线。| 婷婷五月六月丁香| 婷婷色影院| 六月丁香五月婷婷| 欧美色色色| 五月天婷婷社区| 九九蜜臀精品| 色婷婷女优有码五月亭| 婷婷深爱五月| 五月丁香无码视频| www,久久久| 夜夜撸日日操| 天天做天天爱天天要| 欧洲区自拍| 97碰人人操| 久久综合中文| 一本婷婷丁香久久| 久婷五月| 五月天婷婷中文字幕在线播放| 亚洲视频码| 色五月中文网| 久久五月天激情视频| 狠狠色婷| 婷婷五月天久久久| 九九色网| 亚洲1区| 久久草婷婷丁香网站| 五月天丁香婷婷视频网址| 色播五月婷婷五月| www.sd-xiangsu.cpm| 久久久日韩特色特黄AAAA| 色狠狠999综合| AV美美午夜| 免费在线a| 97在线精品| 韩国婷婷丁香五月| 99日本黄站| 国产人妻人伦精品一区二区| 另类小说色婷婷| 丁香五月天激情五月天激情五月天激情网 | 激情五月天色色网| 婷婷天堂综合网| 五月丁香六月成人| 五月丁香六月婷婷综合| 五月久久婷婷丁香| 日韩无码系列| 99热99艹在线观看| 亚洲欧美在线观看| 97色婷| 五月丁香婷婷综合网色欲| 午夜丁香综合婷婷| 另类丁香综合| 五月天婷婷网站| 无码少妇高潮喷水A片免费| 能看的av网站| 99热a片免| 丁香六月婷婷开心| 在线播放中文字幕| www.婷婷.com| 超碰9在| 嫩草AV久久伊人妇女超级A| 四月婷婷五月丁香| 国产性色蜜乳| 久久99久久99精品免观看软件 | 狠狠色综合网站久久久久| 婷婷亚洲丁香五月| 人色五月天婷婷| 日韩黄色网络| 大香蕉免费9| 七七久久婷婷| 午夜福利8055| WWW.久久久久久久久久久久久| 午夜精品人妻无码一区二区三区| 美日韩成人| 婷婷色在线观看| 26uuu在线观看| 五月婷婷激情四季| 久久久久婷婷五月热综合| 91精品又长又大又粗又爽又猛| 99热在线观看| 国产一级视频a| 久久综合九九| 九九黄色网| 天天骑天天操| 亚洲乱码日产精品BD| 九色自拍| 久热只有精品| 另类小说五月天| 丁香五月色情| 99这里只有精品| 色五月婷婷网| 亚洲精品又粗又大又爽A片| 日韩啪啪网| 亚洲久久激情| 99激情网| 激情另类综合| 天堂久久大香蕉| 天堂美国久久| wwww.色婷婷| av免费在线观看0| 国产欧美大香蕉一区| 性爱激情综合网| 国产人妻777人伦精品HD| 国产AV一区二区三区最新精品| 乱岳熟女50岁| 骚逼视频一区2区| 丁香深五月婷婷| 丁香婷婷激情四射五月| 好色婷婷| 伊人大香五月天| 五月丁香久久综合| 欧洲第一久色| 五月婷婷丁香大陆免费| 五月天婷婷基地| 久久久五月五丁香| 棕合影院色色| 日本综合久久| 丁香五月婷婷亚洲激情四射| 四月婷婷五月色综合| 色丁香五月天| 亚洲小视频| 婷婷俺去也| 操久久网| 性爱111111| 综合五月丁香六月婷婷| 色色色精品无码区| 99热在线观看免费精品| 成人无码髙潮喷水A片| 婷婷五月天桃花网| 91狠狠综合久久久久久| 婷婷丁香五月天综合在线日韩| 亚洲在线网站| 激情婷婷丁香五月天小说| 可以免费看av网站| 99爱精品| 免费无码毛片一区二区A片| 国产精品久久久爽爽爽麻豆色哟哟| 五月婷婷丁香| 免费人人操| 天天天天天天天干| AV在线大香蕉| 色吧网综合| 91狠狠色| 丁香五月成人婷婷| 色色热| 色5月婷婷色| 激情5月婷婷| 另类视频综合| 五月婷婷激情日本| 665566 无码| 全网最新网黄大秀直播高清,主播国产录屏在线 | 亚洲婷婷91丁香| 综合色色婷婷| 激情亚洲网| 免费无码毛片一区二区A片| 五月丁香六月成人| 日日操天天| 久久性爱视频| 色婷婷XXXXX| 久久激情五月网| 99这里都是精品| 日本黄色在线观看| 99久久激情视频| 婷婷九月| 色婷婷久久综合久色| 五月丁香成人小说| 激情久久丁香| 亚洲色优| 久久这里只精品| 婷婷网影院| 五月天婷婷视频30| 日操夜操天天操不卡| 99r久久这里只有精品| 日本一级特黄大片AAAAA级| 极品人妻VIDEOSSS人妻| 婷婷五月电影| 99热e| 婷婷色丁香六月| www.色五月| 色综合久久99色| 婷婷亚洲五月| 婷婷人妻激情| 五月婷婷日| 做爰丰满少妇1313| 久久成人综合五月天| 五月婷婷综合激情| av九九| 成人免费视频一区| 色综合色色| 婷婷第一页| 五月天天天天天天天天天天天婷婷婷| 丁香五月欧美激情| CHINESE熟女老女人HD视频| 玖玖资源部在线播放| 性av| www,com,五月色色| 思思热天天看| 五月婷婷 婷婷五月 一区二区 久久久| 夜夜撸日日骑| 综合99久久天天综合| 超碰人人操人人干| 久久只这里有精品| 婷婷激情综合色五月久久图片| 色综合九九| 丁香六月婷婷开心| 欧美久久久久久久久中文字幕| 欧美啪啪9| 亚洲网站在线鸭子av| 国产性爱在线| 日韩欧美颜射| 夜夜骑天天玩天天日| www、丁香五月天| 五月丁香啪啪| 99热免费观看| 色青青视频| 亚洲天堂无码| 日韩性爱AV| 天天综合五月天| 亚洲激情淫网| 久久婷婷丁香| 国产精品成人网址| 91色婷婷综合久久中文字幕二区| 色综合色色色| 五月丁香六月婷婷a v| 91久久综合| 亚洲无AV在线中文字幕| 无码区婷婷五月花开| 婷婷五月永远18免费久久久| 在线观看的av| 欧美操我| 七月丁香婷婷 色色| 婷婷色九月| 精品三区影院| 色婷婷六月精品| 97操在线视频| 任你搞网站| 在线中文AV| 九九热这里只有精品6| 蜘蛛女侠2003满天星免费观看| 丁香五月婷婷五月天在线| av第一二区| www久视频com| 日本人妻伦在线中文字幕| 五月婷精品| 玖玖热视频| 五月色丁香婷婷中文字幕| 色婷婷综合网站| 超碰不卡在线| 涩涩婷婷五月| 91精品综合久久久久久五月天| 96精品成人无码A片观看金桔| 超碰成人电影| 日韩亚洲视频| 九九伊人网| 国产激情av| 五月激情天天干| 狠狠色丁香五月婷巨| 月丁香久久久| 97国产精品女人碰碰| 五月天激情国产综合婷婷婷| 九九热欧美| 九月婷婷激情| 99精品在线| 青青草婷婷综合五月| 99热香港| 无码一区二区三区四区五区| 色综合丁香婷婷| 日韩欧美一道四区中文字幕| 婷婷五月天 丁香五月天 裸体| 伊人久久婷婷| 色色国产| 亚洲无码99| 婷婷大乡焦噜噜| h在线看免费版在线看| 日韩乱玛久久| 婷婷永久在线| 丁香六月在线| 九九色综合九九色| 五月天婷婷综合免费| 伍月婷丁香婷| 激情综合色| 色九月激情综合网| hd五月婷婷在线| 米奇影视资源777狠狠色婷婷五月天激情网 | 久久婷.com| 一级无码作爱片| 色欲色欲久久宗合网| 这里只有精品1| 九九成人| 99ER热精品视频| 亚洲综合激情五月久久| 丁香五月亚洲综合丝袜| 99天堂在线观看免费视频| 亚洲久热| 久久婷婷五月丁香蜜桃网| 亚洲国产无线乱码在线观看| 99精品成人无码A片观看金桔| 日本色色色色色色色色一色二色| 婷婷狠狠干| co超碰在线观看| 99久久高清视频| 婷婷激情综合色五月久久91| 在线91日韩| 91成人电影| 97碰久久| 天堂婷婷五月在线| 亚洲丁香五月美女| 五月激情网站| 五月天成人综合| 99爱在线视频| 九九九九九九综合| 久久久18| 天天爽天天爽天天爽天天爽天天爽| 亚洲美女婷婷五月天| 琪琪理论片| 天天摸天天爽| 天天做天天爱天天爽综合网| 激情综合婷婷| 日本猛少妇色XXXXX猛叫| 热婷婷av| 五月丁香激情啪啪| 免费久久这里只有精品99| www.五月丁香| 天天日天天舔| 五月婷婷综合潮喷| 亚洲色综合| 色婷婷丁香五月| 大色鬼综合| 色狠狠999综合| 这里有精品99| 十月丁香九月婷婷综合| 五月婷婷六月色| 中文字幕av网站| 91九色熟女| 天天射美女| 五月婷婷开心亚州在线| ww久久| AA丁香综合激情| 亚洲有码在线视频| 五月天激情网址| 久久免片| 色色草97| 狠狠 婷婷| 夜夜操天天爽| 亚洲视频在线观看| 99乱视频| 五月天婷婷激情春色小说| 日韩成人电影AV| 国产精产国品一二三在观看 | 99在线精品免费视频| 色婷婷亚洲综合天堂| 大香蕉网站,大香蕉综合| 久色资源网| 婷婷色五月激情| 狠狠干天天日| 色综合久久综合| 婷婷国产综合| 97色色色| 超碰二区| 亚洲狠狠干| 婷婷五月花.97| 狠狠爱综合网| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 色婷婷综合视频| www.色五月| 丁香久月| 久久综合影院| www.久操| 操国产人妻| 丁香五月手机在线| 91大神操美女| 久久五月天婷婷视频| 免费黄色AV| 丁香婷婷久久综合在线| 九热在线这里有精品6| 色色色图| 人妻AV在线观看| 五月色婷婷影视在线电影| 啪啪一区| 97福利视频| 日日操夜夜撸| 外国碰视频网站97| 婷婷欧美| 女高怪谈在线观看| 婷婷久久婷婷| 直接看的AV| 国精产品一区二区三区| 夜夜综合色| 666555。COm毛片| 婷婷激情鹿城五月天| www.夜夜操| 热九九精品| av中文在线| 五月丁香怕怕综合| 欧美色综合天天久久综合精品| 日韩狠狠色婷婷| 99色在线| 天天草狠狠擦| 99在线视频观看| 色婷五月| 人人肏逼视频在线一区二区| 玖玖资源站中文| 日本婷婷激情四射中文字幕在线观看| 5月色亭亭视频| 99热热热天天人人人超超碰| 国产色99| 91色婷婷综合久久中文字幕二区| 久99热| 九九热中文| www.五月天婷婷| 婷婷五月天成人网| 91婷婷色| 午夜69成人做爰视频| 五月丁香婷婷久久| 五月婷婷九九久久| 色五月婷婷av| 五月婷婷视频啪啪美女| 久久日婷婷| 5月婷婷6月六月丁香| 丁香色五月AV在线| 日本久久网| 综合图区激情| 婷香五月| 精品国产乱码久久久久久免费| 九九久久五月天综合伊人| 99免费青青蜜臀| 4399在线日本A片| www.久久久久久久久久.com| 婷婷色网| 激情婷婷另类| 午夜免费试看| 99久久综合狠狠综合久久| 五月婷婷丁香社区| 77799热| 天堂美国久久| 久久网日本| 色婷婷亚洲在线| 婷婷五月色惰| 毛片九九九九九九九九18| 狼人婷婷综合| WwW天天干| 91偷拍视频| .青娱乐天天操B| 丁香久久九九99| 97干在线| 久久婷婷六月综合综合色| 色婷五月| 久久综合干| 99热777| 久久色五月| 婷婷情色五月| 99视频在线精品| 欧美va在线观看| 免费色色色| 伊人热婷婷| 四川BBB搡BBB搡多人乱亂| 婷婷丁香人妻天天爽| 99草在线免费观看视频| 免费观看全黄做爰的视频| 丁香五月天社区| 色婷亚洲| 中文字幕丰满乱孑伦无码专区| 99热99日天天干| 五月丁香啪啪啪| 噜噜狠狠色综合久| 色丁香五月天婷婷| 五月婷婷开心综合| 午夜精品777| 另类图片五月天婷婷| 色噜噜狠狠色综合网| 伊人青涩网| 26uuu淫色| 狠狠草天天草| 色婷婷色99国产综合精品| 国产三级在线播放| 二区成人视频| 久久视9精| 91麻豆国产三级精品福利在线观看| 九九精品99| 天天干天天干天天干天天干天天干| 五月婷婷精品无在线| 99热99日…..| 婷婷丁香视频在线观看免费 | 色综合播放| 精品一区二区三区四区五区六区介绍 | 九九热超碰| 日本一级特黄大片AAAAA级| 婷婷五月色综合| 天天干天天操天天爽| 狠狠色狠狠色综合日日91| www.思思99热| 东北婷婷五月天| 色婷婷av在线观看| 五月天播播综合| 久99| 久久丁香五月天| 亚洲成人免费电影| 婷婷丁香在线| 国产AV一区二区三区最新精品 | 日本丁香五月| 九九精品视频在线观看| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 毛片新网地| 久久这里只| 中文乱子伦视频| 99亚洲无码| 天天日天天插| 精品久热| 色婷婷丁香五月| 拍真实国产伦偷精品| 五月天婷婷基地| 99在线视频。| 丁香五月天天| 久久这里精彩免费在线观看| 久久婷婷激情五月天一区二区| 91婷婷| 婷婷丁香成人网址| 热久视频| 国产成人99久久亚洲综合精品| 另类视频在线| 五月综合激情婷婷六月色窝| 青青草婷婷久久| 狠狠爱婷婷丁香| 九九视频这里是精品五月| 婷婷五月婷婷五月天| 国色天香伊人狠狠色| 99乱视频| www.91色| 人人爽欧美婷婷久久久五月丁香| 婷婷大乡焦噜噜| 色色网站| 教师性爱毛片| 99久热在线精品99re6热| 操操天堂| 婷婷五月天无码视频| 五月开心色| 深夜男女福利刺激影院一区完整| 91色呦哟| 日本久久视频| 激情综合婷婷| 精品亚洲国产成AV人片传媒 | 色综合色综合色综合| 婷婷97| 丁香六月亭亭久久综合| 五月激情站| 亚洲国产精品VA在线看黑人| 日本毛片内射| 亚洲激情五月丁香久久久久| 五月婷婷六月丁香在线| 激情影院69| 五月天激情偷拍| 五月婷婷天堂| 免费黄网不卡AV| 五月网激情| 久久五月天色| 亚洲超碰青涩| 99热乎| 婷婷天天日婷婷| 九九热黄色| 夜夜操狠狠操| 东京热免费视频网站| 激情的五月| 激情五月综合| 极品九九九九九九| 五月婷婷激情综合拍| 五月丁香色色网| 日韩AAAAAAAAAAA片| 丁香六月激情综合| 日韩有码久久| 夜夜爽天天日| 99色综合| 99国产小视频免费观看| 9九色首页| 婷婷狠狠综合网入口| 五月停亭六月,六月停亭的英语 | 91在线97视频| 丁香婷婷五月天网站| 亚洲天堂久久| 婷婷内射视频在线| 色五月天综合| 婷婷五月天AV| 久久久99婷婷久久久久久| 这里只有精品免费| 激情综合视频| 91色情播放| 婷婷综合九色伊人| 日日日影院| 久久AAAA片一区二区| 99色这里| 超碰成人免费| 深爱婷婷基地| 99热99色| 四色永久成人网站| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 99久久婷婷精品视频| 五月婷婷丁香在线视频| 精品一区二区三区免费毛片爱| 色色婷五月天| 99欧美| 777精品成人a v久久| 99视频只有精品| 欧美性二区| 91婷婷丁香| 9人人操人人看| 五月天婷婷基地| 五月丁香激情四射综合| 日韩成人精品中文字幕| 99在线播放视频| 亚洲丁香花色| 五月丁香日本在线视频观看| 欧美激情性做爰免费视频| 亚洲色精彩| 99精品在线观看视频| 六月亚洲| 逼特逼在线免费播放| 2025年最新亚洲在线欧美| av中文网| 人草人人| www久久久久久久97| 伊人狠狠丁香婷婷综合尤物| 99在线精品视频免费| 天天日天天色| 丁香婷婷视频一区二区| 秋霞少妇毛片| 俺去也婷婷| 五月丁六月香av| 婷婷丁香综合色AV| 婷婷五月综激情| 日本人妻A片成人免费看片| 99精品网| 米奇影视五月天| 大香蕉五月| 久久狠狠干| 五月天婷婷激情| 色久五月| 久久婷婷综合网| 亚洲男女激情| 色在线视频网2025| 14色综合婷婷| 激情五月婷婷视频| 天天做天天爱天天玩| 三级99热| 欧美黑人巨大性生话| 婷婷综合网站| 91vip在线观看| 婷婷五月天成人网| 色五月大| 五月综亚洲| www..999热久| 女人高潮内射99精品| 久久爱婷婷| 狠狠干综合| 九九九九中文字幕| 99热免费精品| 婷婷激情视频欧美视频自拍视频欧美剧| 亚洲性爱电影| 成人精品一区日本无码网| 久9免费视频| 狠狠色丁婷婷日日,伊人激情综合网| 成片免费观看大全| 婷婷伊人綜合中文字幕| 五月丁香综合激情网| 九九AV| CAoub青青超碰| 丁香六月婷婷| 超碰成人在线观看| 久久机热这里只有精品| 激情五婷精品网在线观看网址| 久久丁香综合精品综合| 色情婷婷| 玖玖婷婷视频| 99爱爱| 日日色综合| yazhou seshipin| 婷婷五月天激情网| 91在线人| 国产黄色在线观看| 亚洲激情av| 欧美超级视频97| 五月天婷婷六月| 99操99| 婷婷丁香五月基地| 亚洲网在线观看| 五月婷婷六月丁香在线| 日韩成人电影AV| 免费不卡狠操美女视频网| 99热在线中文字幕| 91丨九色丨东北熟女| 免费婷婷| 伊人大香蕉综合在线| 一本色道久久综合狠狠躁一二三| 99久久网站| 在线综合网| 天天操天天插| 丁香五月天激情综合| 深爱激情久久| 天天天天天天噜| 激情五月天之六月婷婷| 天天综合图片| 五月丁香怕怕综合| 狠狠色丁香99| 伊人五月天综合网| 五月伊人综合| 只有精品在线观看| 婷婷久久免费看| 久久色频| 无码中文一区二区三区| 婷婷六月丁香开心深深爱| 色999五月色| 亚洲99精品欧美一区| 婷婷五月天天天日日夜夜| 精品久久婷婷五月天| 亚洲午夜AV| 99热 在线观看| 99爱视频精品在线观看| 久久只有精品| 久久久久亚洲A∨成人乱码电影| 色综合色欲综合天天免费| 丁香五月在线观看综合| 丁香 婷婷五月| www.五月婷婷久久.com| 激情小说视频图片网| 亚洲激情综合免费| 99九九视频精彩在线| 色五月婷婷在线| 五月婷精品| 亚洲热久久| 国产熟妇乱子伦hd| 久久人妻少妇嫩草AV| 久久丁香婷婷色情综合| 亚洲9久久精品| 强伦轩人妻一区二区电影| 大香蕉 婷婷| 99热超碰人| 日韩精品一区二区亚洲AV观看| 久久婷婷丁香五月宗合| 色人久久| 热久久成人| 另类五月激情| 香蕉婷婷色五月| 久久久久9999| 熟女强人妻一区二区三区四区无| 九九偷拍网| 激情综合五| 色香欲综合| 国产FREESEXVIDEOS性中国| 亚洲不卡123| 丁香五月综合激情性爱| 99这里只有精品视频在线| 狠狠色无码| 日韩在线视频网站| 99色在线| 99视频在线啪| 亚洲无码播放| 色五月天视频| 成人精品人妻| 1024日韩| 久久婷婷五月综合啪| 色碰碰视频| 丁香婷婷综合激情五月色| 色噜噜狠狠一区二区三区| 六月丁香啪啪| 香港九九六区八区99| 五月婷婷色情| 国产六月婷婷| www超碰| 激情综合婷婷| 国产精品涩涩涩视频网站| 久9视频免费播放| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 青草青草视频2免费观看| 久久久潮喷-久久久九九-成人AV| 99啪啪网| 中文字幕成人| 色五月 五月婷婷| 久久ri精品| 日本三级韩三级99久久| 天天综合永久| 色色色网站| 激情五月天色色色| 在线你懂的亚洲欧| 狠狠干总合| 99热这里全都是精品| 丁香五月天堂亚洲社区| 99re久热只有精品6在线直播| 思思re99视频在线观看| 少妇性按摩无码中文A片| 激情婷婷五月| 丁香五月宝贝激情网| 另类图片天天影视在线观看| 麻豆观看夏晴子| www.婷婷网| 婷婷五月天伊人网| 精品一二三区久久AAA片| 1024成人在线观看| 婷婷精品综合| 五月丁香综合啪啪| 99re这里只有精品99| 五月丁香婷婷成人综合网| 国产成人精品亚洲线观看| 丁香婷婷人妻| 久久婷婷人人| 五月天怕怕| 国产性色蜜乳| 少妇人妻人伦A片| 色五月天丁香| 99久在线观看| 激情五月婷婷啪啪| 丁香六月激情国产| 啪啪操网| 国产99视频永久免费| 亚洲色综合| 激情婷婷久久| 亚洲乱码w在线观看| 超碰免费观看| 99精品偷自拍| 久久五月丁香婷婷| 99热都是精品| 99热这里只有精品国产免费| 综合久久综合久久| 97婷婷狠狠| 婷婷五月天av| 91综合国免费久入| 婷婷五月天情色| 久Se视频在线观看| 天天爽天天摸| 激情五月婷婷综合秋霞| 五月丁香狠狠| 五月婷婷综合激情小说| 丁香婷婷视频一区二区| 精品香蕉99久久久久网站| 亚洲色色精品| 婷婷丁香六月天| 色天天综合色| 激情婷婷在线| 色5月婷婷| 久久 中文 日本| 狠狠色综合网站久久久久| 成人在线视频一区| AV五月婷婷露脸| 日韩在线观看亚洲| 亚洲欧洲另类| 狠狠搞五月天| 99re6在线视频精品免费| 狠狠狠婷婷五月综合| 国外亚洲成AV人片在线观看| AA丁香综合激情| 日本人妻伦在线中文字幕| 丁香六月天婷婷开心综合| 色九九综合色| 五月丁香婷婷免费视频| 成人网页在线观看| 九九热最新地址| 亚洲av成人一区二区电影在线| 免费看欧美成人A片无码| 色婷婷综合网| 婷婷五月天色播| 六月婷婷影院| 90色免费视频| 97久久人人操| 亚州视频九九99| 西西4r午夜剧场| 婷婷的久久网站| 激情五月黄色小说| 91日婷婷在线| 久狠狠狠| www.99热日韩.com| 七七久久综合| 五月丁香啪啪网| 人妻性操逼中文字幕 国产| 色色色综合网| www.色色色色| 噜噜狠狠| 亚洲国产精品二二三三区| 狠狠色噜噜狠狠狠888| 91精品婷婷国产综合| 大地9中文在线观看免费高清| 欧美一级操逼视频| 大香蕉天堂| 久久九九热38| 丁香激情五月天| 伊人婷婷激情| 成人日韩欧美| 69色色视频| 五月天社区| 九九久久五月天综合伊人| 91人人爽狠狠狠| 亚洲春色奇米影视| 亚洲综合激情五月久久| 五月天精品视频| 婷婷激情五月综合| 久久久婷丁香五月| 五月天婷婷綜合院| 五月婷婷五月天天| 国产精品人人做人人爽人人添| 99精品热| 欧美噜一噜| 婷婷大乡焦噜噜| a性生活久久无| 玖玖热视频| 五月婷婷,六月激情| 91超级碰在线视频| 亚洲乱码日产精品BD| 婷婷99| 噜噜噜噜噜在线| 九九精品99久久久| 久久大国产香蕉| 久久九九网| 日本丁香五月| 亚洲丁香五月在线观看| 丁香五月综合婷婷| 婷婷五月天黄色网址| 亚洲情综合五月天| 色五月天综合网| 人妻久久婷婷| 五月丁香AV在线| 婷婷六月丁香久| 只有精品视频在线观看| 婷婷五月丁香色色| 欧美三9久九观看| 搡BBBB搡BBB搡18| 亚洲天堂爱爱| 色婷婷六月天| 91要啪| 丁香五月五婷| 六月色色婷婷| 三级三久久线久久99久目本WW| 欧美日韩五月婷婷| 久久婷婷的综合色丁香五月| 婷婷五月天基地| 天天操天天插| 五月丁香六月婷婷亚洲综合| 色情久久久| 午夜九九电影| 97人人操人人干| 91精品在线看| 99热久草| 香蕉99网| 激情婷婷久久| anquye伊人| 99re最新地址视频| 91日日日| 国产综合视频婷婷| 99久99久| 丁香五月伊人| 三日本无码| 日韩精品视频中文字幕| 日韩性爱AV| yazhoujiqingav| 99热久久这里只有精品| 国产午夜精品AV一区二区麻豆| 色婷婷激情| 丁香五月天啪啪a日本| 五月天婷婷亚洲| 五月婷婷六月婷| 噜噜噜噜综合在线| 激情婷婷丁香色五月| 97色干在线观看| 丁香五月婷婷av影院| 强奸幻女毛片| 九月丁香网婷婷| 中文字幕婷婷在线| 九九XX视频| 婷婷五月丁香亚洲| 99九九99九九九视频精品| 人妻AV在线| 激情五月丁香五月色| 成人一区在线观看| 丁香花婷婷五月天| 色欲久久久久久综合网综合网| 婷婷黄色| www.91色| 99久久国产成人精品| 深爱激情网噜噜色| 天天做 天天爱| 九九热最新| 大香蕉综合网| 亚洲激情AV| 91久久18| 中文字幕网伦射乱中文| 天堂在线婷婷| 色色色色色色色色五月先| 超碰激情网| 日本噜噜色网| 天天拍天天操| 婷婷六月天天| 成人做爰A片免费看视频| 久久爱综合| 99热日| 婷婷六月激情小说网| 亚洲性色XXXXX| 婷婷五月天开心激情网| 色五月婷婷久久| 天天日色情| 91疯狂操操操操| 99国产小视频免费观看| 五月天播播| 五月丁香人妻| 中文字幕在线人妻| 色五月网址| 婷婷丁香五月天在线视频| 欧美黄色韩日网| 大香蕉九九| 在线播放成人| 激情宗合哪里能看| 六月婷婷五月丁香| 99成人| 九伊人网| 五月婷婷综合色拍| 九九热视频精品| 五月综合视频| 99在线视频免费| 天堂AV三级| 深爱激情五月天| 六月丁花香啪啪激情欧美| 超碰人人99| 欧美性丁香色色五月天| caop在线视频| 亚洲色啪| 天堂久久婷婷| 人妻精品久久久久久| 天天弄天天操| 婷婷五月欧美| 97色五月天| 97精品自拍| 超碰免费人| 激情五月深爱五月| 久久久久久久8| 这里只有精彩小视频视频网站| 婷婷的色色五月天| 91五月花丁香| 玖玖爱伊人| 激情五月天影院| 综合色在线| 欧美日朝成人| 九九色播五月丁香| 婷婷五月欧美| 这里只有精品免费视频在线观看| 99啪啪视频| 色婷婷天堂| 色婷婷六月| 人妻丰满精品一区二区A片| 激情欧美婷婷| 丁香花色色网| 久久99草五月婷婷| 五月天激情无码高清| 欧美性生交XXXXX无码小说| 天天色综合天天| 婷婷五月天综合在线 | 五月天婷婷激情小说电影| 欧美情色一区| 婷婷舔| av亚洲国产小电影| 五月丁香综合激情| 亚洲综合无码| 182TV亚洲| 婷婷色5月激情网| 久草免费福利视频| 色色婷婷综合网| 久久无码成人| 激情综合婷婷五月| 亚洲综合激情五月久久| 激情五月综合网| 殴美激情综合网| 久久婷婷五月综合色奶水99啪| 色噜噜狠狠色综合成人网|