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

ARTICLE DETAIL

資訊詳情

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

ArcPy批量化制圖實(shí)戰(zhàn):數(shù)據(jù)源替換、布局更新與批量導(dǎo)出

ArcPy批量化制圖實(shí)戰(zhàn):數(shù)據(jù)源替換、布局更新與批量導(dǎo)出 做GIS的人十有八九都經(jīng)歷過那種“改圖改到懷疑人生”的批量出圖時(shí)刻一個(gè)項(xiàng)目上百張分幅圖數(shù)據(jù)源換了目錄圖例位置挪了比例尺文字改了然后就一晚上什么都干不了全在手動刷新布局、改一個(gè)又一個(gè)細(xì)節(jié)、再一張張導(dǎo)出。說實(shí)話這種活第一次遇到你會覺得是體力勞動忍忍就過去了第二次遇到你會開始懷疑自己為什么用GIS不用Excel第三次你大概率會想這筆時(shí)間花得值嗎后來我下決心把整套流程里能用腳本解決的環(huán)節(jié)全部交給ArcPy才終于把自己從枯燥的“人肉刷新器”崗位上解放出來。這篇文章就圍繞一個(gè)真實(shí)高頻場景展開——用ArcPy自動批量化制圖重點(diǎn)是修改圖層數(shù)據(jù)源、修改布局元素、批量導(dǎo)出布局地圖。我會把整套思路、腳本邏輯、踩過的坑、能直接抄作業(yè)的代碼結(jié)構(gòu)一次性講透。這套東西適合誰適合那些需要維護(hù)大量地圖文檔、定期更新數(shù)據(jù)源路徑、按固定模板出一批圖紙的GIS從業(yè)者不管是ArcMap還是ArcGIS Pro的用戶只要理解了核心對象模型遷移起來都不難。如果你是剛接觸ArcPy的小白跟著這篇文章走完你會明白腳本不是在“代替”你做圖而是把制圖流程里最重復(fù)、最機(jī)械、最不值得你熬夜的部分全部交給了可復(fù)現(xiàn)、可版本管理的代碼邏輯。1. 制圖自動化的關(guān)鍵前提先理解你要操作的“地圖文檔”到底是什么很多人寫ArcPy腳本失敗不是代碼寫錯(cuò)了而是對ArcGIS文檔模型理解得不夠透徹。ArcPy能做什么不能做什么完全取決于你對Map Document和Layout布局的認(rèn)知。所以這塊內(nèi)容我會講得稍微底層一點(diǎn)但保證你聽完就能用。1.1 ArcMap時(shí)代與Pro時(shí)代的對象模型差異先說ArcMap的老牌對象模型。在ArcMap里根對象是MapDocument就是那個(gè).mxd文件。它內(nèi)部包含數(shù)據(jù)框Data Frame、圖層Layer、布局視圖Layout里的各種元素Element以及地圖的頁面設(shè)置、打印參數(shù)等。ArcPy操作mxd的老接口是arcpy.mapping這組接口雖然看起來老氣但穩(wěn)定性和可讀性其實(shí)非常高我當(dāng)年就是靠它把上百張圖的出圖時(shí)間從兩晚上壓縮到了兩個(gè)半小時(shí)。到了ArcGIS Pro時(shí)代情況有所變化。Pro的工程文件是.aprx保存的是項(xiàng)目工程里面可以有多個(gè)地圖Map、多個(gè)布局Layout布局里包含地圖框Map Frame、圖例、比例尺、文本等元素。Pro的ArcPy接口是arcpy.mp它的設(shè)計(jì)思路跟arcpy.mapping很像但對象層級更清晰同時(shí)引入了解鎖機(jī)制——你要先獲取一個(gè)Layout對象再訪問里面的元素列表。對比下來Pro的api在處理多布局、多地圖導(dǎo)出時(shí)的靈活性更高但mxd時(shí)代的一些經(jīng)典方法比如按圖層名查找、按元素類型遍歷思路完全通用因?yàn)楸举|(zhì)都是“遍歷容器對象按照屬性和類型去修改”。不管哪種環(huán)境核心思維都一樣文檔是一個(gè)容器里面有各種子對象腳本做的事無非是連到容器、遍歷目標(biāo)對象、判斷條件、修改屬性、保存或?qū)С?。理解了這一點(diǎn)你寫腳本時(shí)就不會“一行代碼查一個(gè)文檔”那樣低效了。1.2 為什么改數(shù)據(jù)源是高頻需求里的高頻改數(shù)據(jù)源基本是所有批量化制圖工作流里最常見、也最不能出錯(cuò)的一步。原因很簡單圖紙的底圖和符號體系往往幾年不換但GIS數(shù)據(jù)文件所在的位置可能年年變——換了新服務(wù)器、項(xiàng)目歸檔挪了盤符、驗(yàn)收時(shí)要求統(tǒng)一數(shù)據(jù)目錄。如果你的mxd或aprx里面幾百個(gè)圖層的數(shù)據(jù)源路徑全部都是絕對路徑那一旦目錄結(jié)構(gòu)變化打開文檔就是滿屏紅感嘆號所有圖層數(shù)據(jù)全部斷鏈。ArcPy最擅長處理的就是這種“機(jī)械但量大”的路徑替換工作。它不需要你手動一個(gè)個(gè)圖層去右鍵、屬性、設(shè)置數(shù)據(jù)源而是通過腳本快速遍歷所有圖層根據(jù)舊路徑的規(guī)則批量匹配新路徑。這不僅僅是省時(shí)間的問題更關(guān)鍵的是它保證了一致性——人手操作時(shí)很容易漏掉某個(gè)隱藏圖層但腳本遍歷是全面的、可復(fù)現(xiàn)的。1.3 補(bǔ)充一個(gè)基礎(chǔ)概念工作空間與數(shù)據(jù)源定位在寫腳本之前需要先理解兩個(gè)詞workspace工作空間和dataset數(shù)據(jù)集。在GIS里workspace可以是一個(gè)文件夾、一個(gè)地理數(shù)據(jù)庫File Geodatabase或者一個(gè)數(shù)據(jù)庫連接。圖層數(shù)據(jù)源定位本質(zhì)上就是“告訴文檔這個(gè)圖層要從哪個(gè)數(shù)據(jù)源的哪個(gè)數(shù)據(jù)集加載數(shù)據(jù)”。用ArcPy改數(shù)據(jù)源有兩條路線一條是直接修改圖層的workspace路徑另一條是使用replaceWorkspace或者replaceDataSource方法。前者適用于單純換目錄的情況后者更強(qiáng)大因?yàn)樗梢酝瑫r(shí)處理工作空間類型變化比如從shp換到geodatabase和數(shù)據(jù)結(jié)構(gòu)變化。我在實(shí)際項(xiàng)目中通常會先確認(rèn)目標(biāo)數(shù)據(jù)源類型再決定用哪種方式。如果你把shp數(shù)據(jù)源的圖層直接替換成geodatabase要素類但要素類名稱和字段結(jié)構(gòu)都不一樣那光靠replaceDataSource也救不了——所以先檢查數(shù)據(jù)結(jié)構(gòu)永遠(yuǎn)是第一步。2. 核心腳本思路拆解從修改圖層數(shù)據(jù)源到布局元素更新現(xiàn)在進(jìn)入正題。我不打算只貼一段代碼就完事而是把整個(gè)實(shí)現(xiàn)過程拆成四個(gè)完整步驟每一步對應(yīng)一個(gè)核心函數(shù)并且解釋每個(gè)函數(shù)背后的設(shè)計(jì)意圖。這樣你拿到代碼后既能直接用也能根據(jù)自己項(xiàng)目的特殊情況做修改。2.1 環(huán)境準(zhǔn)備你的ArcPy腳本需要什么支撐一套可用的ArcPy開發(fā)環(huán)境其實(shí)很簡單一是ArcGIS Desktop含ArcMap或ArcGIS Pro二是Python環(huán)境ArcMap自帶的是Python 2.7ArcGIS Pro自帶的是Python 3.x。從個(gè)人經(jīng)驗(yàn)看我強(qiáng)烈建議你優(yōu)先在ArcGIS Pro的環(huán)境里編寫和測試腳本因?yàn)镻ython 3的語法、字符串處理和編碼支持都比Python 2舒服得多而且ArcGIS Pro的arcpy.mp在處理多個(gè)布局時(shí)明顯更順手。還有一個(gè)容易忽略的點(diǎn)腳本運(yùn)行時(shí)的相對路徑。我見過太多次因?yàn)閙xd里“數(shù)據(jù)框?qū)傩?- 常規(guī) - 存儲路徑類型”設(shè)置成了“相對路徑”導(dǎo)致數(shù)據(jù)源替換后依然出現(xiàn)紅感嘆號的情況。所以腳本第一步建議先確認(rèn)/設(shè)置文檔的相對路徑存儲選項(xiàng)再執(zhí)行數(shù)據(jù)源替換。這個(gè)坑看似小但能在后續(xù)工作中省掉大量排錯(cuò)時(shí)間。另外一個(gè)環(huán)境重點(diǎn)是確保ArcPy模塊能被正確導(dǎo)入。如果你在ArcMap內(nèi)置的Python窗口里寫導(dǎo)入自然沒有問題但如果你想在外部IDE比如PyCharm或者VS Code里運(yùn)行必須手動將ArcGIS的Python解釋器路徑配到IDE里。這一步很多人上來就卡住其實(shí)只是沒有選擇正確的解釋器。配置好后一句“import arcpy”就能通。2.2 步驟一修改圖層數(shù)據(jù)源的完整腳本邏輯實(shí)現(xiàn)思路大致如下實(shí)例化地圖文檔對象mxd或aprx里的某個(gè)map。遍歷所有數(shù)據(jù)框和所有圖層。對每個(gè)圖層讀取數(shù)據(jù)源路徑。根據(jù)規(guī)則比如結(jié)尾是舊文件夾路徑替換為新路徑。調(diào)用replaceDataSource方法完成替換。保存或?qū)С觥O旅娼o一段ArcMap時(shí)代的經(jīng)典代碼示例mxd操作。這段代碼在我的多個(gè)項(xiàng)目里改造過但核心邏輯幾乎沒變。import arcpy mxd_path rD:\Project_Maps\Template\BaseMap.mxd new_gdb rD:\Project_Data\Result.gdb mxd arcpy.mapping.MapDocument(mxd_path) for df in arcpy.mapping.ListDataFrames(mxd): for lyr in arcpy.mapping.ListLayers(mxd, , df): # 只處理數(shù)據(jù)源里包含舊目錄前綴的圖層 if lyr.supports(DATASOURCE): desc arcpy.Describe(lyr.dataSource) if rD:\Old_Data in desc.catalogPath: try: lyr.replaceDataSource(new_gdb, FILEGDB_WORKSPACE, desc.name, True) print(已替換圖層: lyr.name) except Exception as e: print(替換失敗: lyr.name - str(e)) mxd.saveACopy(rD:\Project_Maps\Output_BaseMap.mxd) del mxd注意兩個(gè)細(xì)節(jié)一個(gè)是lyr.replaceDataSource的第三個(gè)參數(shù)傳的是描述對象里的desc.name也就是數(shù)據(jù)集的名稱而不是完整路徑。這樣即使舊路徑結(jié)構(gòu)復(fù)雜只要目標(biāo)數(shù)據(jù)集的名稱一致替換就能成功。第二個(gè)是print語句里最好加上圖層名和結(jié)果方便運(yùn)行后核查哪些圖層被跳過、哪些失敗——這是后面排錯(cuò)的重要依據(jù)。2.3 步驟二修改布局元素的完整腳本邏輯布局要素里最常改的是什么文本標(biāo)題、比例尺文字、圖例標(biāo)題、指北針位置、圖名。用ArcPy修改這些元素的核心是理解“元素”在文檔對象模型里的存在方式。在arcpy.mapping里布局元素分為幾大類TextElement文本、GraphicElement圖形包括圖例、指北針、比例尺等、PictureElement圖片。不同類型修改屬性需要不同的方法。例如文本可以用text屬性直接賦值比例尺和指北針可以用元素類型匹配后再調(diào)整其屬性或樣式。下面是一段典型的布局元素修改腳本目標(biāo)是批量替換圖名和比例尺文字mxd arcpy.mapping.MapDocument(mxd_path) for elm in arcpy.mapping.ListLayoutElements(mxd): if elm.type TEXT_ELEMENT: # 根據(jù)元素名稱區(qū)分不同文本 if elm.name MapTitle: elm.text 某區(qū)域土地利用分幅圖 elif elm.name MapScaleText: elm.text 比例尺 110000 elif elm.type GRAPHIC_ELEMENT: # 例如把圖例的標(biāo)題改成新的 if elm.name LegendTitle: try: elm.title 土地利用類型 except: pass mxd.saveACopy(...)這里有一個(gè)關(guān)鍵經(jīng)驗(yàn)所有的元素最好在模板里提前設(shè)置好唯一的“元素名稱”而不是靠文本內(nèi)容或位置來匹配。原因很現(xiàn)實(shí)文本內(nèi)容可能會變位置可能會挪但元素名稱是一個(gè)穩(wěn)定的標(biāo)識符。建立模板的時(shí)候就花幾分鐘把所有元素命名規(guī)范后面寫腳本會輕松一百倍。2.4 步驟三批量導(dǎo)出布局地圖的核心邏輯導(dǎo)出布局地圖聽起來最簡單其實(shí)不然。導(dǎo)出流程要處理三個(gè)問題第一個(gè)是匹配正確的頁面尺寸和分辨率第二個(gè)是文件名命名規(guī)則第三個(gè)是遍歷所有要出圖的圖紙范圍。ArcMap時(shí)代經(jīng)典的導(dǎo)出方法是arcpy.mapping.ExportToPDFPro時(shí)代則是layout.exportToPDF。兩者的核心參數(shù)都包括分辨率DPI、顏色模式、是否嵌入圖層PDF圖層、是否壓縮等。實(shí)踐中我最常用的是300 DPI的PDF輸出因?yàn)榧饶鼙WC清晰度文件大小又可控。如果你的圖紙要打印或者投稿可以提升到600 DPI如果只是網(wǎng)頁預(yù)覽150 DPI就夠用了。命名規(guī)則這塊最穩(wěn)妥的辦法是在數(shù)據(jù)源里加一個(gè)字段存圖紙名稱然后腳本讀取該字段作為文件名。這樣可以真正做到“圖紙內(nèi)容與文件名一致”而不是靠排序或者時(shí)間戳生成名字。for page_num in range(1, total_pages 1): # 這里模擬一個(gè)循環(huán)真實(shí)場景中可能按要素類逐要素切圖 pdf_path rD:\Output \\ name_field_value .pdf arcpy.mapping.ExportToPDF(mxd, pdf_path, PAGE_LAYOUT, 300, BEST, RGB, True) print(批量導(dǎo)出完成)這個(gè)方法在mxd時(shí)代非常成熟Pro時(shí)代用法也類似只是你要獲取具體的MapFrame或Map對象然后導(dǎo)出。后面我會給出Pro的對應(yīng)示例。2.5 一個(gè)小結(jié)腳本工作流應(yīng)該組合得像流水線在實(shí)際項(xiàng)目中我會把上述三步串起來形成一個(gè)完整的“更新數(shù)據(jù)源 - 修改布局 - 批量出圖”流水線。這中間還會加入一個(gè)步驟就是先備份原始文檔避免腳本跑掛后連底圖都找不回來。備份操作一句話就能完成但關(guān)鍵時(shí)刻能救命。我還習(xí)慣在腳本里把關(guān)鍵輸出都用打印或日志方式記錄下來。專業(yè)的腳本不是寫完就跑而是要能追蹤結(jié)果。ArcGIS的腳本運(yùn)行后你根本看不見界面上的紅感嘆號只能靠日志判斷每個(gè)圖層有沒有被正確替換。所以從一開始就養(yǎng)成“打印日志”的習(xí)慣是非常值得的。3. ArcPy批量化制圖實(shí)操從參數(shù)設(shè)定到一鍵出圖光看理論不過癮這一章我直接給你一套可運(yùn)行的生產(chǎn)級腳本骨架并附上每一步的講解。這套腳本我會基于ArcGIS Pro來寫因?yàn)镻ro的Python 3環(huán)境更符合現(xiàn)代開發(fā)習(xí)慣。但你如果還在用ArcMap把類名從arcpy.mp改成arcpy.mapping、把project換成MapDocument思路完全一致。3.1 腳本骨架一套能直接改路徑就用的代碼模板import arcpy import os # 全局配置 project_path rD:\Project_Maps\Project.aprx old_base_path rD:\Old_Data new_base_path rD:\New_Data output_dir rD:\Output_PDF template_map_name MainMap layout_name A4_Layout # 1. 打開工程 aprx arcpy.mp.ArcGISProject(project_path) # 2. 找到一個(gè)Map對象 maps aprx.listMaps() target_map None for m in maps: if m.name template_map_name: target_map m break if target_map is None: print(未找到目標(biāo)地圖: template_map_name) raise SystemExit # 3. 遍歷地圖里所有圖層替換數(shù)據(jù)源 for lyr in target_map.listLayers(): if lyr.isFeatureLayer and lyr.supports(DATASOURCE): ds lyr.dataSource if ds and old_base_path in ds: new_ds ds.replace(old_base_path, new_base_path) # 這里更穩(wěn)妥的做法是用描述對象替換但路徑替換適合“目錄平移” # 核心思路先檢查新路徑存在性再替換 if os.path.exists(new_ds): # 對于Pro通常需要通過更新連接屬性來換數(shù)據(jù)源 # 常見方法是先移除圖層再添加但這里我們用updateConnectionProperties conn_props lyr.connectionProperties conn_dict conn_props[connection_info] # 替換路徑 original_conn conn_dict.get(database, ) if original_conn and old_base_path in original_conn: conn_dict[database] original_conn.replace(old_base_path, new_base_path) conn_props[connection_info] conn_dict lyr.updateConnectionProperties(conn_props, conn_props) print(已更新連接: lyr.name) else: print(新數(shù)據(jù)源不存在: new_ds) # 4. 修改布局元素 layouts aprx.listLayouts() target_layout None for lo in layouts: if lo.name layout_name: target_layout lo break if target_layout: for elm in target_layout.listElements(): if elm.type TEXT_ELEMENT: if elm.name MapTitle: elm.text 2024年土地利用現(xiàn)狀分幅圖 if elm.name ScaleText: elm.text 1:10000 # 5. 導(dǎo)出PDF if target_layout: pdf_path os.path.join(output_dir, Output_Map.pdf) target_layout.exportToPDF(pdf_path, resolution300, image_qualityHIGH) print(導(dǎo)出PDF: pdf_path) # 6. 保存并關(guān)閉工程 aprx.save() print(全部完成)這段代碼有幾個(gè)地方值得專門說下第一Pro里的圖層數(shù)據(jù)源更新跟mxd時(shí)代不一樣。老的replaceDataSource方法在Pro里雖然也存在但更推薦是通過connectionProperties和updateConnectionProperties完成。我這段代碼用的是歷史經(jīng)驗(yàn)里最穩(wěn)的一種做法先讀取舊的連接字典把路徑字段改掉再交給updateConnectionProperties。這塊必須小心因?yàn)椴煌瑪?shù)據(jù)源類型connection_info里的鍵名可能不同Shapfile是pathFileGDB是databaseSDE可能是連接字符串。所以生產(chǎn)環(huán)境里我通常還會加一個(gè)數(shù)據(jù)源類型判斷。第二os.path.exists(new_ds)這步非常重要。路徑替換之前先驗(yàn)證新路徑真實(shí)存在否則你替換完一張圖后面所有圖全紅回歸起來非常麻煩。在批處理里“先驗(yàn)證后修改”是一條鐵律。3.2 參數(shù)設(shè)置的細(xì)節(jié)DPI、顏色模式和PDF圖層導(dǎo)出PDF時(shí)我特別留意三個(gè)參數(shù)resolution這個(gè)就是DPI。對我來說項(xiàng)目的默認(rèn)值就是300。如果客戶沒有特別要求300是安全選擇字跡和線劃都不會發(fā)虛文件體積也還扛得住。如果圖紙幅面很大又需要web發(fā)布我會降到200或150。image_quality我一般用HIGH或者BEST。這個(gè)參數(shù)影響的是PDF中嵌入柵格影像的質(zhì)量。如果你的底圖是影像圖務(wù)必用HIGH如果是純矢量這個(gè)影響不大反而文件會小很多。layers_attributes和pdf_info這類參數(shù)一般保持默認(rèn)但如果需要把圖層屬性寫入PDF可以在導(dǎo)出時(shí)指定。目前大多數(shù)看圖軟件不支持讀取ArcGIS的PDF圖層信息所以實(shí)際工作中這批參數(shù)通常不開。另外Pro里導(dǎo)出圖片PNG/JPEG用的是layout.exportToPNG參數(shù)幾乎一樣只是文件后綴不同。如果你需要同時(shí)出PDF和PNG可以在代碼里寫兩次導(dǎo)出但要注意PNG的DPI一般比PDF低一些截圖預(yù)覽用200夠了。3.3 批量化出圖的兩種模式整圖導(dǎo)出 vs 單要素分幅先說“整圖導(dǎo)出”就是字面意思一個(gè)mxd/aprx里只有一個(gè)地圖布局腳本只負(fù)責(zé)“更新內(nèi)容然后導(dǎo)出多次”。這種模式適用于“同一張圖、多個(gè)行政區(qū)范圍切換”或者“同一底圖配不同專題圖范圍”的場景。再說“單要素分幅”模式。這種模式更常見比如你要做分村圖、分鄉(xiāng)鎮(zhèn)圖每張圖對應(yīng)的范圍不同圖名不同甚至可能有些輔助圖層要根據(jù)范圍動態(tài)裁剪。這種在ArcMap里通常需要靠數(shù)據(jù)驅(qū)動頁面Data Driven Pages輔助而在Pro里對應(yīng)的是“地圖系列”Map Series。如果你已經(jīng)設(shè)置了地圖系列那么ArcPy可以很輕松地遍歷每一頁導(dǎo)出。ms target_layout.mapSeries if ms.enabled: for page_num in range(1, ms.totalPages 1): ms.currentPageNumber page_num page_name ms.pageRow[ms.pageNameField.name] if ms.pageNameField else str(page_num) pdf_path os.path.join(output_dir, page_name .pdf) target_layout.exportToPDF(pdf_path, resolution300) print(地圖系列導(dǎo)出完成)這段代碼的精髓在于利用地圖系列自動按范圍更新布局然后逐頁導(dǎo)出。你會發(fā)現(xiàn)從這開始你已經(jīng)不需要去手動調(diào)整任何東西了整個(gè)流程交給腳本就是“喝水看進(jìn)度”的感覺。3.4 常見坑ArcPy操作圖層數(shù)據(jù)源的“只讀”與“生效”問題這里我把最讓人頭疼的幾個(gè)坑提前說明白免得你踩了之后懷疑人生。第一個(gè)是圖層對象被占用。在ArcMap里如果你在同一個(gè)Python窗口里多次打開mxd又不釋放前一個(gè)mxd對象會導(dǎo)致文件鎖死保存失敗。解決辦法很簡單每次操作結(jié)束執(zhí)行del mxdPro里也要注意release對象。第二個(gè)是修改后的地圖文檔不會自動保存。無論你是用save還是saveACopy都要明確調(diào)用。ArcPy不是“所見即所得”腳本運(yùn)行后你如果不保存所有修改只在你當(dāng)前運(yùn)行的內(nèi)存里關(guān)了窗口就沒了。所以腳本最后記得保存。第三個(gè)是最折磨人的數(shù)據(jù)源替換成功了但ArcMap打開還是感嘆號。這個(gè)往往不是腳本的問題而是ArcMap把所有數(shù)據(jù)源引用同時(shí)存在文檔和ArcGIS的“最近打開”緩存中。這時(shí)候你在ArcCatalog里手工瀏覽到新路徑一次往往就好了。更靠譜的做法是先在代碼里嚴(yán)格驗(yàn)證新路徑存在并且在腳本最后調(diào)用mxd.clearWorkspaceCache()mxd對象支持或者重新計(jì)算文檔路徑。實(shí)際經(jīng)驗(yàn)告訴我在腳本執(zhí)行完以后重新打開一次文檔再保存一次能夠解決大部分“顯示感嘆號”的玄學(xué)問題。第四個(gè)是關(guān)于中文路徑和編碼。ArcMap的Python 2環(huán)境對中文字符串處理非常飄忽動不動就是“codec cant decode”。我的建議是Python 2環(huán)境下路徑中盡量不要放中文或者統(tǒng)一用unicode類型Python 3環(huán)境這個(gè)問題少很多但依然建議在腳本文件頭部寫# -*- coding: utf-8 -*-并且輸出日志時(shí)統(tǒng)一用print替代日志模塊避免編碼沖突。4. 修改布局元素的花式玩法圖例、比例尺和文本的批量刷新上面講過基本的文本替換這一章專門展開說布局元素的細(xì)節(jié)處理。因?yàn)椴季衷卮_實(shí)是批量化制圖里最“細(xì)碎”的部分手動改起來極其耗時(shí)而且特別容易改漏。用腳本處理時(shí)需要有更細(xì)的思路。4.1 布局元素的名稱規(guī)范從源頭解決匹配難問題我反復(fù)跟同事說做模板的時(shí)候別急著調(diào)顏色、調(diào)符號先把所有元素命名規(guī)范了。所謂規(guī)范就是讓每個(gè)元素有一個(gè)唯一、可讀的名字。比如圖名元素MapTitle比例尺數(shù)字ScaleText圖例標(biāo)題LegendTitle制圖單位AuthorText日期元素DateText圖廓外說明CaptionText這些名字會直接作為ArcPy腳本里的判斷依據(jù)。如果你模板里沒有名字系統(tǒng)默認(rèn)可能是“Text 1”“Text 2”一旦排版順序變了元素名就不穩(wěn)定腳本匹配就會出錯(cuò)。所以你在ArcMap或Pro里創(chuàng)建模板時(shí)一定花費(fèi)10分鐘在“布局”視圖里逐個(gè)給元素重命名。這是后面所有自動化的地基地基不穩(wěn)墻就歪。4.2 基于元素類型批量處理當(dāng)元素名規(guī)范好后處理邏輯會變得很清晰。for elm in target_layout.listElements(): if elm.type TEXT_ELEMENT: if elm.name MapTitle: elm.text 某區(qū)域2024年遙感監(jiān)測圖 if elm.name DateText: elm.text 成圖日期2024年05月 if elm.name ScaleText: elm.text 比例尺 1 : 10000 if elm.type GRAPHIC_ELEMENT and elm.name NorthArrow: # 旋轉(zhuǎn)指北針方向 elm.rotation 15這里有一個(gè)使用要點(diǎn)listElements()返回的所有元素類型有TEXT_ELEMENT、GRAPHIC_ELEMENT、PICTURE_ELEMENT等。你在遍歷時(shí)一定要先判斷類型再判斷名稱避免把圖例當(dāng)文本改或把圖片當(dāng)圖形改。老手也經(jīng)常栽在這里——Pro的listElements如果不用類型篩選會返回一大堆東西而不同類型元素?fù)碛械膶傩院瘮?shù)還不一樣。4.3 動態(tài)獲取地圖數(shù)據(jù)范圍并更新圖廓批量化制圖里還有一個(gè)高級玩法從地圖中動態(tài)讀取當(dāng)前范圍的坐標(biāo)然后更新布局里某個(gè)文本元素用來標(biāo)示制圖范圍。例如extent target_map.defaultCamera.getExtent() xmin round(extent.XMin, 2) ymin round(extent.YMin, 2) for elm in target_layout.listElements(): if elm.name ExtentText: elm.text f范圍: {xmin}, {ymin} 到 {extent.XMax}, {extent.YMax}這個(gè)技巧特別適合分幅出圖時(shí)每張圖自動標(biāo)注它的坐標(biāo)范圍。你自己手動去做的話要翻屬性表、要縮放、要讀坐標(biāo)反復(fù)操作煩死了。用腳本這一串工作自動就完成了。4.4 圖例元素的動態(tài)刷新圖例的坑比較隱蔽。經(jīng)驗(yàn)是這樣的如果圖例里有動態(tài)圖層它的內(nèi)容會隨著數(shù)據(jù)源的修改而自動變化但如果你在布局里對圖例做了一些手動調(diào)整比如隱藏某個(gè)圖層腳本修改后圖例不一定能保持你預(yù)期的內(nèi)容。更穩(wěn)妥的辦法是每次修改圖層數(shù)據(jù)源后把圖例對象重新同步一次。ArcMap里圖例對象本質(zhì)上是一個(gè)GraphicElement沒有直接的“刷新”方法但你可以訪問其item集合。Pro里也有類似結(jié)構(gòu)。我的土辦法是在模板里把不需要顯示的圖層先設(shè)為不顯示腳本導(dǎo)出前再根據(jù)需求切換顯示狀態(tài)這樣圖例只跟隨顯示圖層走不會出現(xiàn)“圖例消失”或“圖例多一項(xiàng)”的現(xiàn)象。5. 批量導(dǎo)出地圖的完整場景從單張PDF到多頁P(yáng)DF、從PNG到打印分辨率導(dǎo)出環(huán)節(jié)是整個(gè)流程的收官之筆。自動化到這里如果你設(shè)計(jì)得好前面所有修改會在一句導(dǎo)出命令后變成成品。這一章我按使用場景拆開講。5.1 場景一單張布局批量導(dǎo)出PDF最常見這個(gè)場景適合做專題圖集。流程是遍歷地圖系列或者一組范圍逐頁替換圖名、更新范圍然后導(dǎo)出到同一個(gè)PDF或者多個(gè)PDF。如果用一個(gè)PDF那么用什么多頁P(yáng)DF很遺憾ArcGIS Pro的Layout導(dǎo)出PDF默認(rèn)只能導(dǎo)出當(dāng)前布局的一個(gè)PDF文件如果你想合并成多頁P(yáng)DF需要在外部調(diào)用合并工具或者利用arcpy.pdf這個(gè)擴(kuò)展模塊某些版本可用合并。pdf_path os.path.join(output_dir, All_Maps.pdf) # 如果已有文件先刪除 if os.path.exists(pdf_path): os.remove(pdf_path) # 部分環(huán)境可以使用PDFDocument從ArcGIS Pro自帶工具實(shí)現(xiàn)合并合并PDF的細(xì)節(jié)我后面會專門講?,F(xiàn)在先記住單張布局導(dǎo)出是基礎(chǔ)多頁合并是加分項(xiàng)。5.2 場景二地圖系列Map Series批量導(dǎo)出我在前面代碼里已經(jīng)演示過地圖系列的基礎(chǔ)用法。地圖系列之所以高效是因?yàn)镻ro能夠把“當(dāng)前顯示范圍”和“頁面布局”自動聯(lián)動。你只需要維護(hù)一個(gè)索引圖層比如鄉(xiāng)鎮(zhèn)邊界圖系列會自動切到每個(gè)鄉(xiāng)鎮(zhèn)范圍并刷新地圖框。此時(shí)腳本要做的只是設(shè)置當(dāng)前頁然后導(dǎo)出。這套機(jī)制在ArcMap時(shí)代叫Data Driven Pages我也用過但當(dāng)時(shí)需要額外處理好數(shù)據(jù)驅(qū)動頁和布局元素之間的關(guān)系尤其是動態(tài)文本——在ArcMap里動態(tài)文本用專門的設(shè)置控制在Pro里地圖系列自帶很多動態(tài)文本可以自動替換非常方便。如果有條件我更推薦大家直接用Pro的地圖系列能少踩很多坑。5.3 輸出質(zhì)量的把控不要讓腳本毀了你的圖紙我之所以反復(fù)強(qiáng)調(diào)DPI和顏色模式是因?yàn)楹芏喑鯇W(xué)者的腳本能導(dǎo)出但導(dǎo)出來的PDF模糊或顏色偏得離譜。這里有幾個(gè)參數(shù)組合建議屏幕預(yù)覽150 DPIRGB常規(guī)打印300 DPICMYK如果印刷廠要求高精度制圖/地圖冊600 DPICMYK圖像質(zhì)量為BEST在Pro的exportToPDF里顏色模式通過convert_color_mode字段設(shè)置常量是CMYK或RGB。很多初學(xué)者不知道還有這個(gè)參數(shù)導(dǎo)致導(dǎo)出時(shí)默認(rèn)RGB報(bào)價(jià)需要CMYK時(shí)整本圖全重出一遍痛定思痛。另外要提醒一下“壓縮”參數(shù)。導(dǎo)出大圖時(shí)如果文件名體積爆炸一般是因?yàn)槟汩_啟了嵌入全部字體、嵌入圖片等選項(xiàng)。如果是不需要編輯的PDF關(guān)掉“嵌入字體”能減少很多體積。5.4 多個(gè)布局的批量導(dǎo)出Pro高級玩法Pro的一個(gè)工程文件里可以放多個(gè)布局比如一個(gè)A3主圖布局、一個(gè)A4附圖布局、一個(gè)A2掛圖布局。你可以用腳本一次把所有布局全部按不同分辨率導(dǎo)出。for lo in aprx.listLayouts(): output_name lo.name .pdf output_full_path os.path.join(output_dir, output_name) lo.exportToPDF(output_full_path, resolution300) print(f導(dǎo)出 {lo.name} 完成)這個(gè)玩法在做“全項(xiàng)目成套圖紙”時(shí)特別實(shí)用。以前你需要打開多個(gè)mxd逐個(gè)導(dǎo)出現(xiàn)在只要一個(gè)aprx、一個(gè)腳本、一次運(yùn)行就能全出。6. 排錯(cuò)經(jīng)驗(yàn)與效率技巧哪些坑值得花時(shí)間避開寫腳本最難的不是代碼本身而是“出問題時(shí)我是怎么被逼瘋的”。這一章我把自己踩過的常見問題和排查思路整理成一份速查表順便聊幾個(gè)提升效率的“隱藏技巧”。6.1 數(shù)據(jù)源替換失敗的主要誘因數(shù)據(jù)源替換失敗無非以下幾種情況問題現(xiàn)象可能原因解決思路替換后所有圖層仍感嘆號新路徑不存在 / 空間參考不一致 / 字段缺失提前用Describe檢查目標(biāo)數(shù)據(jù)源比對字段列表只有部分圖層替換成功舊路徑判斷條件過于嚴(yán)格打印每個(gè)圖層的dataSource調(diào)整替換規(guī)則替換報(bào)錯(cuò)“不支持的操作”圖層類型是柵格、網(wǎng)絡(luò)數(shù)據(jù)集或注記層先判斷圖層類型區(qū)分要素類、柵格和注記替換時(shí)提示對象被占用地圖文檔仍被另一個(gè)進(jìn)程打開關(guān)閉ArcMap中的文檔或使用saveACopy或del mxdPro里updateConnectionProperties失敗連接字典鍵名不兼容先打印connection_properties查看鍵名結(jié)構(gòu)再針對性修改排錯(cuò)的第一原則就是先打印、再修改。不要一上來就在大循環(huán)里加try except而是先在小范圍內(nèi)跑通一個(gè)圖層確認(rèn)邏輯正確再全量跑。我當(dāng)年就是偷懶直接全量跑結(jié)果出錯(cuò)了查了很久才發(fā)現(xiàn)是一個(gè)隱藏的注記圖層在搗亂。6.2 打印日志的藝術(shù)學(xué)會“留痕”腳本運(yùn)行時(shí)我建議所有的關(guān)鍵節(jié)點(diǎn)都要有print輸出。不要小看這個(gè)行為它能讓你在出錯(cuò)時(shí)快速定位是圖層替換環(huán)節(jié)壞了還是導(dǎo)出環(huán)節(jié)壞了。比如print(開始替換數(shù)據(jù)源共發(fā)現(xiàn)圖層, len(layers)) for idx, lyr in enumerate(layers): print(f處理第{idx 1}個(gè)圖層: {lyr.name})在批處理時(shí)你不可能肉眼去地圖界面里檢查每一張圖日志就是你的“眼睛”。日志寫得好能讓你在五分鐘內(nèi)判斷這次跑批是否成功日志如果稀爛你只能重新打開輸出文件逐頁檢查等于又回到手動模式。6.3 效率技巧從“減輕操作”到“模板工程化”最后說說效率的躍遷。如果說寫腳本是第一層效率提升那么把整個(gè)出圖流程“模板化”就是第二層。我建議你為每個(gè)制圖項(xiàng)目建立以下結(jié)構(gòu)一個(gè)標(biāo)準(zhǔn)模板工程aprx或mxd里面元素命名規(guī)范、圖例樣式固定、頁面尺寸固定。一個(gè)公共腳本庫里面封裝了“替換數(shù)據(jù)源”“更新圖名”“批量導(dǎo)出PDF”等通用函數(shù)。一個(gè)項(xiàng)目字典JSON或者CSV記錄本次需要用到的圖名、數(shù)據(jù)源、輸出路徑。用這種結(jié)構(gòu)下次來一個(gè)相似項(xiàng)目你只需要改字典內(nèi)容腳本一行不用動。這樣的“一次投入、多次復(fù)用”才是ArcPy批量化制圖真正的價(jià)值所在。我這里提的“模板工程化”是純個(gè)人實(shí)踐心得不是官方標(biāo)準(zhǔn)但強(qiáng)烈推薦你試試。6.4 千萬記得腳本跑完后的人工抽檢自動化歸自動化交付前給自己留5分鐘做抽檢永遠(yuǎn)不吃虧。我用腳本出一批圖一般會隨機(jī)抽三張一張檢查圖名是否正確一張檢查比例尺一張檢查數(shù)據(jù)源路徑是否一致。沒有這一步哪怕腳本邏輯百分百正確也可能因?yàn)樵紨?shù)據(jù)問題導(dǎo)致圖紙內(nèi)容不符合要求。抽檢的成本極低但能挽回的可能是一個(gè)通宵重做。7. 再多說一句自動化的邊界與人工判斷的平衡談到這里Arcpy自動批量化制圖的核心流程已經(jīng)全部覆蓋了。作為常年靠這套流程吃飯的人我想再分享一點(diǎn)個(gè)人的體會自動化不是萬能的它適合處理“量大、規(guī)則明確、重復(fù)度高”的任務(wù)但那些需要視覺審美判斷、需要根據(jù)數(shù)據(jù)內(nèi)容調(diào)整表達(dá)的環(huán)節(jié)比如設(shè)計(jì)一套新的配色方案、調(diào)整符號的視覺層次、判斷某個(gè)注記擺放是否壓蓋了道路這類工作讓腳本來做反而容易失控。所以我的建議是把ArcPy用在“編輯、刷新、導(dǎo)出”這層機(jī)械操作上把“設(shè)計(jì)、判斷、校準(zhǔn)”這部分留給自己。這樣既享受了效率紅利又保證了成圖質(zhì)量不滑坡。最后再分享一個(gè)小技巧不管你的腳本寫得多么順手一定要在服務(wù)器或者本機(jī)建立一個(gè)專門存放腳本的目錄并且用版本管理工具哪怕是簡單的時(shí)間戳備份來維護(hù)腳本。我見過太多人寫腳本時(shí)改了一版又一版最后都不知道哪版是可用的。定時(shí)備份、寫清注釋、留下運(yùn)行日志這套習(xí)慣才是自動化工作流帶給你的長遠(yuǎn)財(cái)富。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩人妻免费精品| 亚洲天堂另类小说男人| 久久999久| 人妻91少妇| av绯色| 自慰白浆在线观看| 四虎在线观看网站| 国产最新小视频在线播放下载| 2010男人的天堂| 久久人爽| 亚洲欧美一区二区三区一猛片| 97玖玖人妻| 人妻第一页| 色99视频| 欧美成人精品一区二区男人蜜臀| 顶级丝袜熟女一区二区三区| 91美女在线视频| 日本久久女同性恋视频| 久久的网站啊啊啊啊啊| 加勒比久久av| 岛国人妻少妇av在线观看| 久久色精品视频在线| 国产97色在线| 精品人妻久久久| 色爱三区| 亚洲图片91| 欧美日韩性爱操大逼| 激情文学 亚洲图片| 精品无码欧美三级| 蜜臀在线免费观看在线免费观看| 在线a v| 欧洲精品久久| 中日亚韩免费视频| 久视频在线观看| 熟女探花啪啪| 久久久久久久78| 92性色国产午夜福利在线661| 亚洲精品天天影视综合网 | 蜜桃精品一区二区三区久在线| 澳门黄片一香蕉视频| 不卡人妻少妇精品毛片一区23区视频| 欧美激情性爱视频网站| 嗯嗯,好大,好爽,好骚| 五十路六十路七十路熟婆| 99热精品在线观看| 亚洲成人精品在线一区| 亚洲激情深爱文学小说网站| 天美麻豆精品视频99| 91无码西班牙视频在线| 中国熟女91| 精品一区二区啪啪啪| 九九九九热| 国产精品国产拍高清AV| 日韩精品第3页| 福利色色| 极品销魂美女一区二区| 福利一级版子| 九九香蕉网| 亚洲高清91| 香港久久久| 天天综合色| 中文字幕乱码人妻二区三区| 黄页网站成人免费| 欧美黄片欧美黄片xxx| 欧美色91| 91色综合激情| 四虎AV在线观看| 九九九精品成人免费视频小说| 九九九久久久久| 国产区性爱在线视频秋霞豆 | 久久久久免费少妇| 欧美丝袜制服久久| 亚洲巨爆乳一区二区三区四季网| 老熟女阿 国产91| 九九玖玖精品| av国产无码| 青娱乐福利99| 中出欧美| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 精品超碰中文在线| 久久夜黄色无码A级大片| 精品九九九九九九九九九| 97情超碰色| 亚洲国产精品无码AV久久| 粉嫩小泬久久久一区二区| 色天堂在线观看| 97色网| 国产女人与拘做受视频免费| 综合自拍| 日韩十八禁| 老司机免费视频在线91| 佐山爱中文字幕| 亚洲中文字幕精品久久久久久直播| 亚洲国产另类在线中文| 美女91色黄18| 国产美女激情| wwe 天天干.com| 水野优香在线观看| 丁香九月激情| 国产在线视频二区| 国产在线观看91精品一区| 97超碰欧美精品| 精人妻无码一区二区三区伊人直播| 91N五十路| av天堂天堂av日韩| 风流老熟女一区二区三区l| 免费国产电影一区二区| 日本韩高清无砖码22o| 久久久久久久91| 欧美线天码中字| 东京热激情视频一二三区| 色一情一乱一乱一区91Av| 日韩少妇一区二区三区| 97国产成人精品免费视频| 1禁看欧美黄片免费看| 国产操伦| 色妇综合网| 一本色道久久综合精品婷婷| 台湾佬大香蕉| 少妇高潮九九九九| 午夜男女爽爽爽在线视频 | 欧洲无码一区二区| 淮穴色AV| 一区二区首页| 天天草AV| 熟妇色99| 日本国产欧美一区三区二区| 国产精品白丝在线播放| 久久中文字幕不卡人妻| 十八禁成人网站在线观看| 日本欧美中文字幕| 思思热久久成人| 天天色,天天干,天天干| 全免费a敌肛交毛片免费| av一区二区三区四区| 另类欧美色| 极品国产内射| 台湾成人无码AV| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 大奶的诱惑| 老司机福利社视频在线观看| 色逼综合| 国产亚洲精品一区二区三区| 精品无码久久久久久久久果冻糖心| 毛片一区二区| 在线色导航| 成人免费不卡在线视频| 爽爽爽免费视频| 久热伊人99re| 欧美一区二区三区互相| 免费观看国产小粉嫩喷水精品午| 人妻aa| 免费看日本操逼视频| 五月婷婷性爱| 日han少妇无码| 青女在线| 78超碰| 日韩中文字幕视频| 国产99久久99热这里只有精品15| 激情五月天婷婷| 五月天激情网图片| 天堂精品小草| 啊啊啊啊免费视频| 免费成人自拍视频在线| 51一区二区三区| 亚洲精品99| 中文久久一区| 日韩精品亚洲一二三| 草草草视频在线免费看| 亚洲精品久久久久久| 日韩欧美性爱电影在线观看| 亚洲图片色图欧美另类 | 91国产精品熟女| 四虎国产成人精品免费一女五男| 丰满人妻一区二区三区四区| 国产精品原创巨作?v网站| 国产伦乱91| 久久a久久| 中文字幕乱偷人妻久久艾草网| 亚欧成人一级片在线播放| 久久人爽| 欧美gv在线观看| 欧美 亚洲 偷拍自拍| 欧美黄色图片| 97精| www.99在线| 天天内射| 600国产精品视频| 婷婷五月天色网| 亚洲av噜噜噜噜噜噜| 97久久综合网| 国产成人五月天丁香花| 亚州熟妇精品| 九七超碰人人乐| 加勒比av官网在线| 亚洲伊人久久综合97| 九热久| 久久一区二区加油站| www被窝色com| 色情亚洲日本成人| 在线小视频| 一本大道青青| 久草精品视频| 国产av强奸美女| 高清无码在线播放网站| 欧美性爱97超碰| 一区二区三区一亚洲中文字幕、综合区灬 | 欧美大香蕉专区网| 嗯嗯啊啊啊好舒服| 日本孕妇孕交| 大肉棒导航| 日韩一级久久毛片| 开心激情站| 日韩久射综合| 亚洲瓯美色图| 日韩性爱高清免费视频| 欧美精品欧美精品系列| www老逼91| 久久精品99久久久久久| 99999精品| 日曰骚久久精品| aaaa黄片| 人妻丝袜二区| 国产超碰| 日韩性爱播放| 成人一道本免费视频| 久久久久国产精品久久久| 一区二区三区色综合| 女人天堂网| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 蜜桃色色网站视频三区| 欧美超碰97| 天综合中文| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 久艹99| 久久99人妖视频国产| 国产日韩中文字幕欧美| 午夜免费视频1000| 亚洲欧洲综合成人av一区| 啊啊啊不要啊啊受不了了视频在线| 亚洲天堂五月天国产| 欧美日韩国产电影| 免费看日产一区二区三区| 亚洲无码一区成人免费午夜| 日韩精品三区四区| 中文字幕亚韩| 男人的午夜天堂| 欧美淫穴| 国产宅男宅女在线观看| 亚洲中文字幕av | 精品日韩人妻精品一二三区| 久久成人网站| 97干在线看| 精品一区二区综合熟妇| 欧美色女人| 国产久久视频| 精品综合久久久久久97| 99亚洲天堂| 翔田千里爆乳巨臀无码| 日本韩高清无砖码22o| 日韩97在线| 思思久热在线精品66| 97国产天堂岛| 97色婷婷| 91精品丝袜在线观看| 日本天天吊| 国产绿奴视频在线观看| 久久久久久999| 五月丁香综合| 曰韩操B| 人乳av| 人妻少妇精品久久久| 懂色AV蜜臀无码精品APP| 国产高清自拍| 国产激情在线| 91neishe| 一级做a爰片久久毛片图片| 亚洲色图综合网| 日本一区二区不卡精品| 大稥蕉免费视频这里只有精品| 青青草一本道福利视频| 日本99久久| 欧美激情精品| 亚洲国产一级中文综合久久天堂在线免费观看| 1769一区| 中出在线视频| 天天日少妇逼AV| 97亚洲精品| 精彩视频日韩| 日本操逼视频导航| 麻豆精品.欧美精品.日韩精品.| 九热视频| 女性喷水高潮在线观看| 亚洲s在线观看| 亚洲精品白浆高清久久久久久| 欧美色图片| 视频不卡中文字幕| 玖玖超碰熟| 亚洲www91| 97超碰伊人| 欧美97视频| 欧美一区二区三区蜜桃| 国产999精品久久久| 91色女| 久久久99免费| 正宗无毛一线天嫩逼| 婷婷在线播放| 国产精品成人无码av无码免费| 91熟女丨91老女人| 中 文字幕一区二区三四 五 区日 日 骚| 亚洲日韩美国人妻| AAAA欧美日韩| 亚洲美女高潮喷水视频| 97超碰天天爱天天爱| 欧亚在线视频| 黄色操人| 男人的天堂一区| 久久久久久性爱视频| 国产一级作爱毛片| www亚洲免费| 国产97免费视频| 91伊人久久在线| 亚洲最大无码中文字幕网站| 日韩福利综合一区| 91天天综合日韩欧美| 日本高清熟女久久一区| 国产欧美日韩臀| 东京热男人的天堂网| 人妻人人做人人澡人人爽欧美一区| 久久超碰97| 91欧洲入口| 97在线国产精品| 岛国黄| 操熟女91| 亚洲综合色图欧美| 日本男人插女人的逼黄色| 久草福利在线资源站| 搡老熟女免费视频 | 中文字幕少妇色| 色色香蕉| 久久无码成人| 青青久久艹| 亚州性色| 91天堂| 四虎免费视频| 后入式五六区| 曰本特级特黄特色黄色A级网站高清在线免费看 | 操淫穴亚洲五月丁香 | 综合色播| 久久久久久久久久8888| 国产欧美亚洲精品a第2页| 狠狠操官网| 日本人妻伦在线中文字幕| 另类天堂| 一区二区中文| 一区二区三区高清天码| 男女激情黄色网址| 老女人综合网| 岛园激情| 狠狠中文字幕| 欧美亚洲特P| 97超碰国产精品| 香蕉在线一区二区三区| 依人大香蕉| 日韩欧美亚洲国产日韩| 中文字幕天天天天天| 精品乱子一区二区三区99| 91逼逼女人91| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 激情综合网激情综合| 日本不卡二区| 久久一区二区高清免费| 欧美日韩国产色图在线| www久久99| 天天操狠狠日夜夜干超碰撸com视频在线观看| 99久久婷婷| 偷拍欧美综合| 午夜福利在线视频1000| 日韩人妻精品| 熟人人妻少妇精品久久| 中文AV制服乱伦| 中文字幕精品一区欧美| 91足交| 久99| 中文字日本乱码| 热的中文 热的有码 热的国产| 午夜AV污污污| 91美女在线| 天天看天天干| 性爱精品一区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 99碰碰| 超碰国产情侣自拍网| 欧美日动态视频| 中文字幕在线日亚洲9| 免费综合亚洲中文| 色婷婷蜜臀av| 精品传媒在线一区| 久久五十路熟女人妻| 成片免费观看视频大全| 97这里都是精品| 超碰在线日韩一区| 亚洲欧美在线观看无码| 色色婷婷五月天| 神马久久久久久久久久久久| 欧美成人精品一区| 亚洲精品无码久久AV| 91美女丝袜诱惑视频| 日夜干射色啊| 青娱乐休闲视频在线观看| 探花在线免费观看视频国产一区| 国产黄a三级三级三级av在线看| 2017大香蕉国产精品久久| 四虎影视永久在线观看精品免费网站| 搡老女人911熟妇老熟女| 一级特级aaaa毛片免费观看 | 日本熟妇人妻中出视频| 中文字幕亚洲欧美在线不卡| 久久超碰com| 亚洲成A∨人影院在线欢看| 亚91亚洲网| 亚洲欧美色图片| 国产在线视视频有精品| 啊啊啊啊啊啊啊啊啊啊在线观看| 亚洲欧洲av影音| 丁香五月久久| 91亚洲影视| www.av在线观看| 国产精品一区二区后入| 日婷婷| 久久色激情一区二区三区| 超碰97.com| 国产精品无码av| 97天天操天天干| 亚洲中文字幕在线视频一区二区| 日韩精品一区二区三区色欲| 欧美熟妇乱码在线一区| daxiangjiao你懂的| 天天干天天燥| 熟女自慰久久久| 3PAV乱伦视频| 成人电影一区| 日本免费二区三区| 五月婷婷爱六月丁香色| 蜜臀99久久精品久久久久久| 激情五月综合| 日韩精品一区二区人人人| 操逼不卡中文字幕| 暴力av在线| 99在线观看| 亚洲国产综合视频| 天天躁狠狠躁av| 色久桃花影院在线观看| 91日韩国产欧美亚洲另类精盘州至城都| 日夜伊人网| 熟妇综合一区二区三区| 亚洲色图20p| 久久东京国产精品视频| 强奸乱伦大香蕉网| 十八禁电影伊人网| 人人色人人操在线| 久久久一区二区三区四区五区| 韩国一级做A片免费的| 岛国黄| 人人色人人射人人妻| 国产精品内射婷婷一级二| 国产AV天美| 四虎影视永久在线免费| 日本高清一本二本免费不卡| 99精品在线播放| 中文字幕三四五区| 激情亚洲天堂| av强奸乱轮| 日韩无码AB| 亚洲 欧美日韩 另类| AV色五月| 91爱综合| 操逼片中文| 亚欧操逼片在线观看 | 日本大片日本一区二区免费高清 | 成人女人国产| 少妇xx精品| 九九九九精品视频| 国产传媒美日韩av| 狠狠中文字幕| 综合情欲网| www.色婷婷色综合| 色狠狠 - 百度| AV中亚| 老鸭窝日丰县女人| 高清孕妇孕交 交孕妇| 欧美少妇大量自拍视频在线观看| 五月天婷婷色| 日日干日日| 18一区二区三区| 国产 无码 一区二区| 欧美在线|亚洲| 婷婷15月天青娱乐| 国产馆极品诱惑| 一直超碰| 黄污污污污| 青草精品视频-日本久久久久网站| av操操不卡| 欧美日韩国产中文精品字幕自在自线| 日韩精品亚洲专区在线影视| 国产大学生高潮在线播放| 久操精品网| 日韩二级| 少妇人妻在线| www.99色| 欧美久久伊人| 中文字幕av亚洲精品| 啊啊啊啊好疼视频| 久久国产99精品72福利| 久久xx| 成人免费看吃奶视频网站| 欧美激情高清性猛交| 色超碰综合| 好吊妞转入那个网| 在线99热| 天堂俺去俺来也www久久婷婷| 熟妇人妻丰满久久久久久久无码 | 久久久555| 午夜福利在线合集| 自拍视频大全亚洲专媒视频/一区二区三区 | 日韩国产品视频中文字| 国产亚洲综合欧美一区| 国产日逼视频| 日韩在线地址一| 九热中文字幕| 国产久久天堂资源| 精产国品一区二三产品| 欧美日韩亚洲天堂| 亚洲成A∨人影院在线欢看| 婷婷在线视频| 欧美啪啪女女| 蜜桃精品一区二区三区久在线| aaa一级黄片| 欧美热图99| 蜜桃视频一区二区三区在线观看| 久久久精品网站| 91美女视频。| 97亚洲在线| 99国产人成精品| 中出20p| Julia Annxxxxx| 97网址97| 青青草日韩免费观看高清在线| 成 人片 黄色大片| 99re这里只有精品中心播放| 夜夜高潮夜夜爽夜夜爱爱一区| 精品成人无码| 欧美成熟性爱精品| 青青青在线高清视频在线一二三四区| 男男H黄动漫啪啪无遮挡网站| 色呦色呦色精品| 午夜啪| 一本道综合色图| 日韩av无码网站| 97精品国产手机| 亚洲第一成人影院色播| 91亚洲综合在线| 97人人爱人人做人人乐| 国产av美女被艹的乱叫| 久久久免费视频18| 免费一级视频特黄色大片| 69视频福利导航| 91丨九色丨东北熟女| 久久综合五月天| 人妻天堂综合网| 操香逼| 无码久| 欧美综合自拍亚洲综合图| 亚洲图片视频小说| 国产午夜精品理论片一二三区区| 免费黄色A片| 欧美日韩中国x| 伊人991| 一区二区三区四区五区高清无码永久视频| 这里只有精品视频| 五月丁香激情综合网| 99啪啪视频| www.激情| 116美女午夜| 久久美女福利是上海美女| 久久手机视直播| 无码九九九九| 欧美一级黄片免费播放| 欧美国产精品久久九九| 亚洲999综合| 欧美网站免费| 九九九综合精品| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | w w w.久久精品| 99www.bibizy香蕉资源国产一区二区三区高清| 婷婷99| 伊人久久综合精品欧美| 无码久久亚洲高清,| 一本色道久久综合亚洲二区三区| 成人在线视频一区| 久久久久无码| 国产人妻天天干精品| 在线中文字幕| 自拍内地三级在线观看| 91亚州| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 久久超碰亚洲人| 国产隔壁老王影院在线| 午夜视频黄| 丁香五月天啪啪| 91久久国外网| 国产精品一区二区a| 精品性爱无码在线播放| 97er欧美性| 97精品免费视频网站| 日韩丰满熟妇| 日韩超碰精品综合| 九九性爱网| 天天看特黄的免费网站| 91欧美丝袜| 国产精品人妻无码久久久互動交流| 黄色在线网站| 夜夜嗨AV蜜臀av| 成人性交免费视频| 色五月综合| 色超碰综合| 啪啪AV导航| 亚洲色综合| 欧美亚洲尤物久久| 日韩午夜啪啪视频| 欧美中文字幕一区 | 欧美熟妇操操视频| 少妇无码999| 久久香蕉国产线看观看猫咪av | 5278欧美一区二区三区| 97任你吞精| 一级毛片久久久久久久女人18| 国产人妖的免费的视频| aⅴ日韩成人电影av在线免费看av大全| 亚洲欧美中文一区二区三| 久久精品色欧美aⅴ一区二区| 亚洲日本韩国在线| 午夜高清成人在线视频| 性色高清..……| av网站在线观看了| 久艹99| 天天摸夜夜添无码小视频| 久久久人妻| 久久久999| 亚洲天堂人妻熟妇视频| 丁香啪啪| 亚洲丝袜B诱惑| 人妻天天爽夜夜爽精品2| 国产天天看| 夜夜高潮夜夜爽国产伦精品| 久久久久久999| 99久久国产精品免费高潮| 欧亚性爱在线视频| 国产女人成人精品视频| 欧美黑人猛交春色影视大全| 97色色,97综合| 亚洲精品黑丝| 国产成人超碰在线| 大香蕉五月天婷婷| 农村妇女精品一区二区| 国产精品com| 不卡啪啪视频| 麻豆一区二区三区精品| 丰满少妇一区二区三区免费看| 国产美女自拍AV| 偷窥自拍A片| 哈哈操电影AV| 九九九九亚洲| 大象AV在线| 亚州AV无码国产精品| 91女在线观看| 综合亚州欧美| www.av在线视频| 久久婷婷国产一区二区色| 欧美国产有色电影| 国产精品久久久 | 精品免费国产二区三区| 久久加勒比| 天天色粽合合合合合合合| 色综合超碰超| 欧亚性爱在线视频| 日本免费中文一区二区三区四区| 日本精品九九九| A一区片| 六月婷激情福利天堂69| 国产在线激情| www.色婷婷色综合| AV男人天堂网| 日韩人妻一二三区视频| 欧美日日夜夜| 男女啪啪啪18禁网站| 青青草中文-久久青草精品一区二区三| 天天摸天天舔天天操| 欧美日本成人一区二区| 大香樵伊人网| 校园春色五月天| 婷婷色色五月天| 亚洲欧美啪啪| 天天干天天操天天干天天操 | 久9九综合在线| 91精品久久久久久77777| 久久精品人妻一区二区三区| 成年人性爱日韩| 超碰在线第一页| 26uuu性| 日韩 成人 有码| 777AV电影| 色欲色香天天天综合网www-亚洲综合国| 色欲天天婬色婬香WWW夜色| 欧美老熟另类| 蜜桃AV天堂| www久久久| 亚洲av青草久久一区二区| 人妻夜夜爽天天爽麻豆三区网站 | 在线观看一级α片刺激高潮视频| 五月丁香色综合| 午夜传煤十二区精品| 大香蕉操久久| 国产午夜精品理论片一二三区区| 日本三级日本三级三级人妇四虎| 亚洲 无码 偷拍| 日韩欧美水蜜桃人妻| 另类亚洲一区二区三区| 久久久专区| 国产真实野战在线视频| 精品视频一区二区| 东京热亚洲一区二区| 日本影视久久免费| 色噜噜人妻丝袜AV资源| 做爱A级亚欧| 91欧美性| 色情五月丁香| 色欲av国内精品久久久久久| 9999九九九久久久| 女人爽到高潮潮喷18禁网站| 97亚洲在线| 欧洲乱码视频| 欧美精品一区二区少妇免费A片| 99精品久久久久久| 综合色色婷婷| 偷拍亚洲| 蜜桃中文字日产乱幕4区| 一本一道波多野毛片中文在线| 久久久久九九九九九| 色综合98| 秋霞免费AV| 九九九色| av草草在线电影| 国产丝袜美女诱惑| 99久久精品无码一区二区毛片免费| 日夜干射色啊| 十八禁成人网站在线观看| 999精品乱码| 久久久成人精品| 天天色综合图片| 成人七区| 亚洲综合999| 91九九九吃| 嗯啊啊啊轻点视频 | 野狼福利社区| 久久9999| 青青草啪啪网| 后入 亚洲 美女 射| 91精品丝袜在线观看| 97久久国产| 中字一区| 久久97资源 网| 91在线色综合| 成人性爱电影网| 操逼免费视频无码国产| 啊啊啊免费| 色99久草| 精国久久一区二区三区98| 精品夜夜澡人妻无码| 国产精品青草综合久久| 黑丝自慰喷水网站| 日韩中文字幕视频| 欧美色97| 亚洲欧美国产精品久久久久久久| 色香在线| 色婷婷在线视频精品导航| 欧美亚洲综合色| 久操热线| 国产精品老师| 亚洲aV无码成人在线观看| 国产狂喷潮在线精品| 欧美天天综合| 97亚洲欧美| 精品对白久久不卡| 亚洲丝袜少妇在线| 东京热91| 日本道人妻久久久在线不卡色视频| 亚洲欧美在线综合| 精品一区二区三区四区外站| 欧洲亚洲人妻无码中字久久三区四区| 99自拍视频在线观看| 国产黄色 A 片免费看| 日韩综合成人免费视频| 涩综合导航| 超碰精品日韩欧美国产| 日韩精品在线视频,日韩精品……| 欧美色蜜桃97| 深爱伊人影院| 夜夜骑日日| 91综合天天看| 男人的天堂VA| 舔足天天操天天射| 九九九久久久| 大香蕉草草| 91肉丝| 久久伊人最新网址视频| 男女一进一出视频久久| 综合伊人激情| 上海一级黄片| 看日韩操逼| 九九干| 欧美精品久久久久久久久88| 亚洲色图亚洲无码强奸乱伦| 四虎影院成年人片| 六九九九| 色五月激情网| 丁香激情网| 97综合在线观看| 久久曰曰| 蜜臀av中字字幕网站| 欧美嗯啊……在线观看视频免费| 欧美欲色| 风骚少妇视频中文字幕| 加勒比海人人操超碰在线| 欧美天天射| 乱性AV| hd成人一区二区在线| 99re在线观看| 97人人中文网| 亚洲AV色图一区| 蜜臀中文字幕| 无码精品久久久天天影视| 精品国产片亚洲一区| 国产少妇与亚洲av| 超碰97男人| 一区二区播放| 亚洲乱码精品一区二区| 中国zzijzzijzzwww精品| 深田咏美亚洲精品福利社| 国产欧美亚洲精品a第2页| 亚洲二区精品在线观看| 五月激情小说| 亚洲综合性网址| 97超碰大| 99在线无码精品秘 入口黑人| 色墦五月丁香| 农村妇女精品一区二区| 麻豆精品.欧美精品.日韩精品.| 国产精品ⅴ无码大片在线看.| 国产成人无码久久精品| 国产SV一线| 久久嫩草| 亚洲精品a人片在线观看视| 久热九九| 天堂涩涩| 日本黄色精品专区网站| 婷婷五月丁香五月| 色悠久久久av| 亚洲av无码成电影在线播放| 午夜视频好爽啊| 97香焦色区| 综合熟妇一区二区三区| 国产成久久综合片| 五月综合视频| 熟女熟妇一区二区三区视频| 岛国A V在线免费看| 日韩av乱伦| 97亚洲资源| 91老熟妇| 亚洲第一精品在线视频| 久久人人爽人人爽人人片Ⅴ| 亚洲综合图色在线| 成人一二| 五月色综合| 亚洲区 欧美区| 婷婷色色五月天福利| 久久麻豆一区二区| 国产美女高潮视频| A片 AV一级在线播放观看免费| 91美女在线视频| 久久人妻| 美女黄频a美女大全免费皮| 国产25页| 超碰无码加勒比| 激情图片亚洲色图| 91精品国产91久久福利| 精品熟女一区=区三区| 99re视频这里只有精品| 玖玖在线视频| 久久久久久999| 午夜男人一级A片7777| 人妻色情天天操| 精品一二三区久久AAA片| 欧美 青青草| 国产肏逼网站| 日韩一级二级在线| 综合网天天| 激激五月| 在线视频97| 色性荡荡荡荡视频| 午夜视频黄| 国产精品高潮久久AV| 日本成人A片免费看| 亚洲精品一区二区免费在线观看| 性色AV蜜色av色欲av| 97中文字幕色| 中文?日韩?免费?精品| 91殴美大片| 天天操天天干一区二区| 亚洲综合113页| 三级AV入口| 中文熟女五十乱码在线| 操婷婷逼| 欧美亚洲综合高清在线| 国产免费一区二区在线A片视频| 国产999精品久久久| 欧美性爱另类综合| 亚洲国产97| 91天天综合网,天天综合网| 日本成人A片网站| 九九九九一级| 九九热精彩视频| 国产一区二区三区影片| 久久系列| 色999人与兽| 人人玩人人添人人澡免费| 国产av色网| 操久久久久久| 国产强奸乱伦xd| 亚洲风情综合网| 欧美制服另类丝袜| 操逼国产免费| 亚洲欧美黄| 超碰综合色| 婷婷久久五月| A一区片| 经典丝袜一区| 中亚精品极乱| 97爱爱爱| 风骚少妇视频中文字幕| 久久久蜜桃一区二区三区| 无码免费在线观看黄色片| 怡红院亚洲怡春院av| 97在线免费看| 久久久久久国产无码精品| 久久久久久久97| x97av| WWW4虎| 精品少妇一区二区三区在线视频| 成人性爱免费播放| 国产亚洲精品自在线亚洲情侣| 欧美高清性猛交| 欧美综色欧| 亚洲第一精品在线视频| 嗯啊不要在线| 欧美丝袜91| 国模精品一区二区三区苹果色戒 | 青青草在线视频播放器| 伊人aaa| 91亚洲色人| 96国产污污污丝袜| 精品一区二区国产日韩| 2017天天插| 啊啊啊啊嗯嗯在线久久久| 国产在线观看91精品一区| 凸凹视频在线观看| 精品人妻一区二区三区不卡断| 怡红院亚洲怡春院av| 超碰人人妻| 国产精品4p在线观看| 麻豆成人AV| 久久精品日韩专区免费观看| 另类 综合 日韩 欧美 亚洲| 日本一二区免费| 婷婷久草| 去干网最新版| 金莲网址| 国产成人 综合亚洲 天堂| 日日夜夜精品视频| 午夜在线播放| 久久久久久久久久久久色网| 欧美洲精品一级| 桃色五月天| 91精品黄在线观看| 牛牛aV| 操我无码| 亚洲视频1区| 欧美日韩*字幕一区| 美女天天干| 欧美91精品国产自产| 久久精品店| 中国熟妇| 96超碰网| 91观看 国产白丝| 一区二区国产视频在线观看| 1区2区3区中文字幕日韩| 日韩在线人妻网站| 色999偷自拍拍| 麻豆AV96熟妇人妻| 亚洲精品97在线| 欧美图片色综合| 天天综和| 色九九九九| 天天摸夜夜操视频| 精彩视频日韩| 激情图片伦理国产一区二区日韩| 96爱综合| 日本九九久久99| 一区二区三区四区在线不卡| 亚洲色综网| henhen91| www.av家庭乱伦| 岛国在线免费视频| 人人看人人爰人人操 | 97色婷婷| 男人天堂.AB| 欧美久久九九| 久久一区无码| 性感女人网页在线观看视频| 熟妇精品juliaannAV| 久久久96精品| 亚洲双插| 亚洲av青草久久一区二区| 久久天天艹| 青娱乐日韩无码| 好吊色在线观看| 今日头条成人一区二区三区四虎精品| 亚洲自拍一区夜夜操| 青青操在线视频| 午夜精品久久99蜜桃的功能章节| 香伊人在线| 无码抄逼网| 亭亭丁香激情| 国产久久男人天堂| 超碰97国产欧美| 久久久久久久九九九九九九| 九九黄色视频在线观看| 久久最新免费视频23| 欧美熟女丝袜| 2017天天拍大香蕉| 日日噜噜夜夜狠狠视频无| 99热超碰在线| 熟妇高潮一区二| 亚洲精品乱码久久久久久蜜桃麻豆| 成人羞羞视频国产| 黄色人人| 蜜臀少妇一区二区| 啊啊啊久久久视频| yiqicaoav| 欧美人人AAA| 日本操BAV| 日韩AV色图| 欧美日韩人妻精品一区二区三区| 欧美性爱精品七区| 免费看国产曰批40分钟怎么下载| 玖玖视频在线资源一区二区三区| 久久精品男人的天堂| 九九综合久久中文字幕| 日本天天吊| 婷婷丁香人妻 | 夜夜青青无码影院| 99re在线| 久久五月婷| 欧美综合综合| 91九色精品熟女内射| 四虎884| 乱论91| 人妻熟女一区二区| 手机在线免费看的av| 丰满欧美少妇| 天堂亚洲精品久久老牛| 国产二区三区免费视频| 在线 制服丝袜中出 人妻| 好舒服视频| 国产a级精品| 精品传媒在线一区| 色狠狠综合| 夜夜爽夜夜摸夜夜操免费视频| 人人弄人人摸| 凹凸视频特色日本特黄| 91超碰在线播放| 国模私拍一区二区三区神乳| 熟妇在线视频一区二区| 综合视频91| 激激五月| 久操免费电影| 丰满人妻一区二区三区大胸懂色 | 久久最新视频免费观看| 怡红院亚洲怡春院av| 无码国产精品午夜不卡(| 亚欧美综合网| 免费人人搞97| 中文操嬖片。| 热热色中文无码| 裸模AV女优| 久久亚洲AV成人精品无码| 亚洲日精品| 大香蕉综合| 国产高清免费不卡av| 欧美一级A一级a爱片久久| 欧洲自拍色图gif在线| 国产一级内射无挡观看| 亚洲国产成人精品无码专区| 97超碰美女| baiduhicn.com。| 天天操女人| 亚洲丝袜二区在线| 夜间福利片1000无码| 亚洲综合中文字幕有码| asc国产精品| 九九精品热| 家庭乱伦麻豆| 色呦呦、国产精品| 强奸乱伦大香蕉| 欧美性性性| 成人影 天天操 亚洲| 国产精品不卡一区二区三区av | 欧美日韩国产色五月综合在线| 伦理片秋霞免费影院| 丁香九月婷婷| 色婷婷aV一区二区三区麻豆综合| 影音先锋视频在线| 男人的天堂三级| 在线观看综合精品亚洲| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 精品无码久久久久| 福利在线观看一区二区| 性91| 欧美 亚洲 大香| 五月色网| 中文字幕精品一区欧美| 午夜精品久久久久久久| 五月丁香影院| 萌白酱自拍视频| 97国产超碰| 日韩欧美女优电影| 在线观看免费视频国产| 日韩啪啪视频| 国产精品久久久久久久久久久久久久久 | 亚洲精品成人动漫在线| 97视频在线视频| 色狠狠综合噜一二三区| 一区二区三区精品视频| 国产精品诱惑| 日本精品久久久久久久| 国产视频一区二区三区久久亚洲天堂| 操美女高潮抽搐白浆| 成人无遮挡毛片免费看| 午夜操一视频一区|