99精品久久精品一区二区-亚洲熟妇无码?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ù)源換了目錄圖例位置挪了比例尺文字改了然后就一晚上什么都干不了全在手動(dòng)刷新布局、改一個(gè)又一個(gè)細(xì)節(jié)、再一張張導(dǎo)出。說實(shí)話這種活第一次遇到你會(huì)覺得是體力勞動(dòng)忍忍就過去了第二次遇到你會(huì)開始懷疑自己為什么用GIS不用Excel第三次你大概率會(huì)想這筆時(shí)間花得值嗎后來我下決心把整套流程里能用腳本解決的環(huán)節(jié)全部交給ArcPy才終于把自己從枯燥的“人肉刷新器”崗位上解放出來。這篇文章就圍繞一個(gè)真實(shí)高頻場景展開——用ArcPy自動(dòng)批量化制圖重點(diǎn)是修改圖層數(shù)據(jù)源、修改布局元素、批量導(dǎo)出布局地圖。我會(huì)把整套思路、腳本邏輯、踩過的坑、能直接抄作業(yè)的代碼結(jié)構(gòu)一次性講透。這套東西適合誰適合那些需要維護(hù)大量地圖文檔、定期更新數(shù)據(jù)源路徑、按固定模板出一批圖紙的GIS從業(yè)者不管是ArcMap還是ArcGIS Pro的用戶只要理解了核心對象模型遷移起來都不難。如果你是剛接觸ArcPy的小白跟著這篇文章走完你會(huì)明白腳本不是在“代替”你做圖而是把制圖流程里最重復(fù)、最機(jī)械、最不值得你熬夜的部分全部交給了可復(fù)現(xiàn)、可版本管理的代碼邏輯。1. 制圖自動(dòng)化的關(guān)鍵前提先理解你要操作的“地圖文檔”到底是什么很多人寫ArcPy腳本失敗不是代碼寫錯(cuò)了而是對ArcGIS文檔模型理解得不夠透徹。ArcPy能做什么不能做什么完全取決于你對Map Document和Layout布局的認(rèn)知。所以這塊內(nèi)容我會(huì)講得稍微底層一點(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í)就不會(huì)“一行代碼查一個(gè)文檔”那樣低效了。1.2 為什么改數(shù)據(jù)源是高頻需求里的高頻改數(shù)據(jù)源基本是所有批量化制圖工作流里最常見、也最不能出錯(cuò)的一步。原因很簡單圖紙的底圖和符號(hào)體系往往幾年不換但GIS數(shù)據(jù)文件所在的位置可能年年變——換了新服務(wù)器、項(xiàng)目歸檔挪了盤符、驗(yàn)收時(shí)要求統(tǒng)一數(shù)據(jù)目錄。如果你的mxd或aprx里面幾百個(gè)圖層的數(shù)據(jù)源路徑全部都是絕對路徑那一旦目錄結(jié)構(gòu)變化打開文檔就是滿屏紅感嘆號(hào)所有圖層數(shù)據(jù)全部斷鏈。ArcPy最擅長處理的就是這種“機(jī)械但量大”的路徑替換工作。它不需要你手動(dòng)一個(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)目中通常會(huì)先確認(rèn)目標(biāo)數(shù)據(jù)源類型再?zèng)Q定用哪種方式。如果你把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ī) - 存儲(chǔ)路徑類型”設(shè)置成了“相對路徑”導(dǎo)致數(shù)據(jù)源替換后依然出現(xiàn)紅感嘆號(hào)的情況。所以腳本第一步建議先確認(rèn)/設(shè)置文檔的相對路徑存儲(chǔ)選項(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)行必須手動(dòng)將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ū)С?。下面給一段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)容可能會(huì)變位置可能會(huì)挪但元素名稱是一個(gè)穩(wěn)定的標(biāo)識(shí)符。建立模板的時(shí)候就花幾分鐘把所有元素命名規(guī)范后面寫腳本會(huì)輕松一百倍。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)出。后面我會(huì)給出Pro的對應(yīng)示例。2.5 一個(gè)小結(jié)腳本工作流應(yīng)該組合得像流水線在實(shí)際項(xiàng)目中我會(huì)把上述三步串起來形成一個(gè)完整的“更新數(shù)據(jù)源 - 修改布局 - 批量出圖”流水線。這中間還會(huì)加入一個(gè)步驟就是先備份原始文檔避免腳本跑掛后連底圖都找不回來。備份操作一句話就能完成但關(guān)鍵時(shí)刻能救命。我還習(xí)慣在腳本里把關(guān)鍵輸出都用打印或日志方式記錄下來。專業(yè)的腳本不是寫完就跑而是要能追蹤結(jié)果。ArcGIS的腳本運(yùn)行后你根本看不見界面上的紅感嘆號(hào)只能靠日志判斷每個(gè)圖層有沒有被正確替換。所以從一開始就養(yǎng)成“打印日志”的習(xí)慣是非常值得的。3. ArcPy批量化制圖實(shí)操從參數(shù)設(shè)定到一鍵出圖光看理論不過癮這一章我直接給你一套可運(yùn)行的生產(chǎn)級腳本骨架并附上每一步的講解。這套腳本我會(huì)基于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)境里我通常還會(huì)加一個(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是安全選擇字跡和線劃都不會(huì)發(fā)虛文件體積也還扛得住。如果圖紙幅面很大又需要web發(fā)布我會(huì)降到200或150。image_quality我一般用HIGH或者BEST。這個(gè)參數(shù)影響的是PDF中嵌入柵格影像的質(zhì)量。如果你的底圖是影像圖務(wù)必用HIGH如果是純矢量這個(gè)影響不大反而文件會(huì)小很多。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ù)范圍動(dòng)態(tài)裁剪。這種在ArcMap里通常需要靠數(shù)據(jù)驅(qū)動(dòng)頁面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òng)按范圍更新布局然后逐頁導(dǎo)出。你會(huì)發(fā)現(xiàn)從這開始你已經(jīng)不需要去手動(dòng)調(diào)整任何東西了整個(gè)流程交給腳本就是“喝水看進(jìn)度”的感覺。3.4 常見坑ArcPy操作圖層數(shù)據(jù)源的“只讀”與“生效”問題這里我把最讓人頭疼的幾個(gè)坑提前說明白免得你踩了之后懷疑人生。第一個(gè)是圖層對象被占用。在ArcMap里如果你在同一個(gè)Python窗口里多次打開mxd又不釋放前一個(gè)mxd對象會(huì)導(dǎo)致文件鎖死保存失敗。解決辦法很簡單每次操作結(jié)束執(zhí)行del mxdPro里也要注意release對象。第二個(gè)是修改后的地圖文檔不會(huì)自動(dòng)保存。無論你是用save還是saveACopy都要明確調(diào)用。ArcPy不是“所見即所得”腳本運(yùn)行后你如果不保存所有修改只在你當(dāng)前運(yùn)行的內(nèi)存里關(guān)了窗口就沒了。所以腳本最后記得保存。第三個(gè)是最折磨人的數(shù)據(jù)源替換成功了但ArcMap打開還是感嘆號(hào)。這個(gè)往往不是腳本的問題而是ArcMap把所有數(shù)據(jù)源引用同時(shí)存在文檔和ArcGIS的“最近打開”緩存中。這時(shí)候你在ArcCatalog里手工瀏覽到新路徑一次往往就好了。更靠譜的做法是先在代碼里嚴(yán)格驗(yàn)證新路徑存在并且在腳本最后調(diào)用mxd.clearWorkspaceCache()mxd對象支持或者重新計(jì)算文檔路徑。實(shí)際經(jīng)驗(yàn)告訴我在腳本執(zhí)行完以后重新打開一次文檔再保存一次能夠解決大部分“顯示感嘆號(hào)”的玄學(xué)問題。第四個(gè)是關(guān)于中文路徑和編碼。ArcMap的Python 2環(huán)境對中文字符串處理非常飄忽動(dòng)不動(dòng)就是“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ì)碎”的部分手動(dòng)改起來極其耗時(shí)而且特別容易改漏。用腳本處理時(shí)需要有更細(xì)的思路。4.1 布局元素的名稱規(guī)范從源頭解決匹配難問題我反復(fù)跟同事說做模板的時(shí)候別急著調(diào)顏色、調(diào)符號(hào)先把所有元素命名規(guī)范了。所謂規(guī)范就是讓每個(gè)元素有一個(gè)唯一、可讀的名字。比如圖名元素MapTitle比例尺數(shù)字ScaleText圖例標(biāo)題LegendTitle制圖單位AuthorText日期元素DateText圖廓外說明CaptionText這些名字會(huì)直接作為ArcPy腳本里的判斷依據(jù)。如果你模板里沒有名字系統(tǒng)默認(rèn)可能是“Text 1”“Text 2”一旦排版順序變了元素名就不穩(wěn)定腳本匹配就會(huì)出錯(cuò)。所以你在ArcMap或Pro里創(chuàng)建模板時(shí)一定花費(fèi)10分鐘在“布局”視圖里逐個(gè)給元素重命名。這是后面所有自動(dòng)化的地基地基不穩(wěn)墻就歪。4.2 基于元素類型批量處理當(dāng)元素名規(guī)范好后處理邏輯會(huì)變得很清晰。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如果不用類型篩選會(huì)返回一大堆東西而不同類型元素?fù)碛械膶傩院瘮?shù)還不一樣。4.3 動(dòng)態(tài)獲取地圖數(shù)據(jù)范圍并更新圖廓批量化制圖里還有一個(gè)高級玩法從地圖中動(dòng)態(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í)每張圖自動(dòng)標(biāo)注它的坐標(biāo)范圍。你自己手動(dòng)去做的話要翻屬性表、要縮放、要讀坐標(biāo)反復(fù)操作煩死了。用腳本這一串工作自動(dòng)就完成了。4.4 圖例元素的動(dòng)態(tài)刷新圖例的坑比較隱蔽。經(jīng)驗(yàn)是這樣的如果圖例里有動(dòng)態(tài)圖層它的內(nèi)容會(huì)隨著數(shù)據(jù)源的修改而自動(dòng)變化但如果你在布局里對圖例做了一些手動(dòng)調(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)這樣圖例只跟隨顯示圖層走不會(huì)出現(xiàn)“圖例消失”或“圖例多一項(xiàng)”的現(xiàn)象。5. 批量導(dǎo)出地圖的完整場景從單張PDF到多頁P(yáng)DF、從PNG到打印分辨率導(dǎo)出環(huán)節(jié)是整個(gè)流程的收官之筆。自動(dòng)化到這里如果你設(shè)計(jì)得好前面所有修改會(huì)在一句導(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é)我后面會(huì)專門講?,F(xiàn)在先記住單張布局導(dǎo)出是基礎(chǔ)多頁合并是加分項(xiàng)。5.2 場景二地圖系列Map Series批量導(dǎo)出我在前面代碼里已經(jīng)演示過地圖系列的基礎(chǔ)用法。地圖系列之所以高效是因?yàn)镻ro能夠把“當(dāng)前顯示范圍”和“頁面布局”自動(dòng)聯(lián)動(dòng)。你只需要維護(hù)一個(gè)索引圖層比如鄉(xiāng)鎮(zhèn)邊界圖系列會(huì)自動(dòng)切到每個(gè)鄉(xiāng)鎮(zhèn)范圍并刷新地圖框。此時(shí)腳本要做的只是設(shè)置當(dāng)前頁然后導(dǎo)出。這套機(jī)制在ArcMap時(shí)代叫Data Driven Pages我也用過但當(dāng)時(shí)需要額外處理好數(shù)據(jù)驅(qū)動(dòng)頁和布局元素之間的關(guān)系尤其是動(dòng)態(tài)文本——在ArcMap里動(dòng)態(tài)文本用專門的設(shè)置控制在Pro里地圖系列自帶很多動(dòng)態(tài)文本可以自動(dòng)替換非常方便。如果有條件我更推薦大家直接用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)象可能原因解決思路替換后所有圖層仍感嘆號(hào)新路徑不存在 / 空間參考不一致 / 字段缺失提前用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é)會(huì)“留痕”腳本運(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)判斷這次跑批是否成功日志如果稀爛你只能重新打開輸出文件逐頁檢查等于又回到手動(dòng)模式。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)容腳本一行不用動(dòng)。這樣的“一次投入、多次復(fù)用”才是ArcPy批量化制圖真正的價(jià)值所在。我這里提的“模板工程化”是純個(gè)人實(shí)踐心得不是官方標(biāo)準(zhǔn)但強(qiáng)烈推薦你試試。6.4 千萬記得腳本跑完后的人工抽檢自動(dòng)化歸自動(dòng)化交付前給自己留5分鐘做抽檢永遠(yuǎn)不吃虧。我用腳本出一批圖一般會(huì)隨機(jī)抽三張一張檢查圖名是否正確一張檢查比例尺一張檢查數(shù)據(jù)源路徑是否一致。沒有這一步哪怕腳本邏輯百分百正確也可能因?yàn)樵紨?shù)據(jù)問題導(dǎo)致圖紙內(nèi)容不符合要求。抽檢的成本極低但能挽回的可能是一個(gè)通宵重做。7. 再多說一句自動(dòng)化的邊界與人工判斷的平衡談到這里Arcpy自動(dòng)批量化制圖的核心流程已經(jīng)全部覆蓋了。作為常年靠這套流程吃飯的人我想再分享一點(diǎn)個(gè)人的體會(huì)自動(dòng)化不是萬能的它適合處理“量大、規(guī)則明確、重復(fù)度高”的任務(wù)但那些需要視覺審美判斷、需要根據(jù)數(shù)據(jù)內(nèi)容調(diào)整表達(dá)的環(huán)節(jié)比如設(shè)計(jì)一套新的配色方案、調(diào)整符號(hào)的視覺層次、判斷某個(gè)注記擺放是否壓蓋了道路這類工作讓腳本來做反而容易失控。所以我的建議是把ArcPy用在“編輯、刷新、導(dǎo)出”這層機(jī)械操作上把“設(shè)計(jì)、判斷、校準(zhǔn)”這部分留給自己。這樣既享受了效率紅利又保證了成圖質(zhì)量不滑坡。最后再分享一個(gè)小技巧不管你的腳本寫得多么順手一定要在服務(wù)器或者本機(jī)建立一個(gè)專門存放腳本的目錄并且用版本管理工具哪怕是簡單的時(shí)間戳備份來維護(hù)腳本。我見過太多人寫腳本時(shí)改了一版又一版最后都不知道哪版是可用的。定時(shí)備份、寫清注釋、留下運(yùn)行日志這套習(xí)慣才是自動(dòng)化工作流帶給你的長遠(yuǎn)財(cái)富。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色99网| 91在线97视频| 天天摸夜夜夜| 五月丁香亚洲校园欧美| 182无码| 久久超级碰碰| 久热A| 91精品人妻少妇无码影院| 热久久99热欧美国产亚洲| ji'qing'luan'ren'lun| 成人一区在线观看| 色九四色| 欧美S码亚洲码精品M码| 无码啪啪| 亭亭色网| 极品人妻VideOssS人妻| 色噜噜狠狠插综合| 少妇口诉沐足视频播放器网址| 在线99精品| 五月丁香色色网| 婷婷五月丁香超碰| 亚洲va欧洲va国产va不卡| 亚洲成人在线播放| 翔田千里 50岁 无码| 影音先锋91网站在线观看| 91人操人人人操人| 婷婷五月天av| 一本色道久久综合狠狠躁小说| 激情五月天开心网丁香无码| 五月婷婷综合激情网| 婷婷性爱五月天丁香网| 99视频在线9| 九月婷婷综合| 色婷婷综合视频| 激情五婷网| 激情婷婷人妻| 婷婷5月开心6月| 色色婷婷五月天| 婷婷综合偷拍| 99久久.www| 婷婷五月天性色| 五月天桃色深爱网| 操一区| 大香蕉九操| 99热精品无码| 91成人看片| 野战毛片三一3| 日日影院 | 五月婷婷|欧美| 五月天色社区| 2025天天日爽| 色五月天本日| 热99re| 婷婷偷拍网| 草一草avb| 玖玖午夜视频| 婷婷欧美综合| 日本一级一级一级一级| 婷婷久久久久久久| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 亚洲色a| 噜噜综合网| 色色是色N一| 91热在线| 激情综合5月| 【乱子伦】黄色| 这里只有精品视频国产| 婷婷六月天激情影院| 色综合九九色综合88| 影音先锋男人资源站一区二区| 狠狠色综合久久久久| 影音先锋日本三级资源| 色99欧洲色19| 91九色精品女同系列| 伊人婷婷大香蕉| 久久伊人9| 五月丁香少妇| 婷婷射综合| 99热99干| 久久 这里只有精品1| 人人人人人人人人人草| 大陆肏屄视频| 欧美六月| 天久综合91综合首页| 婷婷五月花| 北条麻妃九九九国产精品视频| 秋霞少妇AV网站| 亚洲成AV人片在线观看| 日韩欧美老妇性视频91久久久| 日韩欧美成人片| 婷婷丁香五月综合| 五月花丁香婷婷| 天天干天天射色综合| 99在线观看视频| 日本欧美成人片AAAA| 色色色综合视频| 任你搞免费视频观看| 狠狠五月激情丁香六月| 亭亭五月天黑人2014| 艾小青av| 996er在线观看| 五月天久久网站| 99亚洲精品综合在线| 97性视频| 丁香五月综合激情性爱| 99色色视频| 南京搡BBBB搡BBBB| 管管補管管紱| 夜夜骑日日夜夜| 婷婷丁香在线| 婷婷久草| 婷婷五月亚洲激情| 婷婷色在线| 丁香五月123| 97超级碰人人| 丁香婷婷影院| 婷婷基地成人五月天| 婷婷久综合| 久久精品A片777777| 色婷天天| 婷婷六月激情| 97色啪| 色婷五月天激情| 九九热短视频在线观看| 天天综合网亚洲综合网| 欧美VA在线| 凹凸操Av| 精品人妻伦一二三区久| 五月婷婷丁香| 激情综合网丁香| AV成人在线播放| 色综合香蕉视频| 亚洲成人av在线播放| 性色综合网| 色五月天 丁香| 亚洲精品第一色色色色色色| 99福利视频导航| 日曰躁夜夜躁2026| 操比激情五月| 另类 在线| 婷婷五月丁香色综合| 丁香五月综合久久| 日本久久精品| 色五月婷婷、老熟女| 国产成人VA| 国产婷婷五月中文字幕高清| 色五月综合婷婷| 狠色狠色综合久久| 天天日 天天草| 亚洲熟妇无码乱子AV电影| 日韩欧美成人片| 色播播婷婷| 五月婷婷在线视频| 超碰99在线观看| 思思热视频| 97在线精品| 亚洲综合视频网| www.五月婷婷久久.com| 99噜噜噜在线播放| 色色97丁香婷婷五月天| 日韩综合久久| 第四色色六月色综合| 国产FREESEXVIDEOS性中国 | 先锋资源91| 婷婷综合视频| 中文字幕在线免费看线人| 激情五月天电影| 91久久1118| 丁香五月激情五月| 久久99网| 久久久99婷婷久久久久久| 91se在线观看| caopeng超碰| 五月丁香激情综合六月涩涩爱| 婷婷丁香五月天中文字幕| 欧美黄色AA片哗啦啦啦| 99久在线精品99re8热| 在线不卡视频| 色色影院黄大片| 久99久在线| 七七九九色色| 六月婷婷五月丁香| 92久久精品一区二区| 91大操| 人人操操| 亚洲五月天伊人| 开心五月网 | 五月激情综| 97资源碰碰| 成人无码精品1区2区3区免费看| 婷婷丁香久久网| 性爱综合网| AV在线不卡播放| 久久婷婷东京热大香樵| 亚洲天堂AV免费片| 婷婷六月综合基地| 五月婷婷丁香91| 天天肏高清在线| 五月婷婷六月丁| 丁香婷婷五月| 精品爱欲五| 日韩欧美一道四区中文字幕| 天堂AV三级| 中文字幕久久一区二区三区| www.婷婷五月| aaa9区免费在线观看| 婷婷五月天色丁香| 婷婷色啪| 99啪啪骑| 久久这里只有精品无码| 九九热精品| 国产69久久久欧美黑人A片| 激情久久综合网| 五月天·www·com| 91一起操| 五月婷婷色播| 色导航色婷婷五月天在线观看| 99精品色| 免费啪啪亚州视频| 九九热这里只有精品6| 思思热在线观看| 久久超级碰视频| 精品九九视频| 久久人妻精品| 婷婷成人网五月天| 亚洲九九99精品视频在线播放| 97婷婷狠狠| 欧美一级毛卡片无码| 亚洲欧美日韩VIP| 五月丁香六月色| 九九视频在线免费视频| 中文字幕丰满孑伦无码专区| 久久丁香五月综合六月激情红杏视频| 婷婷五月花| 婷婷.com| 五月开心婷婷| 性爱久久| 九九热99视频| 国产免费AV在线| 东北熟女高潮99综合99| 亚洲精品激情| 婷婷激情综合色五月久久91| 天天草天天日| 亚洲成av人影院| 女人露出p毛视频www网站| 五月天另类激情在线| 国产精品成人网址| 欧美啄木乌丝袜人妻系列| 另类少妇人与禽zOZZ0性伦| 97视频91| 99视频内射三四| 探花搜索结果 - 黄上黄| 欧美综合五月丁香六月婷| 99在线精品观看99| 丁香六月av| 亚州色色色| 五月激情综合网| 亚洲狠狠干| 婷婷五月另类网站| 色情婷婷五月天| 狠狠色婷| 日本狠狠色| 久久全色| 五月婷婷在线视频| 久久久激情视频| 五月天丁香婷| 久热婷婷| 人人操av| 天天肏屄夜夜爽| 色婷婷av在线观看| 色综久久AV| 97久久人人| 国产成人在线精品| 热五月婷婷| 激情丁香六月| 久久机热/这里只有精品| 色婷婷操逼| 亚洲午夜av| 九九色综合网| 婷婷四色五月| 成人色色综合| 综合欧美五月婷婷| 桃色激情网| 九九热青青草| 99九九在线| 亚洲精品视频在线播放| 久久精品国产一区二区三区四区| 色婷婷九月综合| 婷婷五月精品| 久色激情| 秋霞午夜理论| 美女视频图片久久91| 婷婷五月天视频亚洲| 亚洲精品网址| 婷婷色网| 综合网五月天123| 久久免费干| 亚洲色热| 色婷| 香蕉AV777XXX色综合一区 | 国产真实乱了老女人视频| 狠狠擼综合| A片试看120分钟做受图片| 亚洲五月天婷婷综合| 久超免费视频| 久久精品99| tingting五月天亚洲| 91黄色五月天视频| 五月久久婷婷丁香| 成人网站免费sxj| 月丁香久久久| 强伦轩人妻一区二区电影| 久久国产性爱A V| 国产精品成人AV在线观看春天| 99热免| 9月色婷婷| 久久这里只有精品8| 天天干天天干天天干天天干天天干天天 | 欧洲色| 日本99热| 久久久久9久无码视频| 日本丁香五月| 久久久婷丁香五月| 久久精品99久久| 五月婷婷开心网| 欧美激情五月| 综合激情婷婷| 婷五月天| 国产成人精品一区二三区熟女在线 | 岛国操B不卡在线| 日本超碰在线| 欧美激情-区二区三区| 国产精品视频免费看| 伊人激情啪啪| 人人人舔人人人操人人人摸人人人97 | xx综合网| 影音先锋一区| 人操91在线| 国产精品久久..4399| 国产日日夜夜操| 九九综合图片网| 丁香六月激情综合| 超碰猛烈的性猛交| 99热这里只有精品最新| 蜜桃婷婷五月| 激情五月天综合网| 五月丁香六月停停停| 亚洲热综合| 亚洲色99| 丁香五月网在线观看| 亚洲操逼片| 草草色情综合网| 婷婷婷婷婷婷婷五月丁香| 99日这里只有精品| 亚洲亚洲激情| 婷婷爱在线观看| 色情成人五月天| 五月天婷婷成人网| 人人操插| 六月激情久久| 99热成人在线| 色五月成人在线| 无码se| 91AV视频| 婷婷不卡基地| 亚洲无AV在线中文字幕| 26UUU欧美| 九九 激情 网| 思思久久99| 亚洲人妻一区二区 | 久久久久人妻网址| 香蕉AV777XXX色综合一区| 色五月xxx| www.91在线观看| 超碰妻人人| 九九热视频在线观看| 激情九月综合| 99久在线精品| 久久久性爱视频| 婷婷婷婷婷开心无码播放| 丁六月激情| 热的国产99热| 99热大全在线观看| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 色综合区| 成人国产综合| 综合网色| 欧美日韩99| 婷婷狠狠97| 五月色色激情网| 人人干AV| 人妻尝试久久久久久久久久久久| 婷婷成人丁香色情基地30| 97色色-99久久| 日韩色色视频| 五月天色婷婷综合| 激情五月久久| 99re这里| 桃色五月天| 天天爽天天干| 五月丁香婷婷综合| 中文人妻AV久久人妻18| JAPANRCEP老熟妇乱子伦视频| 五月丁香激情综合| 久草热8精品视频在线观看| 99色网站| 激情小说五月天| www.色综合| 婷婷五月天成人网| 国产真实乱了老女人视频| 三男玩一女三A片| 99在线免费视频| 六月婷婷综合| 人妻内射一区二区在线视频| 久婷狼色诱惑在线| 大香蕉久久久久久久久| 色婷婷91| 中文字幕AV在线| 激情综合网五月婷婷| 色五月婷婷在线| 殴美激情综合网| 大香蕉婷婷五月天| 日韩一区二区在线播放| 婷婷五月天亚洲激情戏精品| 久热A| 成人免费va| 日本天堂免费99| 午夜激情综合| 色五月综合网| 99九九精品视频推荐| 中文婷婷狠狠| 亚洲最大在线| 高清激情av在线观看| 婷婷六久久| 色噜噜五月丁香婷婷| 人妻激情视频| 亚洲精品网站色视频| 婷婷五月天激情综合| 另类小说婷婷色| 99九九精品| 久久综合首页| www.色五月| 俺来也狠狠| 美国不卡视频| wWwCom夜操wwW| 久久狠狠色| 华人在线免费| 99re热在线观看| 久久草大香蕉| 婷婷在线中文字幕| 9久热在线视频精品| 成人日韩欧美| 亚洲综合在线丁香五月| 色久九| 五月天婷婷久久| 九色激情| 99熟女| 这里只有国产精品在线| 婷婷99狠狠躁天天躁中| 专区无日本视频高清8| 九月丁香婷婷网| 91网站黄| 五月丁香六月婷婷综合伊人| 五月丁香六月婷婷国产视频| 久久婷婷伊人| 99内射视频| 婷婷亚洲日本| 99亚州综合精品成人网| 99精品热| 六月丁香狠狠爱| 激情综合自拍五月婷婷色五月| 99热99re6国产在线播放| 婷婷成人AV| 色五月欧美| 无码色| 九九碰九九爱97| 超级碰 久久9| 丁香五月婷婷啪| 婷婷五月天在线视频网站| 久久久网站| 丁香五月手机视频| 五月激情网五月综合网| 欧美色宗和激情| 色无婷婷| 国产五月丁香在线| 99热这里只有精品在线| 操人妻AV| 青草青草久热这里只有精品| 丁香五月在线观看| 热思思九九| 超碰免费99| 26uuu亚洲欧美| 欧美色色色色色| 啪精品| 99视频精品8 | 在线播放成人网站| 在线天堂9| 亚洲久久婷婷| 婷婷五月av| 伊人综合色干| 九九这里都是精品| 免费无码毛片一区二区A片| 综合AV在线| 欧美丁香婷婷五月天| 日本精品久久久久中文字幕| 狠狠干综合| 婷婷涩涩五月天| 国产成人片| 婷婷九月激情| 九九色图| 99精品视频推荐| 五月丁香久久呀| 五月天偷拍| 成人丁香色| 亚洲va在线∨a天堂va欧美va| 99热亚洲精品| 丁香五月婷婷啪啪视频| 丁香色五月直播| 91碰超| 婷婷综合在线视频| 五月天精品综合| 国产偷人爽久久久久久老妇APP | 成人婷婷| 女同激情久久av久久| 久热爱大香蕉在线蜜臀悦色| 亚洲精品性色| 狠狠噪| 日日干干天天干| 久久久中文| 午夜丁香丁香婷婷| 久热这里只有精品99re| 激情综合5| 亚洲旡码| 成人av在线电影| 一区二区免费看| 大香焦A∨| 婷婷六月视频| 久久久久久久久久久久久久久久久精典| WWW.桔色成人.COM| 超碰国产在线播放| 六月丁香好婷婷| 青青草大香| 激情www.98com| 国产小精品| 婷婷美女精品视频| 熟女人妻视频| 色丁香久久久| 婷婷五月综合丁香久久| AAAA网站| 色玖玖导航| 五月色色网| 伊人碰碰碰| 91精品综合久久久久久五月丁香| 色99在线看| 99色综合网| 狠狠爱婷婷爱| 婷婷亚洲天堂| www.激情.com.| 婷婷啪啪| 婷婷丁香五月欧美人| 久久人妻视步| 黄网在线观看免费| 996er热| 99热r| 色欲久久综合| WWW激情五月天| 亚洲精品第一国产综合亚AV| 开心激情婷婷| 99久久精彩视频。| 久热在线中文字幕色999舞| 亚洲噜色| 色婷婷在线影院| 久久只有18视频| 免费黄色AV| 亚洲热视频在线| 91精品熟女| 大香蕉久久视频久久视频| 欧洲亚洲精品| 亚洲精品电影| 国产日韩精品SUV| 丁香五月综合网亚洲综合欧美狠狠| 五月丁香婷婷啪啪网| 天堂久久精品| 欧美一区二区三区不卡影视| 中文字幕高清av| 五月婷视频在线| 五月激情四射婷婷丁香| 97涩婷婷| 五月天久久久| 激情五月天小说视频| 日本97在线| 五月丁香综合| 婷婷精品综合| 99操逼| 在线观看日韩12345区| 激情综合网五月婷婷| 亚洲九九夜夜| 91聚色综合网| 日本久热| 在热视频精品| 狠狠操综合| 色婷婷五月天在线| 99人人操| 五月丁香婷婷成人网| 天天做天天爱| 亚洲色激婷| 激情五月九九九| 久久久久婷婷| 五月天婷婷在线播放| 丁香五月综合高清在线| 婷婷日本在线| 激情五月天丁香| 夜夜谢天天干| 婷婷伊人激情婷婷| 成人av在线网址| 九九丁香社区欧美激情| 婷婷的99视频网站| 五月天六月婷| 99色网站| 久久九九亚洲| 亚洲婷婷五月天| 婷婷丁香色五月| site:xmssd.com| 玖玖婷婷婷丁香五月| 欧洲色区| 久久婷婷色| 丁香五月天激情网| 婷婷色天香| 久久99精品久久久久久噜噜| 大香蕉AV电影在线| 夜夜操狠狠操| 九九综合九九| 婷婷五月天电影网| 西瓜美女a片| av在线观看免费| 五月五月婷婷| 婷婷5月久久综合网站| 五月丁香六月激情欧美综合| 丁香五月婷婷在线| tingtingzonghewang| 激情性爱五月天| 狠狠狠狠青草| 色六月 婷婷| 色欲久久综合| 色婷婷久久综合中文久久一本| 99久久极情精品一区| 五月丁香六月婷婷啪啪综合| 日韩天堂久久| 99ri网站在线观看| 中文幕无线码中文字蜜桃| 在线观看的av| 久久丁香综合| 色婷婷五月天偷拍| ss视频xx91| 五月丁香综合伦理片| 99综合视频| 丁香五月婷婷啪| www.99热这里精品| 日本玖玖在线| 人妻体体内射精一区二区| 99色视频| 99综合一区| 国内外色色色色色成人视频| 日本婷色| 五月婷亚洲精品| 久噜久噜| 新激情五月天色播| 99久久思思| 日韩黄黄| 五月天亚洲最大成人| 九九熱最新視頻| 99精品自拍视频| 成人版视频在线观看| 伊人玖玖综合| 久久婷婷夜| 国产免费av在线| 中文字幕在线不卡视频| 996热re视频在线观看视频| 碰碰碰97国产| 4399精品一区二区| 超碰成人在线免费观看| 超碰在线资源| 综合色图婷婷| 伊人五月婷| 日本三级99人妇网站| 三级毛片视频| 字母不卡码人逼| 99干在线视频| 91婷婷五月丁香碰| 美女爆乳18禁www久久久久久| 六月婷婷日| 狠狠 久久| 成年视频免费观看| 99无码超碰| 亚洲天堂99| 五月婷俺去也| 亚色网站小视频| 在线A色| 婷婷丁香色情| 色色色热| 天天操夜夜操| 超碰人人艹| 欧美日韩aaa| 欧美性猛交 XXXX 乱大交| 日韩久久系列| 五月天丁香啪啪啪啪| 日本专区久久| 久久六月天| 这里只有精品热| 九九亚洲小视频| 欧美草久久五月天91| 色婷婷综合影院| www超碰| 99无码| 人妻激情久久| 激情五月天啪啪| 99小视频在线| 九九视频精品在线免费| www.成人婷婷综合| 婷婷九月综合| 精品一二三区久久AAA片| 琪琪色五月婷婷老师| 五月天激情黄色网址| 91精品91久久久中77777久久玖玖九九| 97干在线| 久99热| 色婷婷色五月综合| 99在线精品视频| 天天色综网| 激情五月丁香五月色| 夜夜AVV| 婷婷综合五月| 午夜无码精品色综合久久| 丁香五月香蕉| site:pnnrt.com| 教师性爱毛片| 日韩在线一级| 另类五月婷婷| 99热免费在线| 亚洲人人操| 久久99激情五月天| 97人人操在线| 99精品网站| 91久久| 97色精品视频| 日本一道久久| 久热这里只有精品66| 久久婷婷五月综合激情国产| 专区无日本视频高清8| 9热久久在线| 538午夜激情| 丁香五月综合在线观看| 淫视馆aV二区一区| 丁香五月ⅤA久久久| 噜噜狠狠| 日韩无码色色| 国产精品色色| 99 福利 导航| 四虎婷婷五月天| 免费观看大片视频 丁香婷婷 六月欧美| 欧美成人精品A片免费一区99| 激情久久丁香| 另类图片 五月激情| 日韩在线99| 婷婷五月激情四射手| 9久精品视频| 激情五月综合网最新 | AA片在线观看视频在线播放| 色天堂在线| 丁香六月无码播放| 综合激情五月丁香| 久久99激情| 5月色亭亭视频| 婷婷色综合| 天天揷综合网| 停停六月 综合| 五月婷婷综合色拍| 99自拍视频在线| 欧美综合激情| 91色综合| 久狠狠狠| 日韩av免费版| 久久香蕉网| 无码99| 99爱精品| 丁香六月色婷婷| 久久深爱激情网| 午夜丁香| 色天堂在线| 激情综合五月婷婷六月丁香| 婷婷五月天成人网| 婷婷久久亚洲| 五月婷婷九| 91VIP在线观看| Av性爱网站| 婷婷精品视频| 91九色大屁股| 思思热精品在线| 丁香五月婷婷图片综合| 婷婷5月天激情综合| 五月色婷婷亚洲| 欧美日本黄色| 婷婷色六月| 五月婷婷真爱激情网| 人妻激情久久| 五月婷在线色视频| 性爱视频99| 五月色婷婷中文字幕| 天天综合网站| 色色丁香五月| 五月在线| 97碰操| 五月天婷婷在线播放免费| 成人 在线观看国产| 五婷婷六月合| 情欲禁地| 亚洲综合丁香五月| 91精品综合久久久久久五月丁香| 99色热| 狠狠综合| 色五月婷婷色| 激情综合网色播五月| AV中文在线| 97人人草| 五月开心婷婷网| 久久丁香| 日韩婷婷五月| 综合五月天| 天天草天天爱| 欧美搡BBBBB摔BBBBB| 免费99情趣网视频| 无码激情AAAAA片-区区| 四虎婷婷五月天| 蜜臀久久99精品久久久久久酒店| 欧美A级成人婬片免费看理论| 99 频99热国里只有精品| 九色PORNY9l原创自拍| 久久精品爱爱| 三男玩一女三A片| 亚洲五月丁| 免费看欧美成人A片无码| 操嫩逼电影| Av在线不卡一区| 日韩AAAAA| 六月婷婷香蕉| 五月丁香婷婷色色| 99热超碰| 图片区 小说区 区 亚洲五月| 久热这里只有精品视频6| 婷婷五月五月丁香| 色婷婷视频在线| 久9精品| 丁香五月综合婷婷| 五月丁香日本在线视频观看| 四季8848精品成人免费网站| 五月婷婷丁香色播网| 久热AⅤ| 99riAv1国产在线观看| 91超碰人人操| 色婷婷五月天| 亚洲欧美一区二区三区四区爱爱动图| 九月丁香八月婷婷久久综合久97| 9久久婷婷国产综合精品性色| 中文网AV| 九九操屄| 一级操逼内射在线视频| 久久加勒比| 色播五月婷婷| 亚洲激情淫网| 99在线资源视频| 激情婷婷丁香| 99热99日…..| 无毒黄色网址| 91精品综合久久婷婷九色| 色播六月| 一起草AV入口| 激情四射婷婷| 被强行糟蹋的女人A片| 成人欧美Va| 五月婷综合激情| 色五月婷婷在线| 伊人久久五月天| 99久久久久久www| 97香蕉碰碰人妻国产欧美| 激情美女五月天激情在线| 99热一本久道| 天天拍天天操| www,av好吊操| 色情五月天视频网| 久久精品99国产精品日本| 丁香五月婷婷激情蜜桃| 97天堂| 五月丁香综合色婷婷| www,久久久| 六月婷婷狠狠做| 婷婷丁香五月色偷偷| 91超级碰碰| 夜夜夜夜夜操| 99色这里| 日本97在线| 亚洲乱码日产精品BD| 妻久久人久久| 人人干天天舔| 日笨久久网| 国产人妻777人伦精品HD| 99性色| 久久在线视频只有这里有精品| 亚洲 成人 电影av在线观看| 狠狠的日| 性天天中文网| 天天天操天天天爰| 五月丁香少妇| 久久婷婷六月综合国际| 五月天丁香网| 毛片色五月| 开心四月婷婷在线色播播| 婷婷激情五月视频| 五月婷丁香| 日本熟女二区| 六月香五月婷| 日本熟妇精品99| 日韩人人操| 综合婷婷| xx久久| 五月天伊人手机在线播放AV| caop在线视频| 激情婷婷黄色五月| 激情五月激情综合网| 色综合久久44| 久久66精品| 国产韩日亚洲美州欧亚综合在线| 欧美成人日韩| 九色成人AV在线| 六月丁香五月婷婷| 99久热在线精品| 丁香五月天在线| 天天色天天噜| 色情五月天小说| 免费观看日韩成人av| 日本欧美成人片AAAA| 成人在线精品| 高清无码入口| 国内精品玖玖| 婷婷久久欧美| 婷婷永久在线| 九九精品热播| 色约约视频一区二区三区四区五区 | 玖玖热视频| 丁香婷五月| 婷婷色五月综合丁香| 日韩人妻无码精品| 婷婷综合影院| 丁香婷婷久久综合在线| 久9综合| 亚洲综合色网| 色偷偷综合| 日韩色色视频| 丁香婷婷人妻| 婷婷色激情网| 九九色婷婷| 午夜九九九九九九九九九九九九九| 怡红院91a√| 97午夜一区二区| 久热99视频在线观看| 无码少妇高潮喷水A片免费| 九九热这里只有精品6| 五月婷婷啪啪啪| 久久五月婷婷丁香| 五月天婷婷激情小说电影| 99热只有这里才是精品| xxx日本东京热| 欧美天天综合网站上去吧| 婷婷五月天播| 激情五月天视频| 中文字幕视频在线播放| 色情五月婷| 97久人人| 久9热视频在线观看| 91综合在线视频| 大香AV| 综合网啪| www.sebowuyue| 射久久丁香五月| 99精品女人天堂| 日韩大片艹艹| 99久久婷婷国产综合亚洲| 中文不卡av| 五月停停99| 五月婷婷欧洲| 丁香五月激情啪啪啪| 色吊操色妞| 艹色18p| 婷婷五月丁香A∨| Aα在线免费观看| 婷婷色偷拍| 伊人网啪啪| 亚洲在线综合| 91碰操| 五月花激情网| 久久综合影院| 亚洲99综合| 久久99热这里只有| 青青五月天婷婷| 台湾佬天天日丁香婷婷五月天| 蜜桃婷婷丁香| 一起草性爱不卡视频| 思思热这里只有精品| 无码人妻电影| 九九aV| 五月婷婷av在线| 色综合播放| www.久久久久久| 无码se| 午夜 外网 精品 在线| 六月久久狠狠| 久久人妻精品| 久久丁香五月天| 久久精品99国产精品日本| 99热每日| 婷婷五月综合久久中文字幕| 久人操| 这里只有精品在线视频精品| 色欲日日躁| 夜丁香五月婷婷| 久久WW| 婷婷九月激情| 99久久国产宗和精品1上映| 欧美色必爱| 婷婷五月色花丁香社区| 狠狠色97| 另类图片激情五月天| 五月丁香花开综合网| www.狠狠操| 九月丁香婷婷| 99爱在线| 欧美色五月| 色综合色综合色综合| 久久免费丁香| 天天日日人| 欧美成人性爱网| 久久9视频| 9视频在线成人网站| 91疯狂操操操操| 丁香五月六月久久综合 | 亚洲黄色影视| 中文字幕成人版| 亚洲综合婷婷五月| 激情 婷婷 插| 激情性爱五月| 日本操B视频在线观看| 婷婷五月中文字幕| 婷婷另类开心| 色五月婷婷五月| 久久xxxx| 激情五月婷婷视频| 黄色精品五月婷婷| 色情五月天se| 欧美性爱五月天| 久久xxxx| 综合久久伊人| 色。 婷婷婷| 亚洲熟妇无码乱子AV电影| 欧美S码亚洲码精品M码| 综合网啪| 岛国资源网| 人人干99| 岛国AV网| 91VIP在线观看| 色婷婷六月性 | 久9热插入| 第2色五月婷| 五月丁香六月激情在线| 人与禽A片啪啪| 97干免费视频| 久热播这里只有精品| 99九九精品| 亚洲综合碰| 婷婷色五月综合丁香| 97超碰在线免费观看| 国产人妻777人伦精品HD| 操97| 九九热免费| 天天插天天插| 久久新地此| 婷婷激情五月综合在线视频| 97色碰| 久久精品五月| 亚洲尤物在线| 婷婷五月天成人网| 婷婷性爱视频在线| 美女激情婷婷| 日本色婷婷| 人人综合久| 骚。com| 亚洲中文字幕在线观看| 色噜噜狠狠色综合日日| 久久久天天啊| 日本丰满久久| 夜夜操夜夜姧| 狠狠插狠狠操| 久99热在线观看| 熟女激情五月天| 丁香五月天成人| 精品一区二区三区四区五区六区介绍| 日韩av在线免费观看| 六月丁香婷婷爱| 亚洲激情丁香五月基地| 综合网亚洲| WWW99热| 五月婷丁香| 五月婷婷先锋| 性爱电影科技贸易有限公司| 五月激情偷拍| 91要啪| 五月在线| 99caobi| 五月丁香狠狠| 久久丁香综合香蕉| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 天天天久久人人人合| 激情综合色五月丁香| 免费99情趣网视频| 狠狠干天天日| 狠狠色丁香五月婷巨| 久久网日本| 色亭亭九月| 亚洲综合婷婷| 国产成人精品一区二三区熟女在线| 婷婷五月小说色综合| 九九综合色| 五月天色五月| 婷婷亚洲综合| 五月丁香无码| 日本久久婷| Av九九| 国产99久久久| 超碰人人操在线| 91婷婷伊人牛牛| 五月狠狠| 99在线视频播放| 五月丁香欧美综合| 青青草原亚洲天堂| 国产成人高清| 91成人看片| 97操碰视频| 99色在线视频| 99爱在线免费视频| 激情深愛五月視頻| 天天插综合网| 性天堂久久| 婷婷无码视频| 天天综合 99久久婷婷| 丁香五月成人| 激情综合在线观看| 99精品久久久| 男女免费视频999| 婷婷五月天堂| 亚洲色婷婷| 免费观看18视频网站| 就爱啪啪婷婷| 九九爱精品网站| 激情婷婷啪啪| 欧美精品A片一区在线观看| 这里有精品| 色婷婷久久| 日本久久精品| 婷婷综合五月色播| 九九九九精品精| 成人超碰Av| 国产精品色婷婷久久久精品| 久大香蕉| 狠狠香婷婷五月| 丁香五月花| 婷婷射丁香| 伊人网碰碰| 婷婷伊人五月天| 91精品熟女| 99精品综合在线| 第一区久久网站| 综合九九久久| 综合激情在线视频| 久久婷婷六月| 91 影音先锋| 99乱视频| 91精品啪| 九九RE视频在线精品| 26uuu美女三级视频| 一区二区三区四日本| 久久激情五月天| 久9热视频| 久久综合五月天| 97色五月天| 激情文学 综合 九月| 日韩啪啪视频| 婷婷久久免费看| 99久久欧美| 中文字幕丰满人妻无码专区| AAAA亚洲| 午夜激情四射影院| 五月天天综合| 91九色国产在线| 精品香蕉99久久久久网站| 五月婷婷黄色视频| 四季AV综合网| 日日干夜夜干| se影音资源在线观看| 久久精品4| 亚洲乱码日产精品BD| 色欲婷婷五月天丁香| 日韩久久色| 午夜伊人大香蕉| 丁香大香蕉| 99热精品一区| 欧美久久网| 国产做A爰片毛片A片美国| 激情六月婷婷| 狠狠色综合网| 色涩视频久久| 五月婷亚洲精品AV天堂| 蜜臀九九九九| 丁香花婷婷五月天| 国产精品涩涩涩视频网站| 亚洲综合99| 丁香五月综合久久八| 激情五月瑟瑟| 播播网色播播| 九九热视频这里只有精品| 欧亚洲在线高清视频| 色婷婷小视频| 国产免费一区二区在线A片视频| 色狠久| 性爱先锋AV| 黄色av网站在线免费播放| 九九国产视频| 视频这里只有精品16| av无码电影| 国产成人精品一区二三区熟女在线| 这里只有精品无码| 五月色网| 九月性爱网| 99热只有| 五月丁香色婷婷色| 久久亚洲婷婷| 色噜噜狠狠色综| 2016日日夜夜操| 亚州成人综合在线| 激情综合网激情五月天| 五月婷婷在线免费观看| 5月丁香婷婷| 玖玖综合色| 色五月自偷自拍婷婷婷婷| 在线观看国产高清视频免费网站 | 五月丁香色婷婷综合| 操逼毛片国语对白| 亚洲人操亚洲人| 亚洲色色色| 婷婷伊人综合中文字幕| 色播激情五月天| 99五月丁香丁| 香蕉操亚洲| 丁香五月成人丝袜| 一本色道久久88加勒比| 激情五月婷婷| 九热视频| 久久婷婷五月综合色丁香| 五月丁香天堂网婷婷|