亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

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

ArcGIS Engine桌面GIS開發(fā)實(shí)戰(zhàn):COM組件嵌入與離線空間分析 簡(jiǎn)介本資源是面向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多語(yǔ)言配置支撐完整項(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ù)編輯、自定義工具等典型場(chǎng)景實(shí)現(xiàn)所有工程可直接編譯運(yùn)行并附帶gdb地理數(shù)據(jù)庫(kù)、adf柵格數(shù)據(jù)、lyr圖層文件等真實(shí)GIS數(shù)據(jù)樣本便于邊學(xué)邊練、快速?gòu)?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ù)庫(kù)編輯、空間查詢、緩沖區(qū)分析再到自定義工具條與GP工具調(diào)用。適合有C# WinForms基礎(chǔ)、需交付離線GIS功能的桌面端開發(fā)者尤其匹配某高校地理信息實(shí)驗(yàn)室的畢業(yè)設(shè)計(jì)支撐需求、某市自然資源局歷史系統(tǒng)升級(jí)場(chǎng)景。這不是教你怎么點(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庫(kù)時(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)目并引用核心庫(kù)新建項(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)場(chǎng)只有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ù)加載不是“打開文件”那么簡(jiǎn)單。Shapefile需處理編碼兼容性Geodatabase需管理工作空間與事務(wù)而要素編輯必須遵循IWorkspaceEdit生命周期。課件源碼第3模塊DataLoadingAndEditing覆蓋了這三類高頻場(chǎng)景其中“中文路徑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代碼頁(yè)編號(hào)ARCGIS_SHAPE_ENCODING是ArcGIS內(nèi)部識(shí)別的環(huán)境變量?jī)H對(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, // 簡(jiǎn)單要素類 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ì)比課件明確指出簡(jiǎn)單單要素緩沖用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那么簡(jiǎn)單它涉及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ī)已購(gòu)許可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
返回資訊列表
久久久久久久久国产| 在线观看啊啊啊啊啊| 自拍偷拍草一草| 天久久久噜噜噜久久国产精品爽爽| 曰韩人妻中文字幕在线| 99超级碰免费视频| 天操老女人| 久久久av爱| 色香欲影| 欧美极品色| 偷拍色图| 久久久精品中文字幕爱豆| 国产在线综合网| 探花一区在线| 在线五区| 人人妻人人玩人人澡人人爽| 日本色婷婷| 爽爽淫人网| 一区二区久久天天干狠狠| 91国产大片| 人成午夜免费大片| 色翁荡息又大又硬又粗又爽| 九九色逼| 国产精品成人蜜臀AV在线| 亚洲国产一区二区三区在线| 免费人成毛片乱码| 久久夜嗨| 欧美日韩中文亚洲v在线综合| 一区 欧美 日韩 麻豆| 超碰97中文| 女人被男人桶爽视频网站| 96免费视频在线| 老熟女乱伦一区| 性色乱AV一区二区| 久一区久久蜜桃| 人妻熟女av国产网站| 国产精品国产| 日日碰狠狠添天天爽超| 秋霞男人网| 97久久超碰| 婷婷激情四射| 色色毛片| 亚洲综合性网址| 久久精品国产亚洲妲己影视| 91N综合网在线| 九九热精品在线| 狠狠爱夜夜干| HEYZO高无码国产精品227| 婷婷探花久久精品一区| 天天日天天射天天干| 人妻一区二区三区视频 | 2017天天透天天通天天擦| 一区二区三区四区在线不卡| 秋霞影音一区二区三区| 日本最新免费韩国1区2区视频播放| 成人精品久久久午夜福利| www.婷婷六月天| 九九久精品| 欧美亚洲图片| 自拍欧美| 六月色色| 黄色大片免费在线| 蜜臀99久久精品| 精品欧美А∨无码黑人大荫蒂 | 男插女青青影院| 极品另类| 高跟丝袜AV专区国产| 亚洲天堂少妇| 欧美97在线观看| 国产AV精久久| 五十路熟女人妻一区二区在线观看| 久久综合久久综合人久久夜精品| 国产区日韩区在线观看| 中字一区| 激情图片伦理国产一区二区日韩| 免费在线黄片视频| 91肉片| 亚洲精品一区二区免费在线观看| 亚洲天堂,男人| 男女性感激情网站| 国产色图乱伦| 人人操人人肉久久精品| 欧美熟妇色| 国产视频大全| 超碰午夜在线| 国产激情久久| 丁香五月自拍| 国产懂色精品国产av| 久久精品一区二区一8| 五月色网| 久久香蕉综合一本到3atv| 91成人久久| 伊人天天久久动态图| 91精品国产91熟女| 黄骗免费网站| 老色69| 亚洲做性| 九一屌逼| 尤物视频视频官网| 色噜噜狠狠色综无码久久| 午夜激情床戏激情| 久久久九97| 国产吞精a级片激情电影| 蜜乳AV.COM| 智利AV在线网| 久久9999 | 婷婷丁香六月| 熟妇人妻精品一区二区视频色欲| 欧美在线播放| 欧美性爱日韩性爱| 男人干美女| 欧美色图片色哟哟| AV色图| 欧美日日夜夜| 91在线色| 亚洲免费97免费| 色鬼在线综合| 久久久专区| 亚州中文字幕超碰97| 亚洲男人天堂网久久| 偷拍 精品另类 凸凹了四区| 久久草草欧美精品| 五月婷婷丁香六月| 肥臀熟女福利视频一区二区| 99热最新| 黑操B| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 国产夜夜艹| 欧美男女午夜啪啪| 人人澡人人干| 一区二区三区激情在线观看| 久啪| 曰韩中文人妻视频| 欧美一区二区观看在线| 欧美日韩婷婷中文| 麻豆尤物视频网| 禁十八久久| 免费操逼视频下载| 亚洲国产精品久久久久久久久久| 青娱乐啪啪视频| 夜夜嗨视频| 精品丰满熟妇人妻一区| 精品人妻一区二区三区四区| 欧美色图20p| 99色网| 综合久久少妇中文字幕| 99在线精品视频| 国内精品99999| 极品白嫩美少妇在地板上位骑射淫水泛滥| 麻豆视频一区二区| 秋霞一集毛片观看| 手机在线人成免费视频| 亚洲中文字幕97久久精品少妇| 美女黄页| 九九热只有精品| 久久精品区| 26UUU欧美日本| 国产精品免费日韩| 人妻久久久久久久久久久久久久久| 亚洲色堂免费视频| 夜夜免费视频| 国产深喉视频一区二区| 欧美少妇性爱网站| 超碰欧美97资源| 91精品久久久| 国产60区。| 成人午夜高潮av猛片| 白丝少妇一区二区| 手机在线人成免费视频| 成人怡红院| 国产91 丝袜在线播放| 久久久精品久久| 无码国产精品午夜不卡(| 欧美色偷偷| 日韩精品碰碰| 五月丁香社区婷婷日韩欧美精品影院| 国产精品熟女丝袜一区二区| 日韩黄片视频试看| 亚洲视频小说| 中日亚韩免费视频| 国产精品久久久啊| 亚洲精品日日夜夜52| 久久久精品国产亚洲伊人| 亚洲国产精品久久久久婷婷青年| 久久久久久九九九九九| 色一色综合网| 亚洲情色一区二区三区| 日韩免费一级性爱视频| 亚州AV无码国产精品| 中文字幕亚洲欧美在线不卡| 伊人久久AV诱惑悠悠| 精品无码久久久久久国产浪潮| 99热精品免费| 漂亮人妻被强中文字幕hd| 在线无码视频| 日韩丝袜高跟制服在线观看| 成人26uuu| 欧美成va视频网站| 91一区二区三区蜜桃| 美女性91| 亚洲永久AV无码精品秋霞| 骚货人妻偷情自拍在线视频| 天天综合网站| 国产久久av| 免费人成?大片在线播放| 男人成人黄色视频在线观看免费下载| 成年人三级黄色片视频| 十八禁啪啦拍视频无遮挡| 媚薬在线视频麻豆| 亚洲精品影视老司机| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 午夜AV污污污| a一区二区三区乱码在线| www老逼91| 中文字幕丰满人妻日本| 日韩美脚一区二区网站| 久久久久久久精| 久热免费视频| 国产精品香蕉| 黑人天8A∨高清网站| 在线αⅴ| 亚洲综合校园春色| 国产一级αv免费看片| 肥臀熟女福利视频一区二区| 亚洲精品毛片在线观看| 超碰97在线色男人??| 中文字幕精品日韩中文字幕| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 夜夜一区二区| 亚洲中文字幕久久人妻| 久久久久久99999国产精品| 日本性爱少妇| 超碰在线一区| 日韩99神马视频片| 欧美日韩性爱无码| 欧美成97爱| 偷拍网站久久男女男| 中日韩一区二区三区欧美| 日韩懂色网| 久久人人舔人人爽舔人人av片| 久操 高清| 不卡一区二区日本视频 | 91伊人大香蕉| 亚洲a色| 大香蕉淫人网| 亚洲天堂中文字| 成 人 A V免费视频在线观看| 亚洲国产成人福利在线观看| 国内精品伊人久久久久影院会| www久久国产精品| 久久草草亚洲蜜桃臀| 久久久久久人体| 日日超碰亚洲| 使劲用力艹少妇视频一区二区| 欧美另类精品xxxx| 久久精品国产Aⅴ| 97色妞| 天天天干977| 亚洲熟妇自偷自拍另欧美| 亚洲啪啪视频免费| 后入合集| 午夜精品久久久久久久99热影院| 91oumei| 吉田爱美AV在线| 俺去俺来也在线www| 大香蕉99999| 国产SV一线| 日本污ww视频网站| 成全在线观看免费观看| 精品欧美老熟女一二区| 78m成人视线| 亚洲精品国产精品乱码不卡| 国产免费一区二区三区最新不卡| 97国产高清视频在线观看| 揉揉揉夜夜| 精品亚洲国产成人精品| 福利五区| 国产女生在线| 99色日| 国内伊人久久久久久网站视频| 视频分类 国内精品| 欧美性五月| 亚洲国产成人精品久久久国产成人一区二区三.| 91久久久久久| 97日亚洲欧美| 一级A片女人高潮叫床| 国产成人网址| 欧美精品系列| 久草尤物| 中文字幕精品探花视频| 自拍六区| 一区二区影视| 夜夜躁狠狠躁日日躁av| 亚洲欧美综合网| 四虎精品一区| 色婷婷一区二区三区久久午夜成人不| 色哟哟-国产专区| 人人摸人人干人人拍97| 久久久成人国产精品无码| 日本色色视频网站| 国产一级特黄大片处女| 高潮的A片激情扒开一区| 亚洲无码精品AV久久久| 操国产高清| 熟女人妻一区二区三区免费看| 国产精品69人妻无码久久久| 中文字幕乱在线伦视频中文字幕乱码在线| 欧美色图亚洲激情| 综合欧美亚洲| 人人操,人人液| 天美91| 国产精品片| 男人的天堂99| 草草草视频在线免费看| 国产精品直播在线观看直播| 人妻二区| 口爆吞精在线观看| 亚洲色图欧美视频| 日韩十八禁| 成人一级二级| n1038 一二三区| 久超超碰| 日韩欧美中文字| 妇人噜噜| 午夜精品人妻二区三区| 97一区二区三区视频| yiren97| 熟妇高潮一区二| 亚洲精品丝袜| av午夜玫瑰| 久久夜夜夜夜| 中文字幕人乱码中文字的预防方法| 日韩影片中文字幕一区二区三区| 快点操死我| 久jiu久神马影院| 日韩AV片| 狠狠 91| 久久久久密| 亚洲91少妇| 天天日少妇逼AV| 青青草视频久久| 五月丁香六月婷| 狠狠躁AV| 在线观看A啊啊啊| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 91高潮| 91天天综合日韩欧美| 日韩操逼HD| 欧美日韩性爱电影在线| 美女自卫慰黄网站免费| 男人兔费天堂| 欧美一品道| 夜夜欢天天干| 亚洲成熟国产精品美女| 色99视频| 国产高清不卡视频| 国产精品伦理| 人妻一二三区| 国产日本熟女顶级一区二区三区视频| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 九九干| 首页亚洲国产高跟丝袜诱惑视频| 婷婷五月天无码 | 精品日韩人妻精品一二三区| 亚洲精品aa久久伊人| 欧美色棕合| 欧美亚洲美少妇一区二区| 久久久久96| 亚洲动态色图| 日韩在线一区高清在线| 欧美久久草熟女| 大色网久久| 艹比视频国产精品| 99re69综合| 懂色aV一区二区天美传媒| 一区操逼| 日本A级视频| 国产精品第一页国产大屁股视频免费区| 日韩精品免费高清视频在线| 一区二区三区四区色图| 日日摸日日弄日日拍| 极品AV网站在线观看| 岛国视频免费在线观看| 国产精品视频电影| 天天综合欧美| 欧日韩不卡视.频| 一区二区三区麻豆| 色五月婷婷在线| 怡红院成人视频| 色婷婷五月综合激情中文字幕| 和协影院中文字幕三区| 边做饭边操逼逼| 骚乳在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日本一级特级毛片视频| 97精彩视频网站| 日韩成人高清一区二区| 国产农村妇女精品一| 国产偷人伦激情在线观看| 亚洲人妻中文高清| 九九九999久久久网站| 高潮的A片激情扒开一区| 久偷拍| 全免费a敌肛交毛片免费| 久久久久久久久久久久久9999| 午夜性刺激视频免费观看| 91美女视屏| sewuyueav| 久久久精品日本一道| 成·人免费午夜在线观看| 日韩无码专区| 大二网站亚洲| 欧美韩日精品99综合| 狂操嫩妻视频一区二区三区| 日韩欧美午夜一区二区| 国产三级中文字幕粉嫩| a男人的天堂| 国产 日韩 欧美高清| 青娱乐亚洲热| 超碰人人超在线观看| 99re视频在线播放青草| 在线视频五十市| 破苞ⅩXXX性无码动漫无码| 又大又大又大又粗爽高潮观看 | 日本欧美色| 欧美大战久久久伊人| 密桃99999| 人妻久久久久久| 精品人妻一区二区三区夜夜| av天天在线观看| 亚州免费啪啪视频| 天天爽夜夜爽夜夜爽精| 美女好片色日本| 色男人色天堂东京热| 久操婷婷| 色婷婷五月综合激情中文字幕| 免费精品无码一级毛片牛牛影视| 99热欧美| 中文字幕无码不卡啪啪| 粉嫩av一区二区三区四季| AV一二区| 综精品久久久aaaa| 香蕉在线一区二区三区| 成人免费在线网站| 操操操日本的逼| 少妇高潮流水av免费| 大学生美女口爆| 亚洲久9| 日本在线伊人啪啪| 日韩欧美中文字幕搭讪巨乳美人妻视频| 在线观看视频91| 99国产精品免费| 欧美页片| 欧美视频激情久久久久久| 狠狠热这里都是精品| 91九久| 综合干干干av久久久综合网 | 亚洲综合草草| 欧美后入式| 人妻夜爽夜夜爽| 97美日韩视频| 91春色| 天天躁日日躁成人字幕aⅴ| 日语五十路和六十路亚洲国产精品| 91欧美经典| 日本熟妇浓毛hdsex| 91综合色噜噜| 在线国产福利网址导航| 黄片无码在线制服| 色婷婷电影网| 亚州成人a∨| 偷拍色图| 伦理日韩国产久久| 中文字幕99999| 久久久久久人妻一区精品色欧美| 伊人激情五月天一区二区| 9999免费精彩视频| 日少妇视频| 国产亚洲禁久一区二区| 91天射| 韩国一区二区精品亚洲| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 女性喷水高潮在线观看| 亚洲人妻在线一区| 精品超碰中文在线| 免费看污网址| 欧美第一页| 欧美人妻久久精品二区三区| 国模限制级电影| 久久综合久色欧美综合狠狠 | 2017天天操| 2024黄色视频| 欧美色图成人网一区二区| 伊人aaa| 国产高清成人免费视频| 大香蕉免费乱伦视频| 夜夜操av亚洲一区二区| 欧美日韩亚洲天堂| 久久精品国产亚洲AV高级北京| 91色综| 少妇人妻在线| 秋霞免费AV| 欧洲乱码视频| 妇女性内射冈站HDWWWCOM| 久久九九网| 久久华人网| 日韩人妻播放| 啊啊啊好舒服视频在线观看| 啪啪啪精品| 国产伦精品免编号公布| 色汉综合| 麻豆AV一区二区| 精品国产乱码久久久久久蜜臀| 精品国产无码中文| 亚洲精品国产精品乱码不卡| 搡老女人911熟妇老熟女| 色哟哟的毛片| 天天躁日日躁狠狠躁| 亚洲影视综合网| 欧美碰碰综合色| 日本性爱少妇| 欧美黑人日韩少妇色情| 欧美日韩操逼嗦吊| 亚洲小说视频| 欧美大码在线视频| 亚洲最新Av| av草草在线电影| 密臀在线一区尤物| 亚洲伊人成综合成人网| 一牛影视久久久一区二区三区| 青草精品视频-日本久久久久网站| 涩五月婷婷| 人人操人人爽人人操人人| 午夜天堂精品久久| aⅴ日韩成人电影av在线免费看av大全 | 亚洲色综合| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 欧美激情性久久久久久| 久久久成人免费av电影| 在线不卡视频| 久久精品 六十路 熟女 欧美| 婷婷精品国产一区二区三区日韩| 日韩欧美字幕亚洲一区二区| 91天堂| 亚洲天堂自拍| 一起草av| 一级毛片久久久久久久女人18| 综合大香蕉美。| 欧美性天天影视| 八人操人人摸人人看| 东京热,男人的天堂| 99re不伦| 日本99久久| 日韩欧美大力操| 99re视频在线播放青草| 人妻人人澡人人爽人人| 欧美日韩高潮喷水91| 人人看人人爰人人操| 大香蕉78| 日韩欧亚中文在线| 宗合情欲网| 色嘟嘟人妻天堂网| 国产成人网| 久久久久中出| 黄片不用下载在线观看| 无码精品久久久天天影视| 9久久久久| 97超级久久| 941超碰| 澳门成人网站久国产日韩| 无套内射性感少妇视频| 囯产乱伦一区二区三女 | 久神马| 欧美日本天堂| 男插女青青影院| 激情图片伦理国产一区二区日韩| 丁香六月激情| 99久久久| 天堂蜜桃无码视频一区二区| 成人在线永久| 欧美亚洲丝袜人妻制服中文99| 人妻嗯啊啊在线播放| 欧亚在线视频| 柠檬AV导航| 亚洲成av人片色午夜乱码| 自拍偷拍 日韩无码| 亚洲中文一区二区三区| 国产精品激情久久久久久久| 亚洲中文一区二区三区| 国产午夜激片Av毛片不卡| 黄色在线网站| 激情五月天色色网| 五月天婷婷影院| 国产欧美日韩在线观看麻豆传媒公司 | 内射中出日韩在线观看视频| 激情露脸爱| 成人热久久精品| 亚洲97网站| 97操碰| 国产又黄又粗又猛大片| 天天做天天爱夜夜爽毛片试看| 亚洲好看强奸乱伦| 欧美成人黄网色网站| 91啪啪| 人妻社区男人天堂| 色天天野狼综合社区| 亚洲欧美清纯| 乱伦av.com| 久久本道| 国产熟码AV| 亚洲av综合伊人久久| 黄色小视频日本txt| 日本 欧美 亚中文字幕| baiduhicn.com。| 久久久久夜夜夜夜| www色色色com| 成人天天爽| 蜜乳AV免费观看| 五月综合久久| 2017天天操天天日| 四虎影视永久在线免费| 97超碰色色| 国产黄片在线免费观看| 精品国产72| dy888午夜老子影视达达兔| 亚洲操逼网| 日韩成人在线性爱视频| 亚洲 图片 欧美 色图| 国产久久日韩网站导航| 丰满欧美放荡少妇在线| 91久久青青草原精品| 影音先锋视频在线| 麻豆天美电影一区二区| 色五月AV在线| 亚洲阿v天堂无码z2018| 天美麻豆精品视频99| 青青草中日韩在线| 天天日天天搞天天干| 婷婷爱五月| 久久原创中文| 日本精品网站在线中文| 久久久久久久 九九九九九九九| 久久综合久色欧美综合狠狠 | 中文字幕日韩人妻视频| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | AV色五月天| 日韩激情电影中文字幕| 91呆哥人妻| 很黄很污的免费网站| 99热在线只有精品| 黑人操一区二区| 夜夜爽妓女| 超碰免费人妻在线| 久久久久久久人妻| 日韩素人无码一区二区三区三州| 色五月AV在线| 亚洲小电影免费涩涩成人在线高清| 992这里有精品| 亚洲熟女一区二区| 日本免费亚洲欧美| 东北女人性交| 午夜精品久久久久久久99蜜桃一| 少妇色综合| 欧美加勒比| 婷婷99狠狠| 国产麻豆91欧美一区二区久久婷婷国产精品| 国产又色又粗又黄又爽| 久久精品人体| 国模91| 国产自产自拍| 五月天加勒比啪| 天天操夜夜嗨| 在线情色电影 91大 | 97国产伦理| 性开放中文AV高清无码免费看| 2017大香蕉国产精品久久| 性爱视频无打码在线观看| 国产91精品久久久久久久网曝门| 亚洲一区中文精品| 91操人| 久久婷婷综合国际产色怕| 另类专区加勒比| 五月丁香啪| 88xx成人精品视频| 超碰夫妻97| 久久国产精品91| 久久久精品91八戒| 午夜后入| 丝袜美腿诱惑亚洲欧美视频在线观看| 国产精品96| 欧美中字二区| 免费观看欧美日韩操逼视频| a片久久久久久久久久久久| 天天日天天操VV| 色噜噜综合网| 久久精品人人做人人看| 大香蕉一人| 淫骚熟女一区二区三区| 欧美成va视频网站| 中文字幕aⅴ在线视频| 国产400孕妇孕交群| 精品无码一二三四区| 久久激情综合| 亚洲综合欧美| 啊啊啊啊无码| 屌妞视频久久久久久久| 婷婷五月丁香五月| 91呆哥人妻| 久久国产免费激情视频| 亚洲伊人成综合成人网| 夜夜嗨一区| 天天操人人操骚逼网站| 97久精品| 丁香六月天| 岛国片在线观看视频亚洲| 国产99精品一区二区三区免费| 欧美亚洲情色| 久9九综合在线| 国产精品天堂| 欧美精品69性爱| 99中文字幕| 亚洲高清色综合| 变态另类专区| 91n处女在线观看| 青青操在线视频| 日韩无码第3页| 99色热| 另类av天堂| 青青草吊丝| 黑丝日韩av丝袜av| 国产久久一区二区| 亚洲欧美天| 亚洲天堂一二| 国产高清亚洲日韩一区| 97超碰人人操人人操| 亚洲Av诱惑| 欧差乱伦二三| 人人看人人爰人人操| 亚洲av无线观看| 日本综合久久| 亚洲国产欧美日韩人妻日中文| 成人久久无码www| 蜜屁Av| 精品人妻久久久久一区二区三区| 美女啊啊啊啊啊啊| 日韩av无码网站| 91丝袜| 国产精品欧美日韩久久| 亚洲AV成人无码一区二区三区在线观看 | 中文字幕狠狠玩| 婷婷中文字幕| 操逼内射干逼白丝91| 久操网视频| 亚码激情| 在线情色电影 91大 | 久久日韩肥臀| 国产综合日韩伦理| 成人美女av| 99.色网| 亚洲欧美综合网站| 成人五月天丁香激情综合| 金莲网址| 亚洲日韩av一区二区三区百合| 丝袜加勒比| a片 xxxx受爽视频| 人人操人人叉人人插人人| 欧美中文字幕男人天堂久久精品| 强被迫伦姧在线观看无码网站| 成人免费在线网站| 中日韩久久人妻一区二区| 欧美视频一区二区三区| 美国aaaaa一级黄片| 99久久无色码| 亚洲天堂资源网| 久久9视频| 久久九九精品一区二区| 一级黄色性爱A级片| 欧美亚洲第1页| 久久系列| 色999人与兽| 另类图片五月天| 在线强奷到舒服的无码视频| 欧亚久久偷拍视频| 亚洲码在线中文在线观看| 亚洲,欧美,春色,另类 | 99色色网| 男人的天堂va在线| 大香蕉亚洲中文| 91美女精品| 99热这里是精品| 日日骚一区二区三区| 99久久精品国产高潮| 九九九只有精品| 国产理论视频在线播放| 天天操天天干美女网址导航| 午夜天堂啪啪| 免费在线视频97| 天天影视色香色欲| 国产午夜在线观看| 嗯嗯嗯嗯啊啊啊好紧好大| 96精品久久久久久久久久| 国产馆极品诱惑| 国产一进一出视频网站| 久湿久久 | www色色色com| 免费家庭乱伦视频| 日韩av电影网站| 99热精品在线| 男人天堂电影院| 在线亚洲精品久久久| 五月丁香六月综合缴清无码 | 开心五月激情网| 国产又黄又爽| chaopen97久久| 欧美大香蕉97| 色婷网| 国产福利一区二| 色综合99999| 精品久久久无码| 88xx成人精品视频| 久久爽爽精品| 99精品网| 久久婷婷综合国际产色怕| 九色黄站| 亚洲欧美综合网站| 日日夜夜国产综合| 920日本午夜免费| 亚洲激情在线观看一区| 亚洲区 欧美区| 91黑丝美女| 欧美黑人猛交春色影视大全| 亚洲色图殴美色图激情乱伦| 7777奇米影视久久| 香蕉99秘 一区精品蜜桃臀| 久久亚码| 欧亚第一综合网| 亚洲人妻AV| 久久一二三四五六七八九区区区 | www久久国产精品| 欧美,日韩,中文,另类| 青娱乐手机日韩在线视频| 亚州成人a∨| 香蕉久久国产AV一区二区| 免费看国产曰批40分钟怎么下载| 欧美 亚洲 在线| 凌辱美少妇久久aV| 亚洲人妻色图| 美女91AV| 91爱啪| 欧美 精品国产制服第一页| 日韩大香蕉AV影片| 人妻激情视频| 久久久夜夜嗨免费视频| 久久国产免费激情视频| 欧美另类精品xxxx| 操逼啊啊啊91| 激情久久久| 色婷婷影视| 91性高潮久久久久久久久| 五月婷婷六月色| 亚洲第一页色| 诱惑人妻欧美一区在线播放| 久久人妇| 啊啊啊啊免费视频| 欧美激情久操网| 欧美人与动性人交a| 天天插夜夜操| 熟妇在线视频一区二区| 国产天天骚| 日本超碰97日韩精品人妻| 极品少妇久久久久| 97爱| 成人三一级一片aaa| 欧美黄色手机在线观看| 国产成人无码a| 日本精品成人无码| 少妇毛片久久| 丝袜视频网国产90| 亚洲日韩天堂| 色综合尤物| 人人色人人射人人妻| 亚洲图片欧美偷拍| 欧美 日韩 亚洲 春色| 久久五月份| 99国内熟女露脸视频| 91精品网站| 手机看片日韩人妻| 青娱乐国产盛宴视频| 亚州精人品大香蕉| 4虎在线视频| 成人午夜高潮av猛片| 日韩国产乱子伦App| 亚洲欧洲小说图片视频| 97久久国产亚洲精品超碰热| 国产黄色小视频网站| 天综合网| 亚州性色| 99精品久久久久久久婷婷蜜桃| 天堂麻豆天美| 国产高清自拍视频| 婷婷综合五月天| 东京热不卡视频| 欧美亚洲中文| 992这里有精品| 国产AV人人夜夜澡人人爽麻豆| 日本1区2区不卡视频| 91 刺激在线| 亚洲全色网| 婷婷伊人綜合中文字幕| 日产成人久久| 三级网色| 疯操AV| 另类小色呦| 欧美色综合网| 色情五月丁香| 国产少妇内射| 亚洲成av人片色午夜乱码| 夜夜夜夜爽| 欧美性爱十八禁| 亚洲交性| 狠狠操夜夜操蜜桃视频三区| 易易A毛视频| 乱精品一区字幕二区| 久久AV无码AV| 久久久久亚洲一区女同性恋中文字幕| 国产黄色在线播放观看| www. 男人天堂成人在线| 国产一级作爱毛片| 欧美 亚洲| 91色综| 国产日韩区| 按摩中文字幕| 欧美国产欧美在线观看| 人妻素股| 国产成人在线观看综合| 好涩综合| 中国小夫妻勾搭露脸淫荡对白 | 亚洲一级黄色毛片| 亚州色图欧美| 亚洲欧美精品一区天堂久久| 国产精品高潮久久久无码| 久9久精品视频| 亚洲 中文 女同| 精品人妻一区| 成人羞羞视频国产| 后入式999| 91久久久久免| 日韩精品一区二区三区色欲| 国产狂喷潮在线精品| 亚洲色天堂九9| 久久久久一本一区二区青青蜜月| 亚洲少妇中文字幕网址| 蜜臀AV午夜精品久| 你懂的在线观看区国产 | 欧美日韩黄片精品在线| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 青青网三级视频| 啪啪啪精品视频| 久久97| 亚洲美女高潮喷水视频| 国产熟女二区| 欧美97日韩| 亚洲性综合9| 六月丁香啪啪| 免费观看啪视频| 人人弄人人摸| 免费a v| 色汉综合| 亚洲综合在线第一页| 日韩日韩日韩-国产乱码精品一区二区| 99黄页网站| 国产美女口爆吞精| 伊人操操| 激情人妻另类| 久久久月天| 精久久久| 女人18精品一区二区三区| 欧美大色交| 综合网97| 婷婷探花久久精品一区| 老熟女阿 国产91| 午夜噜噜噜| 日韩大香蕉精品在线视频| 蜜桃香蕉久草精品在线| 啊啊啊轻点在线观看| 99精品无码| 97超级久久| 探花精品 一区二区| PMv在线观看| 一本一道波多野毛片中文在线| 亚洲古典另类欧美在线| 亚洲人妻一区二区三区| 艹我哪美一区无码| 欧美72网页| 国产精品天干天干综合网麻豆| 视频在线97| 97干色| 欧美一级久久久久久久大片动画 | 日韩欧美麻豆大片| 色在线69堂| 麻豆视频一区二区| 黄色片A级一区二区三区| 日韩 欧美 视频 在线 一区| 91精品黄在线观看| 亚洲男人的天堂V| 精品妇操一区二区三区| sewuyueav| 免费少妇一区二区| 欧美视频在线视频免费va| 中文字幕乱码人妻一区二区三区,99精品 | 久久综合九九| 日日黄色三级网站| 91福利网在线观看| 欧美日韩另类在线| 男人的天堂.com| 久久成人东京热人妻| 香蕉国产精品麻豆亚洲欧美日韩| 99热这里是精品| 精品亚州18| 啊啊啊网站| 无码伊人久久大杳蕉中文无码| 天天舔天天日天天射| 9久久精品| 成人午夜视频免费播放| 婷婷色网| 超碰97丝袜| 丁香婷婷啪啪| AV中文字幕剧情1区2区3| 日韩精品在线放| 久久久亚洲精品电影免费看| 1024精品在线| 操婢日韩| 97超碰超欧美。| 国产精品女久久久久av爽| 嗯嗯啊啊好疼| 可以在线观看的黄色网址| 99RE在线视频精品,这里只有精品| 国产午夜精品理论片一二三区区 | 妇女一区二区三区| 国内三级自拍小视频在线观看| 亚洲91射| 国产成人亚洲精品自产在线| 超碰导航97| 国产11页| 女人天堂av在线播放| 日本精品免费一区二区三区四区| 欧美在线91| 99热在线不卡| 久久成人国产| 淫穴高潮色图| 久草婷婷| 黄色香蕉视频网站一区| 校园春色宗合网| 男人把坤坤插入女人的下体| 国产人妻天天干精品| 国产精品69久久久久孕妇欧美| 成人三级片无码| 97香蕉网| 在线一区| 中文字幕在线观看丝袜| 亚洲 欧美 日韩 国产一区二区| 330Dv国产女人终合视频极品人与兽 | 啊啊啊啊嗯嗯嗯用力好爽 | 黑人干亚洲| 中文字幕一二三区| 精品在线观看视频在线| 欧中美三级一区二区三区| 久久综合女优| 色综合婷婷| 久久首页| 中国操逼无码| 久久久性少妇| 物尤视频一区二区| 亚洲精品 大香蕉| 中文字幕久热视频在线| 97Ai亚洲| 久久久久久中文| 欧美日韩一干二干| 男人的天堂2010| 澳门成人网站久国产日韩| 操逼网免费无码视频| 97精品一区二区视频| 91综合天天| 另类专区加勒比| 青青草乱入乱欲视频在线观看| 麻豆天美国美国产| 一区二区三区视频在线观看免费| 欧美国产欧美在线观看| 97操| 日日骚中文字幕| 人妻三级在线中文字幕| 国产尤物在线三区| 很很很很操| 屌妞视频久久久久久久久久久久| 另类 综合 日韩 欧美 亚洲| 欧综合网| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日韩性爱再线视频| 色色网91| 色情乱伦AV| 国产欧美日韩精品中文| 色哟哟511老熟女| 在线观看AV片| 久久久久久国产无码精品| 欧美日韩啪啪电影| 狠狠91| 日本二区不卡| 清纯唯美亚洲综合| 少妇被c 黄 免费观看| 色在线视频导航| 亚洲欧美日韩制服另类| 加勒比99999| 欧美亚洲小说| 成人无码在线超碰网| 欧差乱伦二三| 一区二区三区亚洲| 天堂种子在线www网资源| 五月天激情网图片| 欧美亚洲宗合色性图| 综合亚州欧美| 日韩极品无码B| 天天色综亚洲91污| 五月天丁香欧洲日韩| 亚洲诱惑| 欧美色网络| 国产一级不卡在线观看| 九九久久综合| 国产传媒日本欧美专区| 91天美传媒在线观看| 五月情色天| 丁香婷婷九月| 久久綜合很很很| 一区二区中文| 欧美性爱另类综合| 91处女视频在线观看| 欧美一区二区| 无码不卡八戒| 人妻精品综合中文字幕在线| 超碰在线第一页| 超碰精品日韩欧美国产| 大香蕉啪啪网| 中文字幕精品亚洲熟女| 操操啪| 亚洲网污污污污| 日韩人妻制服丝袜av| 亚洲男人bt天堂| 东京热综合久久一区二区| 亚洲αv一区二区三区| 久久久一区二区三区四曲免费听 | 综合久久六月久久婷婷| 天天日天天舔东京热 | 操逼视频亚洲| 麻豆性爱视频在线播放| 少妇久久久久久| 日日夜夜天天| 成人小电影网站tex| 五月丁香成人网| 九九九久| 志村玲子视频一区二区|