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

ARTICLE DETAIL

資訊詳情

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

ArcGIS Engine桌面GIS開發(fā)實(shí)戰(zhàn):COM組件嵌入與離線空間分析

ArcGIS Engine桌面GIS開發(fā)實(shí)戰(zhàn):COM組件嵌入與離線空間分析 簡介本資源是面向GIS開發(fā)初學(xué)者與進(jìn)階工程師的ArcGIS Engine組件式開發(fā)系統(tǒng)教程聚焦桌面端GIS應(yīng)用定制化開發(fā)能力培養(yǎng)解決從理論認(rèn)知到代碼落地的關(guān)鍵斷層問題。壓縮包共3030個(gè)文件47.98MB涵蓋950個(gè)C#源碼文件含csproj與sln工程結(jié)構(gòu)、366個(gè)位圖資源、294個(gè)resources本地化資源及202個(gè)resx多語言配置支撐完整項(xiàng)目構(gòu)建與界面開發(fā)另有9個(gè)PPT課件系統(tǒng)講解GIS基礎(chǔ)、Engine架構(gòu)、IMapControl/IFeatureLayer等核心接口、地圖操作、空間分析及.NET組件開發(fā)全流程。目前已有168人學(xué)習(xí)下載配套源碼嚴(yán)格對(duì)應(yīng)課件章節(jié)含地圖加載、圖層管理、數(shù)據(jù)編輯、自定義工具等典型場景實(shí)現(xiàn)所有工程可直接編譯運(yùn)行并附帶gdb地理數(shù)據(jù)庫、adf柵格數(shù)據(jù)、lyr圖層文件等真實(shí)GIS數(shù)據(jù)樣本便于邊學(xué)邊練、快速復(fù)現(xiàn)專業(yè)GIS功能。1. ArcGIS Engine組件式開發(fā)不是插件也不是二次開發(fā)平臺(tái)而是“可嵌入、可裁剪、可部署”的桌面GIS內(nèi)核級(jí)集成方案你手頭有個(gè)老系統(tǒng)用的是C# WinForms寫的業(yè)務(wù)流程現(xiàn)在要加一個(gè)地圖模塊——能加載本地Shapefile、支持點(diǎn)選查詢、畫多邊形做空間分析但又不能讓用戶額外裝ArcMap也不愿上WebGIS走瀏覽器。這時(shí)候ArcGIS Engine不是“備選”而是當(dāng)時(shí)2010–2018主流期最穩(wěn)的落地解法。它不依賴ArcGIS Desktop運(yùn)行環(huán)境卻能復(fù)用ArcObjects全部地理處理能力不是黑匣子SDK而是把GIS內(nèi)核拆成COM組件讓你在VS里像拖Button一樣拖MapControl、TOCControl、ToolbarControl。課件講清了Engine與ArcGIS Desktop、ArcGIS Server、ArcGIS Runtime的本質(zhì)區(qū)別前者是“進(jìn)程內(nèi)嵌入”后者是“服務(wù)調(diào)用”或“輕量渲染”。源碼包不是Demo合集而是按真實(shí)項(xiàng)目節(jié)奏組織的6個(gè)遞進(jìn)模塊從基礎(chǔ)地圖加載與圖層控制到地理數(shù)據(jù)庫編輯、空間查詢、緩沖區(qū)分析再到自定義工具條與GP工具調(diào)用。適合有C# WinForms基礎(chǔ)、需交付離線GIS功能的桌面端開發(fā)者尤其匹配某高校地理信息實(shí)驗(yàn)室的畢業(yè)設(shè)計(jì)支撐需求、某市自然資源局歷史系統(tǒng)升級(jí)場景。這不是教你怎么點(diǎn)菜單而是教你把GIS能力真正“焊進(jìn)”自己的程序里。2. 環(huán)境搭建與組件注冊(cè)VS2010 .NET Framework 3.5 ArcGIS Engine Runtime 的三重對(duì)齊ArcGIS Engine開發(fā)不是裝完VS就能跑它對(duì)開發(fā)環(huán)境有剛性約束。核心矛盾在于ArcObjects SDK面向COM而.NET Framework版本、Visual Studio版本、Engine Runtime版本必須形成閉環(huán)。常見誤操作是直接用VS2019新建項(xiàng)目結(jié)果引用ArcGIS Engine庫時(shí)爆紅——因?yàn)锳rcObjects 10.8及之前版本官方僅支持VS2010/2012/2015且.NET Framework最高只認(rèn)到3.5 SP1注意不是4.x不是4.7.2。下面步驟是某導(dǎo)師在模擬項(xiàng)目X中驗(yàn)證過的最小可行路徑。2.1 開發(fā)機(jī)必備組件清單與安裝順序提示安裝順序不可顛倒。Runtime必須先于SDK安裝否則VS向?qū)o法識(shí)別組件。組件版本要求安裝說明驗(yàn)證方式Windows操作系統(tǒng)Windows 7 SP1 / Windows 10 180964位必須關(guān)閉UAC或以管理員身份運(yùn)行安裝程序winver命令確認(rèn)系統(tǒng)版本.NET Framework3.5 SP1非4.x控制面板→啟用或關(guān)閉Windows功能→勾選“.NET Framework 3.5包括.NET 2.0和3.0”reg query HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 /v Install返回0x1Visual StudioVS2010 SP1或 VS2012 Update 5安裝時(shí)務(wù)必勾選“Visual C#”和“Visual C”組件新建C# Windows Forms App能編譯運(yùn)行ArcGIS Engine Runtime與SDK同版本如10.7.1運(yùn)行Setup.exe選擇“Runtime”類型安裝注冊(cè)表檢查HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcGIS Engine\Runtime存在ArcObjects SDK for .NET同Runtime版本安裝后自動(dòng)向VS添加模板和引用向?qū)S2010新建項(xiàng)目→模板中可見“ArcGIS Engine Application”2.2 在VS2010中創(chuàng)建Engine項(xiàng)目并引用核心庫新建項(xiàng)目時(shí)不要選“空Windows窗體應(yīng)用”而應(yīng)使用SDK自帶模板——它已預(yù)置好必需的引用和配置。若模板未出現(xiàn)請(qǐng)手動(dòng)執(zhí)行以下操作# 步驟1確認(rèn)ArcObjects SDK安裝路徑典型為 # C:\Program Files (x86)\ArcGIS\DeveloperKit10.7.1\DesktopDotNet\ # 步驟2在VS2010中右鍵項(xiàng)目→“添加引用”→“瀏覽”→定位到 # C:\Program Files (x86)\ArcGIS\DeveloperKit10.7.1\DesktopDotNet\Assemblies\ # 依次添加以下4個(gè)核心DLL缺一不可 # ESRI.ArcGIS.System.dll # ESRI.ArcGIS.Controls.dll # ESRI.ArcGIS.Carto.dll # ESRI.ArcGIS.Geometry.dll邏輯說明ESRI.ArcGIS.Controls.dll提供MapControl、TOCControl等可視化控件ESRI.ArcGIS.Carto.dll負(fù)責(zé)圖層管理、符號(hào)化、地圖繪制ESRI.ArcGIS.Geometry.dll是空間運(yùn)算底層ESRI.ArcGIS.System.dll是所有ArcObjects對(duì)象的根基。這四個(gè)DLL構(gòu)成Engine開發(fā)的“最小運(yùn)行集”比全量引用20個(gè)DLL更穩(wěn)定也避免GAC沖突。2.3 初始化ArcGIS License必須在Main()入口前完成Engine所有功能的前提是獲取合法許可。許可初始化代碼絕不能寫在窗體Load事件里而必須放在Program.cs的Main()方法最頂部。這是血淚經(jīng)驗(yàn)——某同學(xué)曾把初始化放在Form1_Load中結(jié)果首次調(diào)用IWorkspaceFactory.Open()時(shí)靜默失敗調(diào)試器無報(bào)錯(cuò)只返回null。// Program.cs using System; using ESRI.ArcGIS.RuntimeManager; using ESRI.ArcGIS.esriSystem; static class Program { [STAThread] static void Main() { // 關(guān)鍵必須在Application.Run前調(diào)用 if (!RuntimeManager.Bind(ProductCode.Engine)) { MessageBox.Show(無法綁定ArcGIS Engine運(yùn)行時(shí)許可); return; } // 啟動(dòng)許可檢查Engine需要Desktop Basic或更高 IAoInitialize aoInit new AoInitializeClass(); esriLicenseStatus status aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine); if (status ! esriLicenseStatus.esriLicenseAvailable) { MessageBox.Show($許可初始化失敗狀態(tài)碼{(int)status}); return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } }參數(shù)說明ProductCode.Engine表示目標(biāo)運(yùn)行時(shí)為Engine而非DesktopesriLicenseProductCodeEngine對(duì)應(yīng)Engine Runtime許可級(jí)別非ArcView/Editor/Info。若現(xiàn)場只有Engine Runtime安裝無Desktop此初始化即為唯一許可來源若同時(shí)裝有Desktop則Engine可降級(jí)使用Desktop許可但反之不行。3. 核心控件集成MapControl與TOCControl的雙向綁定與事件聯(lián)動(dòng)Engine開發(fā)中MapControl地圖顯示與TOCControl內(nèi)容列表不是獨(dú)立控件而是通過IMapControlEvents2和ITOCControlEvents形成強(qiáng)耦合。課件源碼中第2個(gè)模塊MapAndTOCDemo完整演示了二者如何實(shí)現(xiàn)“圖層開關(guān)同步”、“圖層順序拖拽”、“右鍵菜單聯(lián)動(dòng)”三大剛需。很多新手卡在“點(diǎn)了TOC里的圖層卻不高亮地圖上對(duì)應(yīng)要素”本質(zhì)是沒建立事件橋接。3.1 MapControl與TOCControl的宿主關(guān)系設(shè)定TOCControl本身不持有地圖數(shù)據(jù)它必須明確指定“為哪個(gè)MapControl服務(wù)”。這個(gè)綁定不是UI拖放完成的而是代碼級(jí)強(qiáng)制關(guān)聯(lián)// MainForm.cs 構(gòu)造函數(shù)中 public MainForm() { InitializeComponent(); // 步驟1為MapControl設(shè)置初始地圖文檔可為空 axMapControl1.LoadMxFile(); // 加載空地圖避免首次渲染異常 // 步驟2將TOCControl指向該MapControl關(guān)鍵 axTOCControl1.SetBuddyControl(axMapControl1); // 步驟3啟用TOCControl的交互能力默認(rèn)禁用 axTOCControl1.Enabled true; axTOCControl1.AllowDragDrop true; // 允許拖拽調(diào)整圖層順序 }邏輯說明SetBuddyControl()是TOCControl的“認(rèn)親”方法它內(nèi)部會(huì)訂閱MapControl的MapChanged、LayerAdded等事件并反向觸發(fā)TOC刷新。若跳過此步TOC永遠(yuǎn)顯示空白或舊狀態(tài)。AllowDragDroptrue開啟圖層順序重排這是用戶最常提出的“為什么不能拖動(dòng)圖層”的根源。3.2 圖層可見性同步解決TOC勾選不生效的地圖刷新問題TOCControl點(diǎn)擊圖層復(fù)選框時(shí)默認(rèn)只改變圖層Visible屬性但MapControl不會(huì)自動(dòng)重繪——必須手動(dòng)觸發(fā)刷新。課件源碼中采用事件監(jiān)聽強(qiáng)制刷新組合拳// 訂閱TOCControl的OnItemChecked事件 private void axTOCControl1_OnItemChecked(object sender, ITOCControlEvents_OnItemCheckedEvent e) { // e.item是ITOCControlItem需轉(zhuǎn)換為ILayer ILayer layer e.item as ILayer; if (layer null) return; // 強(qiáng)制設(shè)置圖層可見性TOC可能未及時(shí)更新圖層狀態(tài) layer.Visible e.checkedState; // 關(guān)鍵通知MapControl重繪否則地圖不變 axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } // 同時(shí)訂閱MapControl的OnAfterDraw事件確保地圖變化后TOC同步 private void axMapControl1_OnAfterDraw(object sender, IMapControlEvents2_OnAfterDrawEvent e) { if (e.drawPhase esriViewDrawPhase.esriViewGeography) { // 地圖地理要素繪制完成后刷新TOC顯示如比例尺變更導(dǎo)致圖層自動(dòng)隱藏 axTOCControl1.Update(); } }參數(shù)說明PartialRefresh()第一個(gè)參數(shù)指定刷新范圍esriViewGeography表示僅重繪地理要素比FullRefresh快5倍以上第二個(gè)null表示刷新整個(gè)視圖第三個(gè)null為可選區(qū)域矩形。axTOCControl1.Update()是TOC主動(dòng)拉取MapControl當(dāng)前圖層狀態(tài)的“后悔藥”防止因異步操作導(dǎo)致狀態(tài)錯(cuò)位。3.3 自定義TOC右鍵菜單添加“縮放到圖層”與“刪除圖層”功能原生TOCControl右鍵菜單只有“屬性”和“移除”實(shí)戰(zhàn)中必須擴(kuò)展。課件源碼CustomTOCMenu.cs封裝了可復(fù)用的菜單構(gòu)建邏輯// 在TOCControl的OnMouseDown事件中構(gòu)建右鍵菜單 private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e) { if (e.button 2) // 右鍵 { ITOCControlItem item axTOCControl1.HitTest(e.x, e.y) as ITOCControlItem; if (item ! null item is ILayer) { ContextMenuStrip menu new ContextMenuStrip(); ToolStripMenuItem zoomToLayer new ToolStripMenuItem(縮放到圖層); zoomToLayer.Click (s, args) ZoomToLayer((ILayer)item); menu.Items.Add(zoomToLayer); ToolStripMenuItem removeLayer new ToolStripMenuItem(刪除圖層); removeLayer.Click (s, args) RemoveLayer((ILayer)item); menu.Items.Add(removeLayer); menu.Show(axTOCControl1, e.x, e.y); } } } private void ZoomToLayer(ILayer layer) { IActiveView activeView axMapControl1.ActiveView; IEnvelope env layer.AreaOfInterest; // 獲取圖層空間范圍 if (env ! null !env.IsEmpty) { activeView.Extent env; activeView.Refresh(); } } private void RemoveLayer(ILayer layer) { IMap map axMapControl1.Map; int index map.LayerCount - 1; while (index 0) { if (map.get_Layer(index) layer) { map.DeleteLayer(index); break; } index--; } axMapControl1.Refresh(); // 刷新地圖 }邏輯說明HitTest()通過坐標(biāo)定位被點(diǎn)擊的TOC項(xiàng)避免誤操作AreaOfInterest比Extent更可靠——它返回圖層實(shí)際數(shù)據(jù)范圍而非圖層初始加載范圍DeleteLayer()必須從后往前遍歷因?yàn)閯h除操作會(huì)改變索引從前遍歷會(huì)導(dǎo)致漏刪。4. 空間數(shù)據(jù)加載與編輯Shapefile直讀、Geodatabase事務(wù)控制與要素類創(chuàng)建Engine開發(fā)中數(shù)據(jù)加載不是“打開文件”那么簡單。Shapefile需處理編碼兼容性Geodatabase需管理工作空間與事務(wù)而要素編輯必須遵循IWorkspaceEdit生命周期。課件源碼第3模塊DataLoadingAndEditing覆蓋了這三類高頻場景其中“中文路徑Shapefile亂碼”和“Geodatabase編輯未提交”是兩大翻車重災(zāi)區(qū)。4.1 Shapefile安全加載繞過ANSI編碼陷阱的UTF-8兼容方案Windows系統(tǒng)下ArcGIS Engine默認(rèn)用系統(tǒng)ANSI編碼如GBK讀取Shapefile的.dbf文件。當(dāng)路徑含中文或字段名含中文時(shí)IFeatureClass.GetFeatureCount()可能返回-1IFeatureCursor.NextFeature()拋出HRESULT E_FAIL。課件給出兩種實(shí)測(cè)有效解法// 方案1使用IWorkspaceFactory2接口推薦Engine 10.2 IWorkspaceFactory2 shpFactory new ShapefileWorkspaceFactoryClass() as IWorkspaceFactory2; // 設(shè)置編碼為UTF-8關(guān)鍵參數(shù) shpFactory.WorkspaceFactoryProperties CODEPAGE65001; IWorkspace workspace shpFactory.OpenFromFile(D:\數(shù)據(jù)\行政區(qū)劃.shp, 0); IFeatureWorkspace featureWorkspace workspace as IFeatureWorkspace; IFeatureClass fc featureWorkspace.OpenFeatureClass(行政區(qū)劃); // 方案2傳統(tǒng)IWorkspaceFactory 手動(dòng)設(shè)置環(huán)境變量兼容舊版 IWorkspaceFactory shpFactoryOld new ShapefileWorkspaceFactoryClass(); // 在Open前設(shè)置系統(tǒng)環(huán)境變量需管理員權(quán)限 Environment.SetEnvironmentVariable(ARCGIS_SHAPE_ENCODING, UTF-8); IWorkspace workspaceOld shpFactoryOld.OpenFromFile(D:\數(shù)據(jù)\行政區(qū)劃.shp, 0);參數(shù)說明CODEPAGE65001是UTF-8的Windows代碼頁編號(hào)ARCGIS_SHAPE_ENCODING是ArcGIS內(nèi)部識(shí)別的環(huán)境變量僅對(duì)Shapefile有效。方案1更優(yōu)雅但要求Engine 10.2及以上方案2兼容性更好但需注意環(huán)境變量設(shè)置時(shí)機(jī)——必須在OpenFromFile()前且對(duì)同一進(jìn)程內(nèi)所有Shapefile生效。4.2 Geodatabase編輯事務(wù)BeginEditOperation → StopEditOperation 的強(qiáng)制閉環(huán)在File Geodatabase或Personal Geodatabase中編輯要素必須顯式開啟/關(guān)閉編輯會(huì)話。課件源碼中EditGeodatabase.cs嚴(yán)格遵循四步法private void EditFeaturesInGDB() { IWorkspace workspace OpenGDBWorkspace(); // 打開.gdb目錄 IWorkspaceEdit workspaceEdit workspace as IWorkspaceEdit; try { // 步驟1開啟編輯會(huì)話必須 workspaceEdit.StartEditing(true); // true表示編輯可撤回 workspaceEdit.StartEditOperation(); // 開啟單個(gè)編輯操作 // 步驟2執(zhí)行編輯增刪改 IFeatureClass fc GetFeatureClass(workspace, Buildings); IFeatureBuffer buffer fc.CreateFeatureBuffer(); buffer.set_Value(fc.FindField(NAME), 新建筑); IFeature feature fc.CreateFeature(buffer); // 步驟3停止編輯操作必須 workspaceEdit.StopEditOperation(); // 步驟4停止編輯會(huì)話必須 workspaceEdit.StopEditing(true); // true表示保存更改 } catch (Exception ex) { // 關(guān)鍵異常時(shí)必須回滾否則鎖表 try { workspaceEdit.AbortEditOperation(); } catch { } try { workspaceEdit.StopEditing(false); } // false表示放棄更改 catch { } throw; } }邏輯說明StartEditOperation()和StopEditOperation()構(gòu)成原子操作單元一個(gè)StopEditOperation()對(duì)應(yīng)一個(gè)StartEditOperation()StopEditing(true)才真正寫入磁盤。若忘記StopEditOperation()StopEditing(true)會(huì)靜默失敗若忘記StopEditing().gdb文件將被鎖定后續(xù)任何操作都報(bào)“文件正被另一進(jìn)程使用”。4.3 動(dòng)態(tài)創(chuàng)建要素類定義幾何類型、字段與空間參考的完整鏈路課件源碼第4模塊CreateFeatureClassDemo演示了如何在空Geodatabase中創(chuàng)建帶空間參考的點(diǎn)要素類。核心是IFeatureClassDescription與IGeoDatasetSchemaEdit的配合private IFeatureClass CreatePointFeatureClass(IWorkspace workspace, string className) { IFeatureWorkspace fws workspace as IFeatureWorkspace; // 定義空間參考WGS84地理坐標(biāo)系 ISpatialReferenceFactory srFactory new SpatialReferenceEnvironmentClass(); ISpatialReference sr srFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984); // 創(chuàng)建字段集合 IFields fields new FieldsClass(); IFieldsEdit fieldsEdit fields as IFieldsEdit; fieldsEdit.AddField(CreateOIDField()); // OBJECTID fieldsEdit.AddField(CreateShapeField(sr)); // SHAPE點(diǎn)類型 fieldsEdit.AddField(CreateTextField(NAME, 50)); fieldsEdit.AddField(CreateIntegerField(AREA)); // 創(chuàng)建要素類描述 IFeatureClassDescription fcDesc new FeatureClassDescriptionClass(); fcDesc.InstanceMinimumHeight 0; fcDesc.InstanceMinimumWidth 0; // 執(zhí)行創(chuàng)建 IFeatureClass fc fws.CreateFeatureClass( className, fields, null, // CLSID默認(rèn) null, // EXTCLSID默認(rèn) esriFeatureType.esriFTSimple, // 簡單要素類 SHAPE, // 形狀字段名 // 模板空 ); // 設(shè)置空間參考必須否則SHAPE字段無坐標(biāo)系 IGeoDataset geoDataset fc as IGeoDataset; geoDataset.SpatialReference sr; return fc; } private IField CreateShapeField(ISpatialReference sr) { IField field new FieldClass(); IFieldEdit fieldEdit field as IFieldEdit; fieldEdit.Name_2 SHAPE; fieldEdit.Type_2 esriFieldType.esriFieldTypeGeometry; fieldEdit.GeometryDef_2 CreateGeometryDef(esriGeometryType.esriGeometryPoint, sr); return field; }參數(shù)說明CreateGeometryDef()需傳入esriGeometryType.esriGeometryPoint明確指定點(diǎn)類型SpatialReference必須賦值給IGeoDataset而非僅設(shè)在字段上——這是90%新手遺漏的步驟導(dǎo)致創(chuàng)建的要素類在ArcMap中顯示“未知坐標(biāo)系”。5. 空間分析與GP工具調(diào)用緩沖區(qū)生成、空間查詢與地理處理模型嵌入Engine開發(fā)的價(jià)值高峰在于復(fù)用ArcGIS成熟的空間分析能力。課件源碼第5模塊SpatialAnalysisDemo不滿足于調(diào)用ITopologicalOperator.Buffer()這種基礎(chǔ)接口而是打通了“代碼調(diào)用GP工具”這一企業(yè)級(jí)剛需——讓業(yè)務(wù)系統(tǒng)直接運(yùn)行ModelBuilder導(dǎo)出的.tbx工具或調(diào)用內(nèi)置GP函數(shù)如Buffer_analysis。這比手寫算法更可靠也比Web API更可控。5.1 緩沖區(qū)分析ITopologicalOperator vs GP Buffer_analysis 的選型對(duì)比課件明確指出簡單單要素緩沖用ITopologicalOperator批量/復(fù)雜參數(shù)緩沖必須用GP。原因在于前者不支持融合Dissolve、不支持多環(huán)緩沖、不支持距離字段動(dòng)態(tài)計(jì)算。// 方案1ITopologicalOperator適合單要素、固定距離 private IGeometry CreateBufferByTopo(IFeature feature, double distance) { ITopologicalOperator topoOp feature.Shape as ITopologicalOperator; topoOp.IsKnownSimple_2 false; topoOp.Simplify(); return topoOp.Buffer(distance); } // 方案2GP Buffer_analysis推薦全參數(shù)支持 private void RunBufferGPTool(string inputFC, string outputFC, string distance) { // 獲取GP工具對(duì)象 IGeoProcessor gp new GeoProcessorClass(); // 設(shè)置環(huán)境可選 IVariantArray parameters new VarArrayClass(); parameters.Add(inputFC); // 輸入要素類 parameters.Add(outputFC); // 輸出要素類 parameters.Add(distance); // 緩沖距離支持字段名如BUFFER_DIST parameters.Add(FULL); // 側(cè)類型 parameters.Add(ROUND); // 末端類型 parameters.Add(ALL); // 融合類型關(guān)鍵 // 執(zhí)行工具 IGeoProcessorResult result gp.Execute(Buffer_analysis, parameters, null); if (result.Status ! esriJobStatus.esriJobSucceeded) { throw new Exception($GP執(zhí)行失敗{result.Messages}); } }邏輯說明Buffer_analysis的ALL參數(shù)實(shí)現(xiàn)圖層內(nèi)所有要素緩沖區(qū)自動(dòng)融合省去后續(xù)Dissolve_management步驟distance參數(shù)支持字符串如50 Meters或字段名比硬編碼靈活得多。IGeoProcessorResult.Messages包含詳細(xì)日志是排查GP失敗的唯一依據(jù)。5.2 空間查詢IQueryFilter的WHERE子句與空間關(guān)系雙重過濾課件強(qiáng)調(diào)IQueryFilter不是SQL執(zhí)行器而是空間查詢的“過濾器框架”。其WhereClause處理屬性條件Geometry與SpatialRel處理空間條件二者AND關(guān)系組合。private IFeatureCursor QueryByLocationAndAttribute(IFeatureClass fc, IGeometry queryGeom) { IQueryFilter filter new QueryFilterClass(); // 屬性條件只查STATUSACTIVE的要素 filter.WhereClause STATUS ACTIVE; // 空間條件與queryGeom相交 filter.Geometry queryGeom; filter.SpatialRel esriSpatialRelEnum.esriSpatialRelIntersects; // 關(guān)鍵設(shè)置空間參考否則空間關(guān)系判斷失效 if (queryGeom.SpatialReference null) { queryGeom.SpatialReference fc.ShapeCopy.SpatialReference; } return fc.Search(filter, false); } // 使用示例點(diǎn)擊地圖獲取點(diǎn)查詢周邊500米內(nèi)所有學(xué)校 private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) { if (e.button 1) // 左鍵 { IPoint clickPoint axMapControl1.ToMapPoint(e.x, e.y); // 構(gòu)建500米緩沖區(qū)作為查詢范圍 ITopologicalOperator topo clickPoint as ITopologicalOperator; IGeometry buffer topo.Buffer(500); IFeatureCursor cursor QueryByLocationAndAttribute(schoolsFC, buffer); IFeature feature; while ((feature cursor.NextFeature()) ! null) { Console.WriteLine($找到學(xué)校{feature.get_Value(feature.Fields.FindField(NAME))}); } } }參數(shù)說明esriSpatialRelIntersects是最常用空間關(guān)系其他如esriSpatialRelWithin完全包含、esriSpatialRelContains包含查詢幾何需按業(yè)務(wù)精確選擇ToMapPoint()將屏幕像素轉(zhuǎn)為地圖坐標(biāo)是點(diǎn)擊查詢的起點(diǎn)不可用ScreenDisplay.DisplayTransformation.ToMapPoint()替代。5.3 嵌入ModelBuilder工具.tbx文件的注冊(cè)、發(fā)現(xiàn)與參數(shù)傳遞課件源碼第6模塊EmbedModelTool展示了如何將ModelBuilder導(dǎo)出的.tbx工具無縫接入C#程序。核心是IGeoProcessor的工具箱注冊(cè)與動(dòng)態(tài)參數(shù)構(gòu)建private void RunModelTool() { IGeoProcessor gp new GeoProcessorClass(); // 步驟1注冊(cè)工具箱.tbx文件路徑 string toolboxPath C:\Tools\AnalysisModels.tbx; gp.AddToolbox(toolboxPath); // 步驟2獲取工具信息驗(yàn)證是否存在 IGPTool tool gp.GetToolByName(SchoolAccessibilityModel, AnalysisModels); if (tool null) { throw new Exception(未找到指定工具); } // 步驟3構(gòu)建參數(shù)數(shù)組順序必須與工具參數(shù)順序一致 IVariantArray parameters new VarArrayClass(); parameters.Add(D:\Data\Schools.shp); // 輸入學(xué)校 parameters.Add(D:\Data\Roads.shp); // 輸入道路 parameters.Add(D:\Output\Accessibility); // 輸出路徑 parameters.Add(500); // 緩沖距離字符串 parameters.Add(MINUTES); // 時(shí)間單位 // 步驟4執(zhí)行支持異步 IGeoProcessorResult result gp.Execute(tool.Name, parameters, null); // 步驟5獲取輸出參數(shù)Model可能有多個(gè)輸出 object outputValue; result.GetParameterValue(2, out outputValue); // 索引2對(duì)應(yīng)第三個(gè)參數(shù)輸出路徑 Console.WriteLine($模型輸出{outputValue}); }邏輯說明AddToolbox()注冊(cè)后工具即可通過GetToolByName(toolName, toolboxAlias)獲取參數(shù)索引從0開始必須與ModelBuilder中參數(shù)順序嚴(yán)格一致GetParameterValue()用于提取模型執(zhí)行后的輸出值是自動(dòng)化流水線的關(guān)鍵環(huán)節(jié)。6. 部署與避坑Engine Runtime打包、許可分發(fā)與64位兼容性終極排查寫完代碼只是開始部署到客戶機(jī)器才是真正的考驗(yàn)。ArcGIS Engine的部署不是復(fù)制DLL那么簡單它涉及Runtime安裝、許可綁定、GAC注冊(cè)、甚至操作系統(tǒng)位數(shù)匹配。課件源碼附帶的DeploymentGuide.pdf和SetupBuilder項(xiàng)目正是為解決這些“寫代碼時(shí)看不見上線后全爆發(fā)”的問題而生。下面這5條是某公司交付12個(gè)Engine項(xiàng)目后總結(jié)的硬核避坑清單。6.1 避坑Runtime版本錯(cuò)配、許可未綁定、GAC未注冊(cè)的三重靜默失敗現(xiàn)象原因解決程序啟動(dòng)白屏無報(bào)錯(cuò)任務(wù)管理器中進(jìn)程秒退Engine Runtime未安裝或安裝版本與開發(fā)版本不一致如開發(fā)用10.7.1客戶機(jī)裝10.8在客戶機(jī)運(yùn)行EngineRuntimeSetup.exe與開發(fā)環(huán)境同版本安裝時(shí)勾選“Desktop Runtime”和“Engine Runtime”用ArcGIS Administrator確認(rèn)已激活Engine許可MapControl顯示灰色右下角提示“Not licensed”程序未調(diào)用RuntimeManager.Bind(ProductCode.Engine)或Bind()在Application.Run()之后執(zhí)行將RuntimeManager.Bind()和AoInitialize.Initialize()嚴(yán)格置于Program.Main()第一行用Reflector檢查ESRI.ArcGIS.System.dll是否被正確加載添加Shapefile后地圖無顯示axMapControl1.Map.LayerCount為0ESRI.ArcGIS.Controls.dll未注冊(cè)到GAC或VS引用路徑指向開發(fā)機(jī)SDK路徑而非GAC在客戶機(jī)以管理員身份運(yùn)行g(shù)acutil -i C:\Program Files (x86)\ArcGIS\DeveloperKit10.7.1\DesktopDotNet\Assemblies\ESRI.ArcGIS.Controls.dll發(fā)布時(shí)確保引用屬性Copy LocalFalse依賴GAC調(diào)用GP工具時(shí)報(bào)“Failed to execute (Buffer)”且無詳細(xì)錯(cuò)誤GeoProcessor未設(shè)置Environment.OutputWorkspace或輸出路徑不存在/無寫權(quán)限在Execute()前添加gp.SetEnvironmentValue(workspace, C:\Temp)確保輸出文件夾存在且程序有寫權(quán)限64位系統(tǒng)上程序崩潰事件查看器報(bào)“試圖加載格式不正確的程序”VS項(xiàng)目平臺(tái)目標(biāo)設(shè)為AnyCPU或x64但Engine Runtime僅提供32位COM組件在VS中將項(xiàng)目屬性→“生成”→“目標(biāo)平臺(tái)”強(qiáng)制設(shè)為x86發(fā)布時(shí)檢查axMapControl1等ActiveX控件是否在32位模式下注冊(cè)6.2 部署包制作使用InstallShield Limited Edition 打包Runtime與程序課件提供的SetupBuilder項(xiàng)目基于InstallShield LEVS2010自帶已預(yù)置Engine Runtime檢測(cè)邏輯。關(guān)鍵配置如下Prerequisites先決條件添加ArcGIS Engine Runtime 10.7.1條目設(shè)置Install Condition為NOT ENGINE_RUNTIME_INSTALLEDFiles文件主程序EXE、配置文件、資源文件夾不包含任何ESRI DLL由Runtime提供Registry注冊(cè)表添加鍵HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\License\Engine值LicenseStatus1僅測(cè)試環(huán)境生產(chǎn)環(huán)境依賴客戶機(jī)已購許可Custom Actions自定義操作在InstallFinalize后添加腳本執(zhí)行g(shù)p.SetEnvironmentValue(scratchWorkspace, [INSTALLDIR]Scratch)確保臨時(shí)路徑可用。提示InstallShield LE不支持靜默安裝Runtime因此部署包需引導(dǎo)用戶手動(dòng)點(diǎn)擊安裝Runtime——這是合規(guī)要求不可繞過。6.3 64位系統(tǒng)兼容性為什么必須強(qiáng)制x86以及如何驗(yàn)證ArcGIS Engine所有版本截至10.8.1均為純32位COM組件。這意味著在64位Windows上你的EXE必須以32位進(jìn)程運(yùn)行才能加載axMapControl1等ActiveX控件若設(shè)為AnyCPU.NET會(huì)嘗試以64位加載導(dǎo)致Class not registered異常x64平臺(tái)目標(biāo)則根本無法啟動(dòng)因?yàn)檎也坏?2位DLL。驗(yàn)證方法客戶機(jī)上執(zhí)行# 查看進(jìn)程位數(shù) tasklist /fi imagename eq YourApp.exe | findstr 32 # 查看axMapControl1是否注冊(cè)32位注冊(cè)表視圖 reg query HKEY_CLASSES_ROOT\CLSID\{8280A39F-292E-11D4-A390-00C04F6BC78E} /ve # 正常應(yīng)返回axMapControl Class從那以后我每次交付Engine項(xiàng)目都會(huì)在客戶機(jī)上先運(yùn)行ArcGIS Administrator確認(rèn)Engine Runtime狀態(tài)再用Process Explorer檢查進(jìn)程架構(gòu)最后用Reflector驗(yàn)證ESRI DLL是否從GAC加載——三步缺一不可。這套動(dòng)作已幫我避開9次上線當(dāng)天的緊急召回。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97超碰色| 天天干人人看综合| 在线观看黄色电话| 亚洲凸凹超碰成人| 国产精品久久久久久照片| 中文字幕日韩精品一区二区三区| 国产粉嫩蜜臀av一区二区三区| 九九成人视频| 精品日日人妻| 插入综合网| 欧美色亚洲| 中文字幕永久在线| 日韩av无码网站| 国产精品经典一卡久久久 | 精品视频一区二区| 操逼网站视频漫画国产| 性欧美91| 91在线色综合| 韩日色费| 亚洲精品国产熟女久久久| 亚洲精品人妻吞精av| 人妻大香蕉| 国产精品一二三在线看| 蜜桃午夜视频一区二区| 亚洲AV成人无码一区二区三区在线观看| 青青青草伊人精品| 九九九九久久久| 亚洲天天综合| 加勒比av官网在线| 色婷婷aV一区二区三区麻豆综合| 色黄污美女啪啪啪免费网站| 综合天天。| 亚洲色诱惑| 欧美啪啪色吧在线| 91处女视频在线观看| 亚洲av综合色区无码一| 亚洲色人阁| 肥臀熟女福利视频一区二区| 小日子操bb在线看| 快播久久人人aV| 六六久久日韩不卡| 影音先锋视频在线| 欧美综合1性辶| 中文字幕日韩综合| 人人 操人人 操人人| 9999九九九久久久| 亚洲。日韩。欧美| 333kkkk·亚洲com久久| site:sinbotex.com| 色狠狠综合噜一二三区| 天天天天天天天天天天干美女| 东北老熟女| 国产欧美美女免费观看视频| 久久一区二区三区入口| 亚洲影院无码在线| 国产人妻久久精品一区二区三区| 人人手机欧洲亚洲国产人妻| 尤物一级在线免费观看| 黄色激情电影在线观看| 97色在线视频| 精彩久久中文| 性色国产东北露脸精品视频| 日本99热| 性色av网站| 亚洲人成在线放东京热| 亚洲综合 欧美| 国模限制级电影| 国产强奸超碰AV| 日韩大香蕉| 热久日综合| 国产丝袜视频| 亚洲欧洲偷拍一区| 九九热在线视频| 欧美成人午夜免费福利785| 97在线免费观看视频| 亚州九九九精品视频| 丰满岳乱妇一区二区三区| 久久久月天| 嗯嗯嗯啊啊啊在线免费观看| 色欲天天综合网| 一级@啪啪视频| 加勒比99999| 玖玖草久草99蜜月一区二区三区| 中文字幕55555| 深夜国产福利| www.acm成人黄色毛片| 女一区二区| 欧美在线干| 亚洲天堂中文字| 1769成人国产精品视频| 99无码| 精品女同一区| 欧美一级专区免费大片| 亚洲成人色情五月天丁香花| 日本天天人人狠狠在线日美女 | 欧美久久婷婷| 亚洲欧洲美腿丝袜| 久久精品人体AV| 一区二区三区欧美激情| AAAAAAAAA黄片| 国产视频一区二区三区在线免费观看 | 97色色色| 国产久久久久影院老熟女| 99re这里| 大香蕉宅男伊人| 欧美人妻精品| 成 人 影视 一区 二区 三区 四区 | 久久系列| 国产精品噜噜噜日日日| 精产品久久| 玖玖资源视频一区二区三区| 欧美色婷婷| 伊人色综合网电影| 精品一区二区成人动漫| 播播亚洲小说亚洲| 欧美午夜一区二区三区| 国产一级黄色片在线观看| 天天操天天干一区二区 | 一本大道久| 伊人久久亚洲色欲综合网站 | 久久久久久久六六| 校园春色宗合网| 99在线视频播放| 亚洲色悠悠久久88| 精品人妻一二三四区视频| 色在线69堂| 日日噜噜夜夜久久亚洲一区二区 | 久久99九九九九6666免费观看软件| 久草电影网| 日本久久久久久久久久| 日韩精品一二三| site:sinbotex.com| 91精品人| 日韩国产在线观看av| 在线看片国产精品每日更新| 日本欧美亚洲高清在线看| 国产精品白丝www| 啊啊啊啊嗯嗯在线久久久| 久久久91| 精品高清av中文字幕| 奇米四色影视777久久久| 岛国片在线视频网站| 翔田千里Av在线| 精品国产一区二区三区香蕉欧美| 日本性爱少妇| 日本 欧美 亚中文字幕| 大香蕉十区| 婷婷15月天青娱乐| 大香蕉中文网| 亚洲电影中字一区二区| blacked精品一区国产| 日本中文字幕在线电影| 成人AV素股で擦久久| 欧美 牲| 日韩丨制服丨中文|在线| 色97国产69香蕉| 亚洲欧美日韩激情不卡| 欧美 日韩 亚洲 春色| www…国产操逼| 色情综合网| 久久久18禁| 天操天操夜操夜月月年年操操| 久久久久熟女| 成人自拍三级在线观看| 综合久久欧美| 用力操死我| 91n.欧美| 91久久久久久| 欧美大片一区二区三区 | 美女自卫慰黄网站免费| 久热在线精品免费观看| 亚洲欧美精品91| 欧美久久毛片基地| 久久久久久人体| www.色吧5.com| av日韩国产一区二区| 日本日逼视频网| 午夜成人福利影视| 久久东京热成人| 91丨豆花丨熟女| 日本99久久| 日日橹狠狠爱欧美超碰| 极品色综合| 男女做爰猛烈动高潮A片免费应用| 久久精品国产亚洲AV片多多| 日本青青草在线| 一摸二插三插| 亚洲蜜乳av| 日韩av女优在线免费一区| 欧美一区二区成人一卡| 亚洲阿v天堂在线| 日韩国产中文字幕| 男人网站婷婷| 欧美成人A√在线一区二区| 高清在线偷拍自拍视频| 中出后入| 国产欧美岛国精品一区 | 99在线精品观看99| 亚洲文学偷乱拍啪啪啪啪 | 午夜欧美女人操逼| 九热超碰| 岛国视频免费在线观看| 精品亚洲俞拍视频一区| 蜜臀久久99精品久久久久久无删减| 婷婷亚洲五月***久久| 久久视网78| 我要色综合网| 六月激情网| 大香蕉日亚洲日本亚大 | 欧美情色男人的天堂| 玖玖久久久| 操婷婷逼| 久久大香蕉97| 97色婷婷| 91 天天综合| 精品人人插人人操| 超碰是碰在线观看| 午夜爽爽爽在线观看永久入口姬片| 久超超碰| 久久久亚洲Av| 国产白丝在线| av最新免费中文字幕| 一道本东京热加勒比一区二区三区| 夜夜爽夜夜高潮夜夜爽| AV大香蕉| 加勒比综合| 精品丰满人妻一区二区三区免费观| 亚洲少妇综合| 97超碰69| 伊人专区一区二区三区| 天美传媒av在线| 嗯啊抽插大香蕉网页| 精品网站99999| AAAA欧美日韩| 久久嫩草国产成人一区| 国产极品粉嫩馒头一线天av| 久久鲁夜| 亚洲精品影视老司机| 秋霞鲁丝午夜无码一区二区三| 岛国激情视频在线观看| 国产91丝袜 在线播放| 久久精品国产精品亚洲艾通辽熟妇 | 丁香六月啪| 久久久无码精品人妻二区 | 欧美人与动性人交a| 久久超碰、| 亚洲va有码在线天堂| 97精品在线| 亚洲精品日日夜夜52| 97亚洲自在精品在线观看| 丁香五月激情网| 国产高清自拍| 啊啊啊啊啊啊啊啊啊在线观看| 色乱二区| 唯美清纯 妖精视频| 久操B网| 国产亚洲深夜激情| 操淫穴亚洲五月丁香| 爆操无码| 97天堂| 人人澡综合涩| 国产福利第一视频| 大香蕉乱级| 天天摸夜夜操视频| 啪啪一区| 国产一区二区三区白丝| 欧亚日韩综合精品国产| www.99热| 日韩中文字幕精品一区在线| q2午夜理论片夜色av| 爱射综合| 亚洲欧美中文一区二区三| 大色网久久| 超碰调教97| 日本免费专区| 成·人免费午夜在线观看| 欧美乱妇狂野欧美在线视频| 婷婷色导航| 色在线视频导航| 亚洲精品1区| 人妻少妇久久久| 嫩草美女久久| 国产精品久久9| 丁香五月综合| 黄色香蕉视频网站一区| 97国产|免费| 成人天天看站长推荐| 97香蕉碰碰人妻国产欧美| 亚洲网站一区二区在线| 亚洲天堂男| 日韩天天本| 亚洲精品819| 操逼操网| 岛国A V在线免费看| 青青草这里只有精品| 欧洲精品网| 日韩国语字幕| 久久艹逼视频| 黄色大香焦1级‘′‘| 国产白丝精品在线观看| 欧美桃色网| 超碰综合色| 超碰97欧美在线| 日韩AV一起草| 国产传媒操逼视频| 思思热久久成人| 日韩日本欧美在线观看| 好吊色青靑草| 97chaopenrihan| 亚洲熟女综合| 欧美色66| 五月天综合网| 国产久久一区二区三区野外在线| 久久国产视频性吧 | 91精品伊人久久久大香线蕉91| 欧美片第一页| 蜜臀一区二区三区在线| 中文久久久| 欧美综合综合| 国产精品乱码久久久久久久久| 亚州欧美总和| 亚洲偷拍欧美激情| 学生妹天天看| 死我十八禁| 色阁阁AV综合网| 91天天c| 久久鲁夜| 久久久久ab| 国产污视频麻豆传媒一区二区| www鬼畜国产男人的天堂| 久操大香蕉手机视频在线看| 国产成人网| 欧美一区二区亚洲天堂| 五月色综合| 精品人人插人人操| 丁香色五月 97干| 日韩中文字幕在线视频观看| 国产版a级片直播在线| 黄骗免费| 国产一级αv免费看片| 国产一区二区在线电影| 99啪啪| 久热婷婷| 国产天美欧美| 黄色高清久久无码依人| 久久久18禁| 欧美色图下一页| 蜜桃精品视频一区| 91精品婷婷国产综合久久| 亚洲影视高清第一页| 日韩熟女视频二区| 天天久久| 偷拍 欧美 日韩| 超碰国产精品无码| 中文字幕亚洲热播人妻| 激情综合色| 日本国产欧美一区三区二区 | 操高情无码| 国产激情在线观看| 亚洲有码 视频一区| 在线 亚洲 网爆 自拍| 日韩精品99久久久久久中文字幕 | 少妇久久久免费| 欧美97se| 人人弄人人摸| 欧美亚洲中文字幕| 啊啊啊啊啊在线观看网址 | 狠狠搞 亚洲91| 亚欧美综合网。| 欧美色九九九| 无码精品一区二区三区潘金莲| 伊人操| 色网亚洲人| 日少妇视频| 秋霞一集毛片观看| 亚洲国产高清福利视频| 天天综合,91综合永久| 91国产丝袜足交精品视频| 麻豆性爱视频在线播放| 亚洲极品| 亚洲无码com| 欧美顶级黄色大片免费| 国产91美女高潮| 日日AV加勒比| 99热这里都是精品| 天天爽夜夜爽夜夜爽精| 午夜一区| 国产乱码精品久久久久久| 国产夫妻性生活视频| 97国产人人| jizzjizz欧美| 国产农村妇女精品1区二区| 国产精品3| 国产呦精品系列在线观看| 国产高清成人mv在线观看| 一区二区 韩日AV| 九九九九九精品十六| 99999久久精| 性爱视频啪啪啪啪| 情色日播放AV| 亚洲色图欧美色图在线播放| 99久久精品无码一区二区毛片免费| 无码少妇精品一区二区60岁老人| 久久超碰97中文字幕| 国产视频97| 26uuu欧美日韩| 亚洲天堂,男人| 久久久久久久久久久久久久久久9| 91综合网在线| 熟女六十路| 中出789在线视频| 免费观看一区| 婷婷综合网站| 欧美激情久久久久| 日韩三级在线观看网站| 91狠狠综合久久久久久| 国产超碰97| 免费αⅴ在线观看| 欧美另类自拍| 你懂的在线观看区国产| 欧美少妇一区二区三区| 我想要 啊 啊 啊| 国产呦精品一区二区三区下载 | 九九AV| 60秒免费视频| 少妇3P性爱自拍| 日韩中字av一区| 亚洲综合九九| 免费精品99| 青青草中出视频| 三级特黄60分钟播放| 亚洲不卡不卡中文字幕不卡 | 亚洲va有码在线天堂| 亚洲天堂另类小说男人| 久久狠狠色噜噜狠狠狠狠97| 天天日B狠狠操| 欧美亚洲天天| 丁香六月激情综合| 人人澡人人干| 激情五月激情综合网| 久久久久久九九九九九九| 国产精品无套内谢| 97丝袜亚洲在线播放| 三级AV入口| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 韩国黄片aaaa| 免费99精品国产自在在线| 高清无码 国产精品| 中文字幕78| 香蕉热人人精品| 日本精品性生活久久久| 亚洲欧综合另类无码一区| 天天综合网~91综合网| 影音先锋乱| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 91色堂| 亚洲成A∨人影院在线欢看| 夜色97| 亚洲欧美精品福利在线| 风韵犹存大大大大香蕉 | www.99色| 蜜臀无码视频在线观看| 一区二区 电影 亚洲| 八戒无码国产午夜福利| 精品中文日韩字幕视频| 国产一区二区av综合| 欧美色图自拍| 国产女人高潮视频| 午夜亚洲WWW湿好大| 清清草影| 九九无码视频| 99999精品| 欧美少妇第一页| 911av网站免费观看| 中文字幕一区二区三区蜜桃视频| 丁香婷婷久久 | 无码在线亚洲| 91制服丝袜中文字幕| 欧美AB在线观看| 无遮挡一级毛片视频免费的| 午夜久久久| 欧美综合自拍成人自拍第二十页| a片自拍直播视频| 青青草成人视频在线观看二区| 91小视频| 亚洲精品99999| 久久夜嗨| 超碰av在线| 超碰精品日韩欧美国产| 熟女91网| 亚洲AV免费在线观看| 少妇人妻好深太紧了vr91| 97在线欧| 99国产天美| 亚洲国产高清福利视频| 久久亚洲AV无码白度| 好看的久久不射无码影视影院| 中文字幕av乱伦| av影片在线观看不卡| 日韩精品三级片长长久久| 立川理惠加勒比无码| 热99这里有精品综合久久| 日韩不卡网操逼中文字幕日韩| 九九久久综合| 噜噜噜在线视频| 亚洲一区二区三区婷婷| 精品中文一区二区| 中文字幕版| 五月丁香啪啪网| 少妇一级婬片免费放一级a性色.| 91久热这里只有精品| 日操粉逼逼| 欧美天天| 快灬快灬 一下爽蜜桃在线观看| 欧美成人色| 爽爽淫人网| 亚洲成人福利电影免费| 日韩成人性日韩成人性爱视频在线免费观看| 毛片麻豆91糖心精品毛情片| 欧美性后入| 久久伊人大香蕉| 国产精品极品美女视频| 蜜乳AV免费观看| 久久久久久久| 久久有码视频| 尤物视频偷拍免费| 伊人991| 热天堂一区二区| 亚洲激情综合| 探花一区在线| 成人三一级一片aaa| 亚洲国产精品无码AV久久久| 91丝袜| 欧美BT 亚洲色图| 欧美日韩国产人人| 日本五十路在线| 亚州成人a∨| 啊啊啊啊嗯嗯嗯用力好爽| 黑人精品成人一区二区三区| 乱伦1色页| 五月丁香六月综合缴清无码 | 日逼97| 久久久无码精品人妻二区| 一本久久精品中文字| 超碰97网址| 欧洲Au麻豆| 久久熟女人| 天天影视综合网欧美精品| 99亚洲天堂| 任你爽视频| 激情五月天色色网| 人人扣人人操| 久久婷婷五月综合| 五月天婷婷基地| 91综合在线| 激情五月天网站| 天天爽爽爽爽| 青青欧美在线| 精品一区二区三区最新| 精品一区二区三区最新| xxx亚洲午夜天堂| 九九九九九九九九九九九免费国产| 夜夜操2028| 亚洲综合春色| 久久人人爽爽爽人久久久| 欧美色图亚洲色图成人在在线| 另类图片五月| 涩爱AV在线| www.高清无码诱惑一区.com | 91在线色| 人妻熟女一区二区| 老司机福利社视频在线观看| 91日韩网站| 欧美78P| 欧美色偷偷| 午夜亚洲WWW湿好大| 国产一区二区三三视频| 国产第25页在线观看| 亚洲成A∨人影院在线欢看| 无码自拍SM| 综合色图亚洲欧美| 日韩精品熟妇| 韩国毛片一区二区三区| 欧成人精品一区二区三区| 91视频综合网| 亚洲一级性爱视频免费看| 欧美日韩操操操| 九九黄色网| 伊人久久国产免费观看视频| 亚洲日韩久久精品一区| 9精品久久久久| 亚洲综合91| 国产成人午夜视频网址| 国产欧美亚洲精品a第2页| 激情网五月天| 美国久久一二三四| 熟女高潮精品一区二区| 午夜性生活av免费在线看| 性爱Av免费| 久久98| 第45页一区二区| 欧美在线第五页| 亲子敌伦对白在线播放| 无码WWW免费视频网站| 丁香五月天啪啪| 四虎AV影视国产精品亚洲精品| 精久久久| 少妇熟女1区2区3区| 亚洲Av无码成人精品国产| 91neishe| 国产丝袜高跟美女av免费观看| 97综合在线| 色狠狠 - 百度| 日韩人妻资源网| 欧美丝袜美女电影一二三四区| 女优大全 - 91n| 日韩欧美aⅴ综合网站发布| 色色热| jiujiujiujingpin| 曰韩人妻中文字幕在线| 黄色欧美性爱视频| 91视频成人福利网站在线一区| 一本一道久久综合久久| 国产精品视频自拍在线| 防屏蔽在线视频| 色爽——AV| 一区二区三区免费视频入口| 91操操| 91精品国产乱码| 国产精品一区二区手机看片| www久久久| A一级色女| 老熟女乱伦一区| 六六久久日韩不卡| 亚洲欧美激情小说| 高清无码 国产精品| 中文字幕一区二区三区人妻少妇在线| 一本大道久| 日韩一级特黄av毛片| 日韩精品人妻系列无码天堂| 人人妻人人爽一区二区三区| 一区三区啪啪| 久久久久久久六六| 成 人片 黄色大片| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 熟妇乱伦一区二区| 日本超碰在线国产一区| 蜜臀99久久精品久久久久久| 夜间福利片1000无码| 精品亚洲俞拍视频一区| A级在线视频| 欧美|91色综合| 久久婷婷成人综合色怡春院| 免费看欧美美女黄色大片| 东北女人操比视频| 交换娇妻呻吟声不停中文字幕| 中文字幕精品人妻丝袜| 色婷婷国产精品一区在线观看| 久久婷婷五月| 好涩综合| 亚洲熟妇自偷自拍另欧美| 久久久久成人网| 欧美日韩第一页| 夜夜嗨一区二区三区三州加勒比| 国产日韩欧美亚洲精品95 | www.婷婷| 91色婷婷综合久久中文字幕二区| 久久怡红院| 色97干| 国产按摩一区二区三区| 亚州一区二区| 色呦呦、国产精品| 91一区二区三区蜜桃| 美女高潮视频91| 久久性爱视频99| 夜夜騷av、一區二區| 欧美日韩午夜精品一区二区三区| 91色综合激情| 夫妻AV网站| 桃花色涩综合影院| 97资源亚洲| 中文啪啪视频| 边做饭边操逼逼| 婷婷情色五月天| 午夜亚洲国产理论秋霞| 人妻天天爽| 久久美女福利是上海美女| 久九九九九九九九热| 亚洲五月丁香花狠狠干一区二区三区| 九九久久久| 国产精品乱码久久久久久久久久久久| 日本三级A片网站com| 日本熟妇精品九九| 国产高潮AA片免费看| 欧美激情区| 欧美性爱一内片一区二区三区| 自怕偷自怕亚洲精品| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲情色1区| 国产精品福利视频播放| 欧美色图人妻| 综合激情婷婷| 老司机午夜精品视频| 2000亚洲男人天堂| 岛国片在线观看视频亚洲| 98久久超碰| 国产男女无套97| 亚洲成a人在线观看久| 国产一二三福利视频网| 夜夜嗨AV蜜臀av| 欧美日韩国产高清在线一二三区| 91色欧美| 99www.bibizy香蕉资源国产一区二区三区高清| 国产专区第一页| 校园春色美腿丝袜| 嗯嗯啊啊操死我| 强奸乱伦大香蕉网| 国内一区二区免费| 亚洲欧美日韩国产丝袜自拍中文| 99热这里只有精品99| 91人精品妻入口| 91天天爽| 欧美三级免费伊人| 国产超碰| 亚洲一区操| 久草综合网| 日韩少妇丰满亚洲| 精品一区二区成人动漫| 日韩熟女无码| 88在线一区二区三区| 欧美最婬乱婬爆婬性视频 | 色欲人妻一区二区在线| 色色色五月婷婷| 国产成人 综合亚洲 天堂| 午夜亚洲| 精品中文日韩字幕视频| 99热97| av一区二区三区 中文| 亚洲色交| 在线视频亚洲无码| 日韩电影免费网站麻豆视频| 亚洲色性情三级| 日韩八十路老熟女| 99自拍B亚洲| 女人高潮抽搐喷水视频网站| 久艾草在线精品视频在线观看| 人妻少妇精品久久久久久| 成人熟女区| 久久一区无码| 热久久这里只有精品| 顶级丝袜熟女一区二区三区| а√天堂资源官网在线资源| 久久线上视频免费看| 欧洲自拍色图gif在线| 亭亭丁香激情| 人妻天堂综合网| 国产AV超爽| 青青伊人这里只有精品| 国模无码人体一区二区三| 久久久91| 青青草原伊人网| 91无摭挡| 久日综合网| 超碰97最新人妻| 台湾佬中文娱乐自偷自拍| 丝袜 亚洲 偷拍| 2024人人操人人摸| 日韩一级片在线看| 欧美十八禁网站| 一区二区三区探花在线观看| 日韩操逼性鲍| 韩国三级一线观看久| 91久久久久久久久18| 久久久久白虎| 78精品| 久久久啊啊啊| 久久伊人东京热| 99超碰网| 91无码精品| 96国产精品| 情色大香蕉| 久久久999国产精品| 久肏视频字幕| 91M一社| 91青青| 校园春色亚洲色图| 天天综合青苹果| 97日韩超碰超碰中文字幕| 精品国产a∨一区天美传媒| 91天堂丝袜美腿| 欧美自拍网| 夜夜躁狠狠躁日日躁av| 久操免费在线| 国产精品懂色tv影视免费观看| 欧美性xxxxx狂欢| 国产粉嫩蜜臀av一区二区三区| 尤物av网站免费在线播放| 欧美大片一区二区三区| 超碰久久精品| 97欧美久久久久久久| 啊啊啊啊啊舒服| 欧美色亚洲色| 高清孕妇孕交 交| 亚洲精品97| 久久久久亚洲熟妇熟女| 黄色激情电影在线观看| 约操熟妇| 狠狠爱综合| 成人五月香网在线| 97久久超碰国产网站| 人人搡人人肉久久精品| 精品9999| 蜜臀久久99精品久久久久久婷婷| 翔田千里AV无码秘 三区| 在线观看不卡一区二区三区| 中日亚韩免费视频| 日本亚洲熟女视频| 殴美牲| 欧洲与亚洲欧美精品中文字幕| 在线观看 99热| 久久久久久久久久久久97| 97在线看| 亚洲第一精品在线视频| 91精品久久综合熟女| 中文字幕黑人大片| 亚洲第91页 | 国产欧美黑人丰满在线| 我要色综合网站| 翔田千里A片一区二区| 亚州免费啪啪视频| 色色色热| 色偷偷色偷偷欧美日韩| 97日韩欧美亚洲| 欧差乱伦二三| 久久香蕉综合一本到3atv| 亚洲激情网一二三四区| 超碰人妻中文在线| 久夜操| 最新国内自拍av免费| 自拍偷拍2025在线观看| 亚洲中文字幕有码视频一区二区三区| 国产亚洲日本| 97 色综合| 成人激情无码在线视频| 999久久久精品国产| 怡红院成人av| 91丝袜| 乱欲一区二区| 暖暖精品二区三区观看| 国产九九九九九九| 日韩国产精品人妻无码久久久| 人人插人人摸人人| 国产精品乱人伊人网| 欧美精品,四区。五区| 在线免费观看高清无码视频| 久久久久成人亚洲国产| 久久精品视频久久久| 免费男人的天堂| 日本操逼视频不卡直接放| 色婷婷六月| 99日免费视频中文字幕| 欧美巨大性舒爽顶到了| 亚洲天堂久久| 中文久久96| 精品一区二区三区四区外站| 久久久久久久9| 亚洲无码AV九九九| 亚洲 欧美 小说| 少妇高潮九九九九| 婷婷深爱五月| 国产精品久久久久久久久久久久久久久久| 亚欧成人一级片在线播放| 人人操人人摸人| 性色av一区二区| av黄图片在线观看| 婷婷综合久久| 熟女熟妇伦久久影院毛片一区二区 | 中文97国产| 国产精品96久久久久久| 5月婷婷6月六月丁香| 日日噜噜夜夜久久亚洲一区二区 | 欧美日韩啪啪电影| 四虎永久在线精品免费网址 | 天天日天天干天天整| 久久一二三四五六七八九区区| 久9无限国产| 2018色综合天天操| 夜夜爽夜夜摸夜夜操免费视频| 亚洲国产欧美一区二区潘金莲| 99久久com免费视频′| 人妻精品一区二区三区| 激情五月天社区| 亚洲AV在线资源| 粉嫩粉嫩一区性色AV片| 精品然女一区二区| 青娱乐福利99| 免費人妻夜夜爽天天爽爽一区| 97超碰色色| 在线观看一卡二卡| 欧美日韩久久精品爱爱| 九九黄色网| 欧美亚州综合网图片| 欧美婷婷五月天| 色哟哟av| 青青草天天亲夜夜操网| 亚洲中字慕不卡| 熟女视频久久| 天天影视综合色| 亚洲夜夜欢无码一区二区| 18禁久久| 91|九色|国产熟女| 精品国产a∨一区天美传媒| 人人扣人人操| 大鸡巴久久| 一区二区激情国产熟女| 97手机日韩| 欧美日韩情色一区二区| 日本操逼视频免费| 欧美性,亚州色| 7777奇米影视久久| av东京热男人的天堂| 无码高清专| 超碰偷拍| 亚洲第一综合| 青娱乐国产剧情av一区| 欧美三级免费伊人| 欧美日韩不卡a片| 东北操逼| 97人人超| 91伊人| 欲色影视综合吧| 亚洲欧美自拍偷拍| AV天黑人| 丁香五月综合| 手机看片91人妻| 国产25页| 亚洲无线码一区国产欧美国| 欧姜老司机| 亚洲另类久操网| 国产精品麻豆免费视频| 久久亚洲天堂| 丁香六月综合激情| 亚洲性爱成人| 九热超碰| 久久午夜伦| 国产精品分类在线观看| 97久久国产亚洲精品超碰热| 色婷婷电影网| 老熟女乱伦片| 97热视频在线观看| 这里只有精品视频| 秋霞操逼片| 91劲爆| 亚洲图片 91| 波多野42部无码喷潮在线观看| 国产精品一区二区麻豆| 精品人妻1237| 天天做日日做天天欢。| 国产精品播放| 欧美一级专区免费大片 | 一区| 99热伊人| 超碰色男人操熟女| 午夜噜噜噜| 九X超碰| 热九九精品| 成人一道本免费视频| 青青久日| 五月天综合网| 九九热超碰| 婷婷丁香九月| 久9精品| 日产123区精品免费观看| 久久久98网站免费视频| 美女午夜福利免费视频| 好爽视频在线观看视频| 亚洲精品1区| 殴美性色a级欧美| 青娱乐久久艹| 18禁止看精品中文字幕| 91热热色| 秋霞鲁丝午夜无码一区二区三| 成人综合色网| 蜜臀操逼黄色视频操的好爽| 欧美人人操人人插| 大鸡巴久久| 天美传媒av在线| 欧美一区二区日韩传媒搭讪精品| 日本中文字幕在线电影| 日韩美女啪啪一区| 伊人加勒比| 91在线国产后入风骚翘臀美女素人| AV一二区| 成人情色一区二区| 在线可观看的黄色网址| 日韩中文字幕国产| 少妇久久久久久久久| 热G综合热G中文| 久啪| 美女大乳久久久久久久女人18| 成人情色一区二区| 两性综合网| 精品国产人成在线| 欧美一级AAAAAAA| 国产女人视频三四五区| 天天综合网~91| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 一起草高清无码| 久久在肏| 亚洲情色 自拍| 97资源站久久| 国产精品熟妇一区二区三| 99999精品成人| 99色悠悠| 95人妻爽爽人人做人人澡 | 午夜福利1区2区3区| 天天射夜夜操| 日韩9区| 97碰碰色| 久久香蕉国产线看观看亚洲女人| 人人爽夜夜玩视频| 少妇内射视频| 亚洲视频二区| 啊啊啊好舒服视频在线观看| 国产亚卅97| 日本97久久久精品| 国产精品制服丝袜中文字幕日韩一区二区三区| 91粉芽高清在线一区二区| 99视频内射三四| 亚洲五月婷婷| 五月综合久久| 大香蕉人妻| 婷婷丁香五月激情啪啪| 国产高潮AA片免费看| 日本 欧美 国产一区| 在线性黄高清免费视频| 俺去俺来也在线www| 九九黄色视频在线观看| 超碰人人超在线观看| 国产一区二区三区影片| 99久久网站| 人妻丝袜无 码视频专区| 久久性爱视频| 九色97| 91扒丝袜综合在线| 亚洲欧美另类少妇精品| 西西美女视频网| 老司机免费视频在线91| 99在线啪| 91狠狠狠| 亚洲性天堂| 国产精品女aA片爽爽视频| 日韩一级久久毛片| 中文字幕精品一区二| 北约熟女超碰| 欧美三级中文字幕hd| 久久婷婷亚洲| 欧美第一页性| 麻豆AV96熟妇人妻| 91精产一区二区三区| 91热色| 精品对白久久不卡| 国产在线观看一区二区三区| 八戒无码国产午夜福利| 看黄片视频免费| 五月婷婷久久综合| 玖玖人人爱| 在线97在线| 久久专区| 熟妇国产免费一区| 无码乱人伦中文视频| 国产懂色精品国产av| 婷婷五月成人| 免费看污网站| 精品中文日韩字幕视频| 黄色交缠性感爆操91国产精品免费一区二区三区 | 欧美天堂在线| 欧美成年人性爱视频免费观看| 国产高清精品一区二区三区毛片 | 欧洲熟妇xxXx欧美老妇裸体 | 欧美性爱第一页久久| 中文字幕精品一区二区精| 欧美国产日韩高清在线| 久久熟女人| 夜夜 中文视频rt| 91熟女丨老女人| 亚洲精品白浆高清久久久久久 | 欧美色另类| 最新av中文字幕高清| 亚洲精品乱码久久久久久蜜桃麻豆 | 青青草日韩免费观看高清在线| 97se亚洲综合自| 91精品久久久| 色激情五月天| 搞中出视频在线观看| 天美传媒精品久久视频| 欧美黄色手机在线观看| 尤物一级在线免费观看| 久久久久久中文字幕中文字幕最新| 麻豆国产成人精品| 欧美在线啊啊| 亞洲久久直播| 富二代亚洲精品99| 天天搞欧美| 一级AV性爱| 丁香六月婷| 丝袜亚洲91| 热99这里有精品综合久久| 色就色综合| 日韩精品一二三四| 精品少妇人妻| av毛片aaaaa免费看| 国产乱伦性爱AV| 久久久久久中文版| 久一区久久蜜桃| 亚洲一本色道中文无码aV天美| 毛片17S| 亚洲黄色电影| 亚洲精品无码成人久久久99| 欧美另类色| 亚州,欧美在线| 欧美老妇曰批的视频| 91久久久久久久久久久| 青青草影视蜜久久| A 在线网址| 好爽,再快点啊哈嗯嗯嗯嗯| 操久久久久| 熟女人妇一区二区三区| 日产狠狠干| 欧美操逼熟女| 香蕉一区二区三区在线视频| 91操熟女视频| 极品尤物自安慰| 日han少妇无码| 欧美日韩97| 久热无码| 91成人亚洲色图| 在线看片国产精品每日更新| 中文有码第五页| 91亚州| 亚洲婷婷五月天| 色偷偷2020免费视频播放| 久久美女国产| 熟妇精品juliaannAV| 青娱乐国产剧情av一区| 天天天天操| av2014 日韩在线中文字幕| 国产精品一区二区三区,亚洲综合| 欧美狠狠鲁| 亚洲天堂美臀在线| 啊视频在线| 综合一区中亚洲国产成人综合精品| 欧美综合网站999| 国产欧美日韩女同性恋ww喷水精品| 日韩亚洲中文有码视频| 国产免费内射视频| 久久天天躁日日躁狠狠躁| 先锋影音av先锋一区| 一二区在线观看视频| 岛国AV一区二区电影|