免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

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

ArcGIS Engine桌面GIS開(kāi)發(fā)實(shí)戰(zhàn):COM組件嵌入與離線空間分析 簡(jiǎn)介本資源是面向GIS開(kāi)發(fā)初學(xué)者與進(jìn)階工程師的ArcGIS Engine組件式開(kāi)發(fā)系統(tǒng)教程聚焦桌面端GIS應(yīng)用定制化開(kāi)發(fā)能力培養(yǎng)解決從理論認(rèn)知到代碼落地的關(guān)鍵斷層問(wè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)建與界面開(kāi)發(fā)另有9個(gè)PPT課件系統(tǒng)講解GIS基礎(chǔ)、Engine架構(gòu)、IMapControl/IFeatureLayer等核心接口、地圖操作、空間分析及.NET組件開(kāi)發(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組件式開(kāi)發(fā)不是插件也不是二次開(kāi)發(fā)平臺(tái)而是“可嵌入、可裁剪、可部署”的桌面GIS內(nèi)核級(jí)集成方案你手頭有個(gè)老系統(tǒng)用的是C# WinForms寫(xiě)的業(yè)務(wù)流程現(xiàn)在要加一個(gè)地圖模塊——能加載本地Shapefile、支持點(diǎn)選查詢、畫(huà)多邊形做空間分析但又不能讓用戶額外裝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功能的桌面端開(kāi)發(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開(kāi)發(fā)不是裝完VS就能跑它對(duì)開(kāi)發(fā)環(huán)境有剛性約束。核心矛盾在于ArcObjects SDK面向COM而.NET Framework版本、Visual Studio版本、Engine Runtime版本必須形成閉環(huán)。常見(jià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)證過(guò)的最小可行路徑。2.1 開(kāi)發(fā)機(jī)必備組件清單與安裝順序提示安裝順序不可顛倒。Runtime必須先于SDK安裝否則VS向?qū)o(wú)法識(shí)別組件。組件版本要求安裝說(shuō)明驗(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)目→模板中可見(jiàn)“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邏輯說(shuō)明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開(kāi)發(fā)的“最小運(yùn)行集”比全量引用20個(gè)DLL更穩(wěn)定也避免GAC沖突。2.3 初始化ArcGIS License必須在Main()入口前完成Engine所有功能的前提是獲取合法許可。許可初始化代碼絕不能寫(xiě)在窗體Load事件里而必須放在Program.cs的Main()方法最頂部。這是血淚經(jīng)驗(yàn)——某同學(xué)曾把初始化放在Form1_Load中結(jié)果首次調(diào)用IWorkspaceFactory.Open()時(shí)靜默失敗調(diào)試器無(wú)報(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(無(wú)法綁定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ù)說(shuō)明ProductCode.Engine表示目標(biāo)運(yùn)行時(shí)為Engine而非DesktopesriLicenseProductCodeEngine對(duì)應(yīng)Engine Runtime許可級(jí)別非ArcView/Editor/Info。若現(xiàn)場(chǎng)只有Engine Runtime安裝無(wú)Desktop此初始化即為唯一許可來(lái)源若同時(shí)裝有Desktop則Engine可降級(jí)使用Desktop許可但反之不行。3. 核心控件集成MapControl與TOCControl的雙向綁定與事件聯(lián)動(dòng)Engine開(kāi)發(fā)中MapControl地圖顯示與TOCControl內(nèi)容列表不是獨(dú)立控件而是通過(guò)IMapControlEvents2和ITOCControlEvents形成強(qiáng)耦合。課件源碼中第2個(gè)模塊MapAndTOCDemo完整演示了二者如何實(shí)現(xiàn)“圖層開(kāi)關(guān)同步”、“圖層順序拖拽”、“右鍵菜單聯(lián)動(dòng)”三大剛需。很多新手卡在“點(diǎn)了TOC里的圖層卻不高亮地圖上對(duì)應(yīng)要素”本質(zhì)是沒(méi)建立事件橋接。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)整圖層順序 }邏輯說(shuō)明SetBuddyControl()是TOCControl的“認(rèn)親”方法它內(nèi)部會(huì)訂閱MapControl的MapChanged、LayerAdded等事件并反向觸發(fā)TOC刷新。若跳過(guò)此步TOC永遠(yuǎn)顯示空白或舊狀態(tài)。AllowDragDroptrue開(kāi)啟圖層順序重排這是用戶最常提出的“為什么不能拖動(dòng)圖層”的根源。3.2 圖層可見(jiàn)性同步解決TOC勾選不生效的地圖刷新問(wèn)題TOCControl點(diǎn)擊圖層復(fù)選框時(shí)默認(rèn)只改變圖層Visible屬性但MapControl不會(huì)自動(dòng)重繪——必須手動(dòng)觸發(fā)刷新。課件源碼中采用事件監(jiān)聽(tīng)強(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è)置圖層可見(jiàn)性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ù)說(shuō)明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īng)顟B(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(); // 刷新地圖 }邏輯說(shuō)明HitTest()通過(guò)坐標(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開(kāi)發(fā)中數(shù)據(jù)加載不是“打開(kāi)文件”那么簡(jiǎn)單。Shapefile需處理編碼兼容性Geodatabase需管理工作空間與事務(wù)而要素編輯必須遵循IWorkspaceEdit生命周期。課件源碼第3模塊DataLoadingAndEditing覆蓋了這三類高頻場(chǎng)景其中“中文路徑Shapefile亂碼”和“Geodatabase編輯未提交”是兩大翻車重災(zāi)區(qū)。4.1 Shapefile安全加載繞過(guò)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ù)說(shuō)明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中編輯要素必須顯式開(kāi)啟/關(guān)閉編輯會(huì)話。課件源碼中EditGeodatabase.cs嚴(yán)格遵循四步法private void EditFeaturesInGDB() { IWorkspace workspace OpenGDBWorkspace(); // 打開(kāi).gdb目錄 IWorkspaceEdit workspaceEdit workspace as IWorkspaceEdit; try { // 步驟1開(kāi)啟編輯會(huì)話必須 workspaceEdit.StartEditing(true); // true表示編輯可撤回 workspaceEdit.StartEditOperation(); // 開(kāi)啟單個(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; } }邏輯說(shuō)明StartEditOperation()和StopEditOperation()構(gòu)成原子操作單元一個(gè)StopEditOperation()對(duì)應(yīng)一個(gè)StartEditOperation()StopEditing(true)才真正寫(xiě)入磁盤(pán)。若忘記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字段無(wú)坐標(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ù)說(shuō)明CreateGeometryDef()需傳入esriGeometryType.esriGeometryPoint明確指定點(diǎn)類型SpatialReference必須賦值給IGeoDataset而非僅設(shè)在字段上——這是90%新手遺漏的步驟導(dǎo)致創(chuàng)建的要素類在ArcMap中顯示“未知坐標(biāo)系”。5. 空間分析與GP工具調(diào)用緩沖區(qū)生成、空間查詢與地理處理模型嵌入Engine開(kāi)發(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。這比手寫(xiě)算法更可靠也比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}); } }邏輯說(shuō)明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)系雙重過(guò)濾課件強(qiáng)調(diào)IQueryFilter不是SQL執(zhí)行器而是空間查詢的“過(guò)濾器框架”。其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ù)說(shuō)明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工具無(wú)縫接入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}); }邏輯說(shuō)明AddToolbox()注冊(cè)后工具即可通過(guò)GetToolByName(toolName, toolboxAlias)獲取參數(shù)索引從0開(kāi)始必須與ModelBuilder中參數(shù)順序嚴(yán)格一致GetParameterValue()用于提取模型執(zhí)行后的輸出值是自動(dòng)化流水線的關(guān)鍵環(huán)節(jié)。6. 部署與避坑Engine Runtime打包、許可分發(fā)與64位兼容性終極排查寫(xiě)完代碼只是開(kāi)始部署到客戶機(jī)器才是真正的考驗(yàn)。ArcGIS Engine的部署不是復(fù)制DLL那么簡(jiǎn)單它涉及Runtime安裝、許可綁定、GAC注冊(cè)、甚至操作系統(tǒng)位數(shù)匹配。課件源碼附帶的DeploymentGuide.pdf和SetupBuilder項(xiàng)目正是為解決這些“寫(xiě)代碼時(shí)看不見(jiàn)上線后全爆發(fā)”的問(wèn)題而生。下面這5條是某公司交付12個(gè)Engine項(xiàng)目后總結(jié)的硬核避坑清單。6.1 避坑Runtime版本錯(cuò)配、許可未綁定、GAC未注冊(cè)的三重靜默失敗現(xiàn)象原因解決程序啟動(dòng)白屏無(wú)報(bào)錯(cuò)任務(wù)管理器中進(jìn)程秒退Engine Runtime未安裝或安裝版本與開(kāi)發(fā)版本不一致如開(kāi)發(fā)用10.7.1客戶機(jī)裝10.8在客戶機(jī)運(yùn)行EngineRuntimeSetup.exe與開(kāi)發(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后地圖無(wú)顯示axMapControl1.Map.LayerCount為0ESRI.ArcGIS.Controls.dll未注冊(cè)到GAC或VS引用路徑指向開(kāi)發(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)”且無(wú)詳細(xì)錯(cuò)誤GeoProcessor未設(shè)置Environment.OutputWorkspace或輸出路徑不存在/無(wú)寫(xiě)權(quán)限在Execute()前添加gp.SetEnvironmentValue(workspace, C:\Temp)確保輸出文件夾存在且程序有寫(xiě)權(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ī)要求不可繞過(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)則根本無(wú)法啟動(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)作已幫我避開(kāi)9次上線當(dāng)天的緊急召回。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色欲婷婷五月天| 99久久超级| 射久久丁香五月| 人人叉久| 99久久国产综合精品五月天喷水\| 久青草影院| 99无码视频| 五月丁香亚州综合网| 五月天啪啪视频| 五月天色在线| 人人舔人人色人人高潮| 婷婷五月色| 婷婷黄色五月| www.1024久久| 久久丁香网| 99热久| 日本色图综合| 美欧成人视频| 天天日天天色| 婷婷五月六月丁香| 婷婷五月色播放| 中文人妻主播久久| 婷婷五月天成人娱乐| 丁香五月激情综合婷综| 人人操人人添人人摸97| 碰人人97| 丁香五月激情欧美| 任你搞在线观看视频| 国产乱人偷精品人妻A片| 色婷婷激情| 天天综合天综合| 色婷婷五月丁香在线观看| 色v综合网| 久久九九re热| 天天色丁香| 丁香五月婷婷影视先锋| 婷婷五月综合中文字幕| 五月天婷婷激情六月久久| 狠狠狠狠狠| 色久女| 日本色视| 伊人www22综合色| 五月色网| 五月天成人小说| 思思久久青草热| 激情丁香淫荡婷婷| 久久婷婷丁香六月天| 激情六月五月婷婷综合网| 五月丁香婷婷综合| 亚洲色色在线| 亚洲中文乱字字幕线在永久| 亚洲综合色婷| 久久视频婷婷视频| 婷婷综合五月| 深爱丁香网| 亚洲五月婷婷| 婷婷六月丁香1| 五月婷婷六月丁香激情深爱| 2023天天日夜夜爽| 99精品福利视频| 97丁香五月| 五月天激情.com| 亚洲综合色五月| 综合激情五月丁香| 在线1青婷| 996日日爱| 久久这里只有精品视频1| 丁香五月亚洲天堂| 日韩在线观看亚洲| 在线只有精品| www天堂99| 丁香五月激情啪啪啪| 丁香亚洲色综合| 综合色七七| 十二区无码| 色五月婷婷影视| 天天综合网~91| 九九偷拍网| 免费人人操| 毛片新网地| 色欲丁香| 另类视频丁香五月| 婷婷四色五月| 丁香五月婷婷欧美性爱| 婷婷五月激情的图片| 久久性操| 五月天婷婷开心| 97婷婷狠狠久久综合9色| 色婷婷情片| 久久狠狠干| 无码色色色色色| 五月丁香综合网色欲| 六月五月久久丁香| 人妻激情在线| 五月婷婷色欲| 婷婷伊人综合中文字幕| www.婷婷五月天啪啪| 99色在线观看| 综合色播| 超碰啪啪网| 亚洲熟女色| 五月婷六月综合在线观看| 思99热精品久久只有精品| 开心深爱激情网| 免费黄色视频网址| 草久私拍| 激情婷婷五月天伊人在线观看| 五月婷婷丁香狠狠撸久久| 亚洲色婷婷| 开心五月网| 婷婷狠狠干| 国产超碰在线| 久久aaaaa| 66精品国产成人| 26UUU精品一区二区c〇m| 久草性爱| 国洲夜色亚热在线久久| 九九爱看亚洲| 来吧亚洲综合网| 超碰人人摸AV| 2020夜夜操天天爽| 特级西西4444www无码| 9999热免费视频视频| www.99色| 激情人妻综合| 青青草五月天| 夜夜操天天爽| 午夜69成人做爰视频| av第一二区| 97婷婷丁香五月天激情图片| 99热在线只有精品| 五月丁香久人妻中文| 囯产精品一品二区三区| 婷婷伊人网| 77777亚洲午夜久久| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 天天玩天天摸| 欧美六月| 99亚洲精美视频在线观看| 欧美va视频不用播放器的va视频网| 久久五月丁香| 久久久婷婷色五月资源网| 综合激情五月综合激情五月激情1| 月婷婷婷婷五月| 日本乱子人伦在线视频| 婷婷丁香一月| 第九色区av天堂| 超碰人人艹| 色狠狠色综合| 国产91在线视频| 男人天堂亚洲综合| 亚洲色五月| 91色九| 玖玖热视频| 香蕉曰比| 丁香五月五月婷婷五月天激情四射| 天天色播| 这里只精品| 玖玖婷婷五月天| 色五月天丁香婷婷色| WWW.桔色成人.COM| 久久综合站| 色亚洲婷婷| 综合色播| 天天激情视频| 免看黄大片AA | 色综合com| 99热碰碰热| 99超级碰碰| 色99视频| WWW.99热| 韩国真做片在线观看| 青青热久精品视频在线观看| 无码激情AAAAA片-区区| 天天天摸夜夜夜玩| 久热伊人在91| 久久婷婷内射| www.粉嫩av.com| 婷婷色网站| 亚洲操精品| 日韩成人AV在线播放| 婷婷五月网图片区| 天天狠天天叉| 婷婷瑟五月天久久综合| 九月色婷婷综合亚洲| 99热色在线精品| 教师性爱毛片| 亚洲综合五月天婷婷丁香| 五月婷婷草| 人妻内射视频| 伊人干综合| 婷婷久草| 欧美久久婷婷| 五月天婷婷香蕉狠狠超碰综合| 亚洲成人高清在线| 99久久这里只有精品免费官网| 丁香五月综合| 九九99视频| 男人視頻站| 五月丁香六月婷婷激情网| www.99婷婷| 婷婷五月天电影网| 伊人婷婷五月天av| 激情五月丁香社区| 三十熟女| 色婷婷A| 秋霞免费三级片| 婷婷丁香六月天| 色五月六月婷婷| 五月叮香啪| 人人操AV| 中文字幕色色色| 操碰久| 天天日天天爽夜夜爽| 99热这里只有精品国产免费| www.久9| 色色色免费视频| 六月丁香啪| 综合在线观看99| 97色永久免费视频| 激情五月婷婷综合视频| 婷婷网影院| 久久五月丁香| 天天草天天爽| 天天开心AV色综合婷婷五月天| 91日综合欧美| 九九色色| 色玖玖综合网| 色婷婷综合网站| 在线成人视频免费| 色色色色欧美| 激情五月综合网| 狠狠狠狠狠狠狠狠草| 美女91一起草| 欧美婷婷色| 99国产精品久久久久久久久久久| 色五月视频无码播放| 九九激情视频| 婷婷色五月91啪啪| www.色99| 九九AV在线| 国产五月婷| 九九热婷婷| 中国丰满熟女A片免费观| 九九亚洲| 五月丁香色| 色噜噜狠狠色综合伊人| 国产在线黄色| 久久精品天| 色情综合网| 大婷婷色呦呦噜噜色呦呦噜噜| 狠狠色性| 天天爽天天爽天天爽天天爽天天爽| 色婷综合| 99色在线观看视频者| 婷婷金品综合视频| 97影院一级片| 十一月婷婷激情四射| 五月激情婷婷六月丁香| 激情五月婷黄版| 久久99日本精品视频免费观看| 婷婷色导航| 99re在线精品视频| 五月精品| 99热在线只有精品| 天天爽天天摸人妻综合网| 亚洲小视频免费看| 中文字幕黄色片| 99在线综合视频| 影音先锋91在线资源站| 九九成人| 五月天社区| 亚洲中文字幕网| 五月丁香影视| 五月丁香六月色| 久热这里只有精品视频6| 激情综合4月| 欧美久久婷婷| 大香蕉婷婷| 六月婷婷久久| 99热主页日本| 五月天激情综合在线| 久9无码视频| 久久99jiu9| 九九精品免费视频99| 成人做爰高潮A片免费视频| 激情婷婷色色| 婷婷色播六月无码| 丁香六月婷婷综合麻豆| 六月丁香婷婷尤物| 亚洲激情区| 色五月开心五月激情五月| 亚洲五月天第一综合干| 亚洲AV激情五月综合网| 丁香五月在线观看综合| 天堂AV在线看| 九九婷婷五月天| 免费视频这里只有精品| 色五月六月| 五月婷婷开心综合| 久9免费视频| 激情综合五| 五月激情站| 天天爽天天摸天天爱| 韩国天天婷婷| AA久久| 久99视频在线观看| 亚洲人人操| 久久婷五月| 婷婷午夜| 大香蕉婷婷婷| 涩九九九九| 久久九九@| 97色婷婷成人综合在线观看| 婷婷久久午夜网| 久久视9精| 久草婷婷在线| 天堂久久性| 国产成人在线精品| 99热这是里只有精品| 色婷綜合网| 五月丁香激情深爱婷婷| 超碰国产在线观看| 狠狠穞A片一區二區三區| 黄桃AV无码免费一区二区三区| 狠狠精品干练久久久无码中文字幕| 色婷婷丁香花五月天| ztEJj| a色婷婷| 色999;丁香五月| 婷婷色五月亚洲| 性天天中文网| 大香蕉九操| 国产成人网址| 欧美日本高清视频99| 日本久久婷| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 日曰躁夜夜躁2026| www.99精品视频| 国产67194| 99热国产在| 五月丁香无码视频| 九九热最新视频| 婷婷视频在线碰| 久草九九| 亚洲性爱99在线| 亚洲综合五月天| 亚洲综合色婷婷| 色婷婷在线电影| 国产97色在线 | 日韩| 婷丁香久综合| 六月婷婷视频| 91男人操女人视频| 99热啪啪| 性色五月天| 97色色网| 中文精品在| 青青草蜜臀| 日本五月天网站| 99操| 色欲色天天香综合| va婷婷| 九九色热| 日本在线视频播放91| 99热这里只有精品一| 色99色| 青青草国产亚洲精品久久| 成人片在线免费看| 思思热再线视频| 色婷婷久久综合| 国产99久| 丁香五月狠狠综合欧美| 五月婷婷激情五月| 婷婷精品在线| 天天色粽合合合合合合合| 欧美成人一区二区三区在线视频| 三级黄网站| 精品乱码久久久久| 六月丁香婷婷爱| 99这里是99在线视频| 日日色综合| 玖玖爱伊人网| 五月婷婷狠天天色综合| 九九精品热| 日韩av网站在线观看| 久久久婷丁香五月| 极品人妻VIDEOSSS人妻| site:xmssd.com| enecarbon-materials.com污K127封锁请涟系@wip1688 | 67194国产| 亚洲无码成人| 五月丁香六月色| 99精品综合在线| 色五月婷婷五月久久| 激情五月六月婷婷| 亚洲操人| 久热大香蕉| 中文在线成人| 五月丁香五月综合欧美| 国产黄色av| 日日操,夜夜撸| 国产精品久久久久久亚洲毛片| www狠狠| 婷婷内射视频在线| 在线天堂9| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 99热最新| 五月丁香婷婷AV天堂| 丁香色婷婷| 五月婷婷激情综合| 日韩色色视频| www.99热最新视频8| 国产欧洲欧洲精品久久| 丁香无五月网| 少妇人妻人伦A片| 99在线观看视频蜜臀| 久草热在线视频| www,五月天com| 久热超碰| 婷婷丁香五月天在线视频| JAPANRCEP老熟妇乱子伦视频| 五月丁香五月丁香| 欧美成人AAA片一区国产精品| 婷婷五月丁香狠狠| 七月丁香婷婷 色色| 激情五月天色婷婷| 六月丁香婷婷综合狠狠爱夜夜爱| 色丁香五月婷婷| 六月 丁香 视频| 久久五月视频| 久久色大香蕉| 中文AV网| 九九精品网站| 亚洲最大成人综合网720P| 这里只有精品视频看看| 亚洲激情六月| 欧美色色色色色色色色色色| www.99视频| 久热这里| 韩国天天婷婷| 久久婷婷色色| 欧美成人猛片AAAAAAA| 九月婷婷丁香| 91人人妻人人操| 26UUU欧美激情一区二区| 九九碰九九爱97超碰| 久久色情| 99热这里只有是亚洲国产| 婷婷色五月天色| 亚洲综合99| 丁香五月婷婷啪| 亚洲乱码日产精品BD| 六月婷婷亚洲| 玖玖婷婷综合| 国产成人AV不卡| 五月天天视频| 爱之国产色情综合| 五月婷婷97| 五月丁香久久综合| 99热骚货| 91丨九色丨熟女| 亚洲va综合va国产va中文| www激情网| 国产99久9在线| 色五月婷婷综合| 操操操操操电影网| 日韩影院三级| 久久日婷婷| 五月丁香亭亭操逼| 五月天婷婷黄色| 91精品婷婷国产综合| 99只有精品| 色吧五月婷婷| 色波激情五月天| 日本nghangse中文字幕| 色色色色色网| 久久久久这里只有精品| 五月婷人妻| 久久aaaaa| 新激情婷婷| 日本不卡中文字幕| 思思 热 99| 色婷婷婷av | caop在线| 丁香五月天天高清在线| 五月激情丁香久久综合网| 五月天婷婷丁香人人操91| 日狠狠| 丁香婷婷婷五月| 看黄的网站18禁| 丁香五月婷婷欧美成人色图| 国产露脸150部国语对白| 激情视频综合| 婷婷五月天激情五月天深爱五月天| 色色操| 青青草网武则天| 国产欧美熟妇另类久久久 | 天天做天天爰天天爽天天无遮挡| 色综合网址| 精品九九婷婷| 99操九九网| 天天干,夜夜爽| 蜜桃人妻无码AV天堂三区| 五月婷婷婷婷婷婷艺术| 色播丁香五月婷婷操:屄| 成人版视频在线观看| 婷婷丁香五月社区亚洲| 国产XXXX搡XXXXX搡麻豆| 五月天大香蕉| 国产白丝在线一区| 丁香五月婷婷基地| 青草青青草| 久久成人精品视频| 色婷激情网| 好吊操这里只有精品| 久久人人九九| 中文字幕日韩成人| 97碰碰视频| 91人人爽人人操| www天堂99| 风流少妇A片一区二区蜜桃| 色优久久| 婷婷五月色播放| 99日本黄站| 激情网五月天| 91色在线 | 日韩| 激情六月丁| 性天天中文网| 婷婷开心六月| 最新丁香六月婷婷| 五月亭亭直播| 天天干一干| 99热思思| 九色自拍| 婷婷六月激情| 99热官网| 日韩青青| 91丨九色丨国产打屁股网站| 精品一区二区三区三区| 五月丁香成年黄色| 色婷婷六月天| 亚洲小视频免费看| AAAA亚洲| 亚洲色综久久五月| 人妻久久久久久久| 久热综合| 91久久久久久久| 免费无码毛片一区二区A片| 日产精品一线二线三线芒果 | 色色综合网站| 国产阿姨日皮艹逼内射视频| 99热精品一| 国产精品日韩十五区| 亚洲综合激情五月| 五月婷婷黄色| 婷婷丁香六月| 色9999综合久久| 五月婷婷激情日本| 91久久久久久| sewuyue第四色| 性天天中文网| 婷婷久久久久| 99在线免费观看| 新激情五月天| 久久 无毛。| 超碰免费99| 婷婷欧美色| 国产片色| 成人 视频免费观看网站| 天天噜噜| 99ri精品在线观看| 黄色五月婷婷| 五月丁香综合伦理片| 九九热这里只有精品在线观看| 婷婷五月天视频| 久久婷婷五月| 日韩AV免费| 亚洲AV中文在线| 狠狠香婷婷五月| 欧美婷婷五月| 婷婷精品视频| 99惹 精品在线| 激情五月天综合网| wwccc久久久| 丁香婷婷激情五月天无毒不卡蜜桃| 高清视频一区| 丰满老熟妇BBBBB搡BBB| 婷婷五月色情| 激情综合五月激情17| 五月久久亚洲| 久热九九| 99热在线极品极品| 丁香五月自拍| 婷婷五月中文字幕国产| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 五月婷婷六月丁香在线视频| 丁香久久五月婷综合| 人人摸人人搞| 免费观看2018www黄色操逼网站| 大香蕉99| 99色色色色| 香蕉综合在线| 色99最新网址| 99色精品视频| 玖玖热视频| 五月天开心网| 7777精品伊人久久久大香线蕉最新版| 99热免费网站| 人妻久久婷婷| 熟女色色一区二区| 婷婷久久欧美| 激情五月天com| 精品久久99码| 五月天激情网址| 激情五月天啪啪| 久久视频婷婷视频| 丁香五月综合激情久久潮喷| 成人五月天在线观看| 精品人妻伦一二三区久| 国产99久久久国产精品免费看| 久久99精品久久久久久噜噜| www.五月激情红色| 婷婷综合在线| 操人久久| 日日.c| 日韩AV免费电影在线播放| 思思99久久| 五月婷综合网| 操操操97| 丁香亭亭久久| 久久99综合| 97热超碰| 九九99一区| 激情综合色| 超碰男人色| 深爱激情六月| 99色爱| 五月天·www·com| www色色com| 久草嫩草在线观看| 丁香婷婷色六月| 天天干天天做| 成年AAAA色情| 67194国产| 色原狠狠综合| 国产无套精品一区二区| 亚洲成人在线观看av| 99热这里只有精品手机在线观看| 亚洲操逼网| 国产精品操| 天天天天天天操| 亚洲九九99精品视频在线播放| 天天综合天天做天天综合| 五月婷婷激情久久| 综合激情伊人影视在线| 99久re热视频精品98| 六月婷婷九月丁香| 久久总和99| 永久免费一区二区三区| 婷婷六月综合基地| 涩九九九九| 亚洲婷婷欧美婷婷| 538任你爽视频不一样的| 色婷婷五月中文字幕在线dvd| 丁香五月色情av| 日逼免费视频| 丁香婷婷综合喷| 五月天婷婷丁香社区| 性爱网五月婷婷| 五月综合六月婷婷| 九热视频在线伦| 欧美丁香婷婷五月天| 九九久久色| 丁香六月激情综合网| 久久丁香五月天| www久久99com| 无码 av电影| 丁香五月天av| 韩日AV片| 婷婷久月| www.99热视频| 丁香在线视频| 综合xx网| 综合日本婷婷| 色五月大| 丁香婷婷五月天网站| 99成人| 五月丁香婷婷激情在线视频| 丁香五月激情啪啪综合| 国产精品VA在线| 婷婷午夜精品久久久| 99热在线播放| 另类激情五月| 色色丁香五月天社区| 综合色五月| 六月丁香激情综合网| 婷婷五月天成人网| 丁香六月天堂| 黄色精品五月婷婷| 国产毛片欧美毛片久久久| 色婷婷五月天堂资源| 香蕉乱插| 狠狠色综合网| 婷婷五月婷婷五月天| 色综合色色色色色色综合| 99久视频| 99热日韩这里只有精品| 99ri网站在线观看| 超碰免费成人| 丁香六月婷婷综合麻豆| 99久免费视频| 五月天色婷婷综合| 99热这里只有精品2| 激情综合色图| 国产AV一区二区三区日韩| 激情五月丁香六月综合AVXXXX| 98色花堂98t.R| 激情五月婷婷| 日韩精品一品二区三区的使用体验| 99热香港| 五月丁香婷婷综合网色欲| 天天综合网在线| 五月花婷婷丁香| 伊人www22综合色| 婷婷综合仓库中文| 黄色五月婷婷| 色噜噜婷婷| 99久在线观看| 五月丁香亚州综合网| 狠狠干狠狠色| 情久久综合五月天| 婷婷激情五月天网站| 亚洲春色奇米影视| 久久ab| 五月天色婷婷网| 99色精品视频| 综合玖玖偷拍| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 婷婷久久图片| 玩熟女五十AV一二三区| 日韩另类| 99色视频在线| 开心五月婷婷在线视频免费观看| 9l视频自拍9l九色成人| 免费观看高清无码| 中文幕无线码中文字蜜桃| 久热亚洲| 99久热这里只有精品| 日日操夜夜操狠狠操| 欧美婷婷综合网| 九九综合九| 五月婷婷成人| 日韩成人中文字幕| 激情综合五月婷婷六月丁香| 襙逼网| 激情五月天婷婷直播| 欧美色图天堂网色| 婷婷狠狠香蕉综合| 香蕉婷婷五月| 另类小说五月天| 色99在线| 性一交一乱一交A片久久四色| www.色色色色| 五月婷婷丁香在线视频| 丁香亭亭久久| 亚洲一个色| 97超碰在线免费观看| 99热超| 97成人操| 日日操夜夜擼| 99热在线播放| 婷婷综合在线| 在线综合网| 亚洲操逼网| 亚洲熟妇无码乱子AV电影| 婷婷五月天开心网| 五月婷婷丁香狠狠撸久久| 九九热短视频在线观看| 婷婷另类开心| 天天肏屄夜夜爽| 蜜臀av无码久久久久久久久| aaaaa黄色| 思思热久久阴99| 久久曰曰| 噜噜色五月| 五月丁香六月色婷| 美女五月激情| 99r这里只有精品哦| 天天开心婷婷丁香五月| 丁香五月婷婷五月天在线| 五月丁香六月久久| 婷婷丁香六月综合激情站| 久思思久视频| 夜夜躁狠狠| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 青草视频在线观看视频| 怡红院AV亚洲一区二区三区H| www.色婷婷.com| 9色91视频| WWW色五月| 色五月色情| 婷婷久久天堂网| 天天综合网~91| 99色久| 久草大| 99re熱| 亚洲综合色丁香婷婷六月| 午夜精品777| 激情五月婷婷综合色播小说| 五月丁香色六月激情干大屄| 久婷婷婷| 五月天综合视频| 国产精品天天狠天天看| 男人操女人高潮91视频| 国产黄色av| 黄网在线免费播放| 天搞天天天天天| 婷婷五月天国产手机在线视频观看| 激情五月天婷婷激情| 色综合久久天天综合网 | 91日韩美女被插视频| 玖玖婷婷五月天| 丁香婷婷综合精品六月初| 五月婷婷co.m| 婷婷五月天在线综合| 欧美综合五月丁香六月婷| 色色激情五月天| 操碰色一区就去操| 国产44页| 激情小说婷婷小说| www色五月天| 色六月婷婷| 色九区| 日本色超碰| 人人性久久| 亚洲视频在线观看99| 亚洲婷婷丁香五月视频| 婷婷丁香五月综合| 日韩aaaaa| 久久99草五月婷婷| 色狠狠999综合| 色情五月天se| 久久激情五月| 202丰满熟女妇大| 婷婷94s| 五月丁香婷婷网网网网| 五月天艹天天| 激情丁香社区| 日日噜噜夜夜狠狠久久丁香五月| 超碰在线99热| 丁香五月激情综合在线观看| 丁香五月开心亚洲| 少妇高潮呻吟A片免费看软件| 欧美成人日韩| 国产99精品免费视频| 亚洲色婷婷五月天| 久热久| 三级毛片7979| 五月激情婷婷六月丁香| 人人操97| 久久99最新地址| 丁香五月婷婷亚洲人| 九九色热视频| www.操.com| 超碰国产AV| 97久久香草精品视频| 欧美影院婷婷| 欧美A片在线视频免费观看| 国产1区2区3区在线观| 婷婷色爱| 被强行糟蹋的女人A片| 秋霞日本免费毛片A片| 婷婷伊人久久综合| 人人干人人看| 91色综合网| 综合色色婷婷| 在线观看国产高清视频免费网站| 大香av| 五月开心深爱激情网| 99精品热| AAA久久久| 综合九九| .青娱乐天天操B| 67194国产| 五月婷婷影院| 激情婷婷。| 午夜九九电影| 中文字幕成人| 97久久草草超级碰碰碰| 五月天伊人| 九月丁香网婷婷| 欧美一区二区三区不卡影视| www.超碰| 六月婷婷av| 天天透天天爱| 91精品视频男人的天堂| 另类小说五月天综合网| 国产美女无遮挡裸体毛片A片| 成人婷婷| 五月停停999| 97成人在线视频| 六月婷婷七月丁香| 成人做爰A片免费看视频| 五月婷婷色色色| 日本一级| h亚洲| 色丁香五月婷婷| 日韩久久日| VfJxEwPH| 在线超碰免费| 久久激情五月天| 九九日伊人| 97婷婷丁香五月天激情图片| 黄网免费观看| 伊人激情啪啪| 五月天色社区| 97人人草| 噜噜在线| 五月婷婷综合网在线播放| 夜夜操狠狠操| 乱女乱妇熟女熟妇综合网站| 无码少妇高潮喷水A片免费| 99色综合网| 婷婷伊人綜合中文字幕小说| 久久婷婷五月国产激情综合片| 丁香五月天社区| 久久国产性爱A V| 亚洲综合九九| 天天粽合合合合| 伊人综合网站| 99热精国产这里只有精品| 婷婷91视频| 热99精品视频| 婷婷五月开心六月AV| 亚洲综合五月天婷婷| 久久青青日本视频| 亚洲天堂色色| 久久久8| www.久久| 激情五月天无码| 国产一二区爆乳_1国产日韩一区二区三-成人AV| 天天操九九插| 日本综合99| 色偷偷综合| 日本欧美国产| 99热婷婷| 婷婷在线免费| 久久182| 婷色五月天| 久久三级视频| 成人国产欧美大片一区| 在线观看玖玖资源免费观看| 五月天色欧美| 亚洲色视频| 91精品国产91久久久久青草| 97色色色| 亚洲婷婷激情五月天| 超碰国产AV| 亚洲色综合| 久久这里都是精品视频| 最新婷婷五月丁香| 99久在线视频| 午夜丁香六月婷| 91夫妻视频| 五月婷婷啪啪综合网| 六月婷婷av| 97在线观视频免费观看| 色J香五月天| 五月色色色| 丁香婷婷成年| 丁香五月天综合| 五月丁香婷婷综合久久| 欧美激情综合色综合啪啪五月| www.sezonghe| www.婷婷.com| 国产黄色在线观看| www.婷婷.com| WWW夜夜| bukadeavzaixian| 久久性爱视频| 久久机只有这里精品| 99er热精品视频| 五月丁香六月欧美综合网站| www.五月天社区| 丁香五月婷婷激情网| 天天综合网~91| 99久久婷| 色婷婷五月天不卡| 熟女色专区| 丁香婷婷六月| 日韩另类| 六月激情久久| 亚洲五月综合色播| 999激情视频| 免费无码毛片一区二区A片| 色哟哟www| 五月天激情网址| 色久女| 秋霞AV吧| 日本狠狠色| 久久婷婷亚洲| 五月丁香啪啪激情| 婷婷伊人网| 五月停停99| 国产精品一区在线观看你懂的| 69色婷婷| 亚洲六月婷| 色婷婷手机在线| 9精品一区| 精品人妻在线免费观看| 久久九九热视频| 婷婷色五月在线视频| 日日干综合| 九九热10| 亚洲av网址| 182无码| 婷婷五月天影院| 亚洲成人AV在线播放| 中文字幕 久久9999| 丁香亭亭久久| 色碰碰视频| 超碰五月婷婷五月天| 激情婷婷丁香五月| 99久久性爱| 欧洲亚洲免费视频9| 99热免费在线| 日日干夜夜撸夜夜骑| 99热 这里只有精品 国产 日韩| 色五月,婷婷大香蕉| 超碰69天堂| 色婷婷在线视频| 久99久热| 久9免费视频| 五月丁香在线综合| 天天天天天天天操| 久热最新视频| 五月婷婷五月天激情视频| 91婷婷丁香五月天免费视频网站| 久xxxx| 成人网页在线观看| 一本九九色| 99re资源在线视频导航| 综合色图婷婷| 99国产精品久久久久久久久久久| 五月天伊人| 欧美性丁香色色五月天干干| 99狠狠色| 亚洲综合1024| 99热精品在线观看| 久久天天| 日韩在线一级| 狠狠干,狠狠操| 六月婷婷色综合| 97五月天| 色五婷婷开心缴| 可以看的av| 久久美女五月天| 人妻少妇色综合| 激情av在线| 五月天婷婷综合网| 久久婷狠狠色| 五月丁香六月婷综合成人综合| 夜色综合网| 性视频久久| 久久99精品久久久久久噜噜| 丁香六月激情四射| 日本超碰在线| 日韩成人综合网| 26uuu| 99九九视频| 99热亚洲| 狠狠综合久久| 狠狠爱综合| 开心五月婷婷激情| 熟女人妻视频| 91久久精品国产91性色TV| 香蕉久久五月| 久久五月丁香综合| 五月婷婷综合影院| 久久久WWW| 久久精彩免费视频精彩免费视频| 韩国情人在线电视剧免费观看高清版全集 | 五月天婷婷狠狠| 91视频综合网| 99,色| 精品九九视频| 日日狠狠久久偷偷四色综合免费| 九九热最新| 日韩在线视频中文字幕| www.狠狠| 午夜成人av在线| 亚洲AV永久无码影院黑人| 热五月婷婷| 操笔无码| 人人干AV| 婷婷狠狠97| 亚洲无码99| 高潮毛片又色又爽免费| 97在线视频 欧美| 亚洲av网站| 日韩黄黄| 五月婷婷五月天激情网| 性爱视频久久| 色婷婷小说网| 91av成人| 99在线视频免费| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 天天人人天天爽| 激情VA视频| 色天堂A| 中文字幕丰满孑伦无码专区| 五月天怕怕| 亚洲区视频| 中文字幕 久久9999| 色爽九九| 色爱综合网| 99日本视频| 婷婷五月天Av| 久久99性爱| 99热亚洲| 丁香婷婷浪潮AV久久综合| 五月 激情视频| 国产26uuu视频| 另类激情综合| 99精品视频在线观看| 欧美伊人9| 一点色成人网| 777久久久| 日本色婷婷综合| 激情五月婷婷网| 99热国产| 日韩一级网站| 久久五月天精品视频| 直接看的AV| 免费无码毛片一区二区A片| 99综合成人视频在线观看| wWwCom夜操wwW| 久久a热| 国产亚洲99久久精品| 婷婷国产欧美97| 色五月视频无码播放| 99riAV国产精品视频| 久久人人添人人爽添人人片αV| 欧美婷婷| 久久婷婷六月综合| 无码激情AAAAA片-区区| 超碰在线视屏| 九九精品在线网| 激情久久久| 久草性爱| 伍月婷丁香花全集| 可以免费观看的AV| 色婷六月| 26uuu亚洲欧美| 久热婷婷| 999热在线视频| 性日本精品| 成人无码精品1区2区3区免费看 | 丁香五月天社区| 日本久热| www夜夜操com| 这里只有精品96| 九热在线这里有精品6| 久久婷婷综合国产| 久久天堂女人| 呦呦视频无码播放| www色五月| 超碰激情网| 中文字幕激情综合| 91麻豆国产三级精品福利在线观看 | 欧美激情综合五月色丁香| 另类视频综合| 殴美日韩成人| 99热在线看| 五月丁香青草综合啪啪| 久久久久网站| AA丁香综合激情| 婷婷五月综激情| 久久日九九| 丁香五月综合在线播放| 五月激情小说| 亚洲五月天综合色| 久久92| 另类 在线| 69色婷婷| 国产女18毛片多18精品| 五月天久久www| 极品人妻VIDEOSSS人妻| 26UUU| 婷婷欧美| 五月丁香啪| 综合激情sV| 久久538| 91无码高清| 亚洲熟妇无码乱子AV电影| 月丁香久久久| 99色免费观看全部| 伊人超碰在线| 久久久五月婷婷| 97久久综合网| 五月激情婷婷开心| 欧洲色| 深爱激情网五月| 亚洲精品字幕在线观看| 婷婷五月天,影院| WWW.国产| 天天干天天色天天干| 久久免费高| 99人人操人人摸| 色婷婷五月丁香色| 无码人妻一区| 久久玖玖综合| 色婷久| 99色综合网| 99热精品在线在线| site:xiongshengzz.com| 操操啪| 婷婷五月精品在线| 国外亚洲成AV人片在线观看| 深爱激情AV| 色欲色欲久久宗合网| 欧美日韩AAAA| 综合 蜜月 婷婷| 五月天丁香成人| 色色五月天婷婷| 尔尔AV一区| 另类色视频| 欧美A级成人婬片免费看理论| 26uuu亚洲欧美日本| 99热人人操人人操| 97亚洲婷婷| 99热 这里只有精品 国产 日韩| 五月天激情小说| 婷婷激情鹿城五月天| 五月丁香婷婷激情爱爱| 欧美在线视频免费播放| 99热这里都是精品| 天天日天天插| 丁香五月在线观看完整版| 亚洲天堂无码| 久久网日本| 婷婷丁香六月影视| 国产人人操| 十一月婷婷激情四射| 日韩成人精品中文字幕| 五月丁香婷婷基地| 一起草Av| 色区久久| 五月六月婷婷| 午夜大香蕉| 婷婷五月丁香图片人人操| 五月婷婷激情久久| 在线成人网站| 九九热123| 99在线资源| 99九九这里有免费视频| 97操女视频| 26uuu国产| 91丨九色丨东北熟女| 中文字幕成人版| 日日婷婷不卡| 人人摸人人澡人人| 嫩草国产| 91视频五月丁香| 深爱激情五月婷婷| 五月丁香综合|