99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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热精品在线观看| 香蕉大综综综合久久| 在线看片av| 操你av| 国产a视频| 中文av网| 丁香六月视频免费观看| 东京热五月婷婷| 五月丁香福利| 欧美日本国产欧美日本韩国99| 综合色五月天| aaaaaa片| 激情欧美婷五月| 久草五月婷婷| 国产成人在线精品| 大香线蕉伊人| 久久婷婷五月综合激情国产| 婷婷的色色五月天| 国产亚洲99久久| 丁香五月天天久久综合小说| 国产成人AV| 久久婷婷网站| 精品人人操| 色玖玖综合网| WWW色色色COm| 另类A片| 91性人人| 天天操中文字幕| 五月婷婷9| 亚洲乱码日产精品BD| 婷婷综合五月| 色色a| 久草视频一,二三四| 中文在线视频久1| 丁香伊人综合| 激情九九这里只有精品| 5月婷婷激情在线| WWW.开心五月天.COM| 天天网站天天爽| 欧美在线干| 午夜成人天堂久久无码日韩久久| 久99视频| 九九热再线九九视频免费在线观看| 色婷婷久久综合| 玖玖99免费视频| 在线观看欧美| 国产色丁香| 成人丁香五月| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 五月婷网| 97五月天婷婷午夜| 伍月婷丁香婷| 婷婷激情欧美| 超碰在线免费9| 超碰97免费在线| 色婷婷五月天激情在线观看| 99色婷婷视频| 97五月婷| 色人久夂| 夜夜骑日日操| 人妻久久久久久久 | www色色色com| 婷婷五月永远18免费久久久| 五月激情五月婷婷五月天在线| 五月丁香基地| 久久精彩免费视频| 精品人妻久久久久久| 91操熟女| 亚洲欧洲另类图片| 亚洲视频丁香网va| 婷婷娱乐丁香综合网| 五月丁香啪啪综合网| 97在线观看| 丁香婷婷久久 | 五月天色婷婷综合| 色播五月天激情| 婷婷久久综合| 天堂网亚洲色图| 色五月激情综合| 色婷婷欧美| 无码一区二区三区四区五区| 五月丁香欧美在线| 久久久五月婷婷| 五月天亭亭俺也| 五月婷婷丁香大陆免费| 丁香丁婷五月激情| 五月婷视屏在线观看| 99热精品在线| AV中文网| 五月丁香六月婷婷中文版| www色婷婷久久综合久色| 热99热9| 五月天停婷基地| av九九| 一本婷婷丁香久久| 久er7久热| 五月丁香六月婷婷网站| 色色99| 性爱111111| 婷婷丁香五月麻豆| 婷婷色五月婷| 色亭亭丁香五月天| 欧美婷婷五月无砖| 天天婷婷综合亚洲亚洲| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 91狠狠综合久久久| 激情文学 综合 九月| 美女精品一级不卡视频| 色五月首页| 五月婷婷,六月丁香| 国产成人AV不卡| 色婷久| 五月天开心婷婷久久| 激情五月丁香亭亭| 能直接看的AV网站| 五月天激情婷婷| 五月婷婷久久久| 99热成人永久免费| 伊人九九68| 激情五月综合久久| 亚洲无码99| 午夜69成人做爰视频| 99婷婷五月天激情| 人人视频人人干人人做| 亚洲图片 丁香婷婷| 99无码免费视频| √天堂资源在线人妻熟女| #NAME?| 97五月天婷婷午夜| 色综合五月天| 综合狠狠五月婷婷| 天堂A∨在线| 久久99热这里只有精品23| 免费视频99| 婷婷五月天社区| 五月丁香婷婷成人版| 色久免费| 三级黄色大片视频| 婷婷色香六月综合激情| 五月丁香久久| www.婷婷网| 伊人久久大香网| 人人草碰| 色播五月婷婷五月| 色情五月| 99爱视频在线观看| 一本色道久久综合狠狠躁小说| 狠狠干.com| www激情| 婷婷五月av| 久久综合9| 啪啪激情网站| 9精品一区| 99热这里只有精品国产首页| 偷拍九九五月丁香婷婷| 99操碰| 快乐激情五月色婷婷| 99久久99九九99九九九| 99惹在线精品免费观看| 五月婷婷 激情按摩| 99热这里有精品24| 色婷婷瘦婷婷日韩| 色婷婷亚洲六月婷婷中文字幕| 亚洲人妻AV| 伊人网欧美在线男人天堂五月丁香| 五月天婷婷操逼视频| 久久99日本精品视频免费观看| 五月婷婷六月基地| 欧美久久久久久久久中文字幕| 97丁香五月| 五月 婷 久| 99精品在线下载| 野战J办公桌椅H| 五月丁香亭亭成人电影| 这里只有精彩视| 丰满少妇乱A片无码| 婷婷.com| 九九热a| 日本久久精品18| 亚洲图片 丁香婷婷| 色色网站免费观看| 婷婷成人在线| 色婷婷久久| 婷婷色无码| 高清一区二区三区日本久| 九九热这里只有精品12| 97人人操| 碰碰人人人| 丁香六月婷婷| 婷婷五月天激情在线观看 | 五月开心激情网| 欧美久久久久久久久中文字幕| 婷婷五月综激情| 2025最新亚洲激情在线| 激情五月色婷婷| 久热久| 天天操人人干| 五月婷色丁香| 久久久人妻久久久| 97热久久| 久久综合综合综合| 日本少妇裸体做爰高潮片 | 97精品自拍视频| 综合热无码| 国产亚洲成AV人片在线观黄桃| 婷婷五月天免费| 91综合视频在线| 大香蕉手机视频| 婷婷丁香五月精品| 九九99香蕉在线视频播放| 99人妻碰碰碰久久久久禁片| 99精品在线下载| 伊人久热91| 成人电影一区| 九九热这里只有精品在线观看| 老妇操B| 99这里都是精品6| 婷婷五月天AV激情| 日韩性视频| 欧美大肥婆大肥BBBBB| 婷婷五月色情天| 97干欧美| 激情五月天色色色| 狠狠999| www网站在线观看| 色热久| 五月五丁香婷婷| 碰碰操91| 97操女视频| 日日天天干| 五月色丁香视频精品| 日本久久天堂| 五月婷婷开心深| 爆乳熟女-区二区三区| 噜噜干日本| 大香蕉av在线| 碰超亚洲| 69精品人人人人| 狠狠色狠狠操| 国产成人精品一区二三区熟女在线 | 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 婷婷五月丁香五月基地| www.狠狠| 婷婷丁香五月激情| 亚洲AV人人操| 直接看的av| 77799热| 成人免费高清在线播放| 奇米色大香蕉| 亚洲超碰青涩| 亚洲色就是色色色| 国产成人精品一区二区三区视频| 五月婷婷之综合激情| 五月天桃色深爱网| 久久婷婷综合五月趴| 久久aaa| 九九热99免费视频| 香蕉伊人综合| 超碰色女人| 99热777| 五月婷婷色色| 色色五月丁香| 色播丁香| 亚洲激情亚洲激情 | 中文网AV| 日韩欧美一区二区三区四区| 91超级碰碰碰| 五月丁香久久综合| 色五月综合网| 色五月网址| 丁香婷婷色情| 综合久久五月天| 天堂网色婷婷| 激情丁香久久| 99操免费视频| 182TV亚洲| 色综合狠狠色| 九九综合色综合| 99噜噜噜| 午夜激情综合| 超碰99在线观看| 男人天堂99| 亚洲色图45p| 婷婷中文字幕网| 人人妻人人澡人人爽| 夜色爱爱亚洲| 大伊香蕉玖玖爱| 色五月大| 色婷婷久久综合| 日本超碰在线| 久久久久久久久久久久久久人妻视频| 成人婷婷桔色| 1010日日无码| 六月丁AV| 久久久久久久久99精品| 丁香五月天激情视频| 爱射综合| 国产精品18久久久| 9一精品视频观看| 开心激情网在线| 就去涩涩丁香五月天| 久久五月婷天天干| 美欧成人视频| www.色婷婷.com| 亚洲黄色影视| 久久人人添人人爽添人人片αV| 五月婷婷欧洲| 91人人网| 人妻AV在线| 久久精品凹凸分类| 韩国情人在线电视剧免费观看高清版全集 | 99思思| 婷婷丁香六月| 久久人人超| 国产精品久久久久久五月天加勒比| 26UUU欧美激情一区二区| 成人做爰A片免费看视频| www.日日夜夜.com| 五月激情综合网| 99视频在线| 99免费超碰在线| 超碰99热在线观看| 五月婷婷丁香啪啪| 婷婷开心激情五月激情网| 99精品视频网| 精品一二三区久久AAA片| 九久九精品| 日本WWW九九九| 亚洲精品99| 另类婷婷丁香| 亚洲婷婷丁香| 丁香五月天天久久综合小说| 97婷婷丁香| 热九九在线| 久久久人妻门| 天天天天操| 精品成人在线| 日韩999| 五月开行婷婷色五月| 激情综合网五月| 色色色干| 天天爽夜夜爽夜夜爽精品视频| 国产精产国品一二三在观看| 另类图片激情五月天| 婷婷五月久久| 狠狠五月天| 9久热在线视频| 亚洲网视屏| 色操b| 99热这里只有在线| 熟惀91九色在线| 插插干干干色| 亚洲天堂婷婷| 天天做天天爱天天要| 精品99*| 亚洲婷婷五月天激情综合| 国产人妻777人伦精品HD| 永久的网站AAAA| 天天色宗合| 色婷婷综合久久久久| 五月丁香啪| 九九热婷婷| 色婷婷综合影院| 婷婷 丁香 久久| 久色视频| 激情五月天色色网| 国产精品涩涩涩视频网站| 亚洲精品va| 久久婷婷五月天| 碰97久久| 大香蕉av在线| 久久9热| AV天堂婷婷五月天| 久久er99热精品一区二区| 91色噜噜狠狠狠狠色综合| 无码激情AAAAA片-区区| VA婷婷| 大香蕉婷婷久久| 婷婷日韩| 久久小片| 丁香婷婷五月综合欧美另类| 激情久久天天| 极品人妻VIDEOSSS人妻| 狠狠肏综合网| 五月天综合网| 五月天成人伊人| 丁香五月在线播放| 五月综合亚洲色| 久青操| 免费啪啪啪网站| 色婷婷狠狠干芒果TV| 少妇人妻丰满做爰XXX| 91猫咪国产在线播放| 丁香五月婷婷天| caopeng97人人| 99精彩视频| 日日操人人操| www超碰| 玖久久网站| 久久久久网站| 五月婷婷婷自由综合| 99久久精彩视频| 九九久久网| 伊人狠狠综合| www.激情.com.| 99热97美女| 国产亚洲在线| 丁香五月婷婷在线观看| 丁香五月婷婷亚洲色图| 婷婷娌伦网| 少妇大叫太大太粗太爽了A片 | 夜夜资源站| 亚洲国产成人在线| 久久3p| 99精品在线观看视频| 久99热在线观看| 亚洲六月婷婷| 三级三久久线久久99久目本WW| 91热久久| 久久AAAA片一区二区| 亚洲激情四射| 亚洲、热| 欧美久人人| 99久久99久久| 亚洲va日| 亚州第一黄网| 激情亚洲婷婷| 丁香六月天婷婷在线| 最近中文字幕大全免费版在线| 日本人人草草| 99精品偷自拍| 免费亚洲婷婷| 狠狠色丁香婷婷| 色呦呦美女| 久久这里只有精品热在99| 久久久久久五月天| 激情综合另类| 激情网综合| 欧美激情Va| 五月天社区| 丁香五月人妻| 国产免费av在线| 五月婷婷综合在线视频| 97超喷视频在线观看| 国产精品久久久爽爽爽麻豆色哟哟 | 先锋影音av色五月天资源站| 少妇搡BBBB搡BBB搡毛茸茸| 91色久| 色噜噜狠狠色综合网| 人妻久久久久久久| 丁香五月偷拍| 色色色在线观看| 另类综合国产| 久久婷婷综合色丁香| 日本久久天堂| A久网| 亚洲黄色精品| 色和综合网| 欧美影院| 噜噜噜噜在线| 久久综合激情| 曰本aaaaaa丈片| 久久五月综合| 九九精品网| 免费AAAAA网| 91人人妻人人操人人爽| 九九碰九九爱97| 五月丁香人妻| 日日干日日s| 99久精品| 久思思久视频| 五月丁香六月婷婷精品| 五月天影院婷婷在线观看| 波多婷婷久久| 久久久久人妻| 99色久| 97超级免费无码| 很很色丁香久久停停| 亚韩精品视频1区| 激婷网| 色开心五月丁香| 热九九九九| 婷婷人人操| 五月丁香婷婷综合久久| 五月天婷婷日日爱| 久久人人九| 99热免费精品热久久66| 五月丁香六月婷婷免费视频| 丁香五月五婷| 成人五月天丁香| 九九99精品视频在线观看| 一级性爱视频| 婷婷在线中文字幕| 成人国产网| 五月丁香花激情综合网| 日韩av高清| 婷婷六月色| 五月婷婷六月丁香| 99视频这里只有精品10| 天天爽日日搞| 五月丁香A片| 五月丁香色婷婷久久| 久久婷婷丁香花综合网| 99精品在线| 五月丁香欧美综合| 婷婷 丁香 精品| 色亭亭五月天网扯| 日本美女天天日天天爽| 天天爽夜夜爽夜夜爽精品| 欧美婷婷色五月网| 97久久综合网| 丰满少妇乱A片无码| 99久久久精品| 日韩欧美一级大黄网站| 五月天自拍网| 亚洲成人一区| 狠狠色丁香| 六月婷色| 五月婷婷九| 久久九⑨| 99伊人婷婷在线| 男同色五月开心五月激情五月| 午夜精品久久久久久久爽| 五月丁香成人网| 色情丁香五月婷婷精品| 亚洲愉拍99热成人精品| 五月天婷婷綜合院| 久婷五月| 爱久综合| 五月色婷| 99色在线视频| 嫩BBB搡BBBB榛BBBB| 99性视频| 亚洲视频在线观看| AV成人在线网站| AA片在线观看视频在线播放| 大香蕉久久视频久久视频| www色婷婷| 99热综合| 在线只有精品| 久热黄色| 丁香色婷婷五月天| 六月丁香网| 色婷婷综合网| 国产一区二区av免费| 日韩成人中文| www.cao.com久久| 男人的天堂在线婷婷| 色开心五月婷婷丁香HD| 色色色色区| 综合激情肏逼网| 久久精品4| 五月天激情综合在线| 久久精品爱爱| 大伊久久| 亚洲精品婷婷| PORNY九色9l自拍视频成人| 精品成人在线观看| 五月天婷婷小说| 777色色色| 丁香六月婷婷缴情欧美| 国产色色视频| 激情亚洲婷婷| 少妇2做爰HD韩国电影| 9热网站| www:99热视频| www.henhenl| 九九热99re8热免费观看| 五月天色婷婷av| 五月天激情子轮| 日本色婷婷| 亚洲热久久| 伊人91| 激情五月婷婷丁香综合网| 婷婷五月丁香综合激情| 亚洲avjiujiur91| 成人丁香婷婷五月天| 天天干天天操天天射| 五月花免费视频| 大香蕉久久青青| 丁香五月天堂网AV| 人人干人人干骚美女| 中文国产五月天| 久草a片| 欧美丰满熟妇BBB久久久| 五月天婷婷午夜丁香| 午夜色婷婷| 波多野结衣AV无码Porn| www.激情.com.| 五月激情基地| 99日本黄站| aV直接看| 97九色| 色综合色综合色综合| 99ri国产| 五月婷婷婷色| 久久这里只有精品07| 噜噜噜噜综合在线| 欧美成人精品三区综合A片| 青青草Avb在线| 婷婷激情五月天网站| 日本操B视频| 99性爱视频| 婷婷99丁香| 婷婷六月插屄激情| 97资源碰碰| 色涩视频久久| 五月天成人在线视频丁香| 色色色色色网| 五月婷婷涩涩爱| 国产伦亲子伦亲子视频观看| 美英法精品无码免费视频| 99热综合色图| 婷婷五月天亚洲综合网| 色丁香婷婷| 五月天五月天激情网| 国产欧洲欧洲精品久久| 六月激情丁香一道本7777| AⅤ色区| 丁香五月大香蕉| 亚洲啪啪自拍| 婷婷五月色网| 五月综合视频| 激情五月深爱五月| 夜夜爱伊人| 黄色av网站在线免费播放| 六月婷婷视频| 婷婷五月天久久| 国产在线黄色| 五月婷婷在线观看黄| 99视频免费播放| WWW、日本色丁香、co m| 99热久| 大香蕉婷婷色| 色五月激情综合| 9精品国产在热久久| 色五月成人在线| 97碰在线视频| 蜜臀综合久草| 国产XXXX搡XXXXX搡麻豆| 国产精品99久久久久久久女警| 深爱丁香网| 99九九久久| 婷婷综合在线播放| 91干在线| 人妻久久婷婷| 综合激情五月天| 欧美在线看| 99免费在线视频| 99精品高潮| 五月婷婷色五月| 性爱七区| 大天天伊人| av成人在线播放| 久久激情五月| 婷婷五月天综合AV| 亚洲欧洲国产精品| AV在线观看网站| 久久 婷婷 五月天| 大香蕉五月天婷婷| 婷婷五月天堂| 97人人射| 五月天伊人| 九九热这里都是精品6| 丁香六月激情蜜桃| 99视频色在线观看| 深情六月婷婷综合久久| 婷婷丁香69精华| 成人网在线视频| 99啪啪视频| 激情五月影院| 插插五月天| 99天天操夜夜操| 99精品大片| 色五月婷婷综合在线| 色玖玖综合网| 天天 日综合| 久久9热好| 免费不卡狠操美女视频网 | 99热6精品| 99色精品视频| 日韩黄在免| 丁香色五月天| 国产综合视频婷婷| 午夜69成人做爰视频| 高清无码中文字幕aVDV| 另类国产区| 日韩999| 婷婷在线五月天观看| 精品9久| 五月天播播| 婷婷久久综合久| 涩涩五月天| 天天爽天天摸| 天天色图| 97在线99| 超碰人人射| 色婷婷成人影片| 日本韩国视频在线观看社区免费的9| 五月精品| 99这里只有精品8| 婷婷久久天堂网| 亚洲中文字幕av| 亚洲99在线视频| 日韩av网站在线观看| 怡红院视频| 亚洲bt丁香五月天婷婷激情小说| 五月六月婷| 殴美日韩成人| 五月天激情国产综合婷婷婷| 精品色色色| 超碰在线观看9| 99热这里| 99精品女人天堂| 五月丁香久人妻中文| 色婷婷AV五月天| 天天干,天天日| 99热手机在线精品| 91综合色噜噜| 成人操呦av| 另类激情综合| 强壮的公次次弄得我高潮A片日本 | 亚州欧美黄色电影| 美女天天久久| 久久九九免费视频| 亚洲12p| 久久WW| 久久久久久丁香五月| 天天综合网91| 超碰婷婷五月| 欧洲婷婷五月天| 丁香五月电影| 欧类av怡春院| 日本九九九九| 五月婷婷五月天| 八戒青柠影视剧在线观看| 激情综合另类| 激情五月天综合图片小说网站| 久久五月天婷婷| 97caop| www.久久| 99狠狠色| 久久99免费视频| 色综合五月在线| 五月婷婷熟女| www,99色| 精品草原久久视频| 专区无日本视频高清8| 五月色网| 超碰资源在线| 五月情涩综合婷婷| 日日噜狠狠色综合久久| 天堂成人A片永久免费网站| 色九月欧美| 激情五月天婷婷久久久久久久久久久| 五月丁香啪啪综合| 国产综合丁香五月天| 五月婷婷视频ab| 99精彩视频| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 99噜噜| 深爱激清网| 丁香五月婷婷综合激情哟哟哟| 精品国产人人爱人人| 高清不卡一区| 中美月韩免费A片| 丁香五月av| 日本3级片一区2区| 人。妻久久| 久久久色情| 丁香激激情网| www.91五月| 婷婷五月天亚洲精品| 国产精品一区在线观看你懂的| 思思久久网| 久久国产色| 午夜爱爱网站| h亚洲| 996热re视频精品视频| pom538精品视频| 五月综合激情网| 成人网站免费在线播放| 日韩啪| 99久视频| 激情六月天| 人人爱天天摸摸天天爱| 强辱丰满人妻HD中文字幕| 五月天色官网| 色婷婷色综合久久精品V| 婷婷深爱五月丁香网| 激情五月天。| 五月激情综| 99热丁香五月| 色啪影院| 婷婷久久五月天亚洲欧美国产日韩在线观看| www.99在线| 婷婷天天综合| 婷婷五月天大香蕉在线视频观看| 久久丁香综合| 日本不卡中文字幕| 九色PORNY9l原创自拍| 婷婷色五月亚洲| 丁香婷婷成年| 干一干xxxx| AV九九| 激情内射人妻1区2区3区| 丁香五月婷婷乱| 欧美熟妇一区二区三区| 欧美精品啪啪| 天天爽日日搞| 91综合网| 久久视频这里有精品99| 米奇激情婷婷| 色婷婷91| 99精品无码| 丁香五月六月婷婷殴美综合| 99久久玖玖| 五月婷婷成人| 欧洲亚洲免费视频区| 色色综合网www| 激情爱爱网站超大免费| 五月天另类小说亚洲| 99碰碰碰| 午夜婷婷| 色欲色香综合网| 久婷| 31色区视频免费看| 97超碰人人操| 亚洲婷婷激情五月天| 久久婷婷综合基地| 91碰免费视频| 丁香六月婷婷开心| 中文字幕乱轮| 另类小说五月天| 夜夜嗨一区二区三区直播内容 | 秋霞影音91人妻久久| 婷婷六月激情综合| 99综合久久| 婷婷娱乐丁香综合网| 丁香五月综合| 久草x色在线观看99 | 日韩成人精品中文字幕电影| 婷婷五月色综合| www.色擼擼.com| 久久99精品九九久久久婷婷| 欧美在线视频99| 91九色丨国产丨爆乳| 五月丁香六月色婷婷| 玖玖国产视频一区| 超碰97色| 中文超碰视在线| 欧美性爱五月天| 男女99免费视频| 天天激情| 亚洲 五月 婷婷 成人| 五月天日日操夜夜操 | 婷婷在线五月天观看| 91尤物九色在线| 日日操无码| 久久色六月| 日韩色色视频| 99综合免费视频| 激情综合网五月婷婷| 激情六月一二| 婷婷激情鹿城五月天| 色综合色综合婷婷热| 九九超日本| 丁香婷婷老司机久操| 丁香五月婷婷啪啪| 亚洲人人操| 大香蕉婷婷丁香天堂AV| 五月丁香自拍| 另类综合色| 色色cOm| 久久婷婷操| 色五月五月丁香| 狠狠看狠狠| 天天做天天爱天天爽夜夜揉| 97人人搞| 欧美精品99| 人妻激情视频| 9久热在线视频精品| 亚洲在线成人| 亚洲黄3级片网站欧美| 一区二区你懂的| 日本道久久91| 亚洲天堂色| 日本天堂久久| 1024在线观看免费视频| 欧美日本99| 狠狠色综合久久久久| 碰碰碰碰碰99| 九九综合88| 综合五月丁香六月婷婷| 色婷亚洲五月丁香| 久久综合无| 九九综合伊人| 色五月xxx| 色色网站观看| 婷婷丁香五月噜噜噜| 日本va视频| 色欧洲| 五月天 婷 欧美亚洲| 天天综合精品| 色综合九九色综合88| 九月av| 99ri在线| 亚洲妇女熟BBW| 日韩成人中文| 日本毛片内射| 五月色丁香| 久婷婷五月激情| 九九草热在线观看| 激情网综合| 婷香五月激情视频| 丁香婷婷色情| www.99热这里精品| 夜夜操天天干| 超碰超碰在线| 嫩草AV久久伊人妇女超级A| 91919191919久久成人视频| 九九综合| 婷婷久久丁香五月| 欧美综合激情五月丁香| 99热精品在线观看| 色色色无码| 色婷婷偷拍| 亚欧州精品视频| 噜噜色天天开心| 婷婷色播婷婷| 五月丁香婷中文字幕 | 久久婷婷综合五月趴| 色情成人五月天| 99亚州综合精品成人网| 狠狠久综合| 伊人久久艹| 亚洲 综合中文| 国产无遮挡又黄又爽免费网站| 五月婷婷之六月丁香| 五月丁香色停停啪啪啪| 99国产视频网| 五月99久久| 久久久久9999| 综合热无码| 国产精品久久久爽爽爽麻豆色哟哟| 狠狠五月天婷婷激情网。| 99re久热| 99色五月| 婷婷免费成人视频| 偷拍九九热| 视频一二区| 日本怕怕视频| 日操夜操天天操不卡| 久久a热| 99久久婷婷国产综合| 九九人人操| 日本五月天一页| 伊人婷婷综合| AV大片在线播放| 人人看人人摸人人| 97影院一级片| 国产肥白大熟妇BBBB视频| 99久久综合| 丁香 婷婷 激情 综合 五月| 996er热| 色婷五月| 婷婷五月综合色拍| 九九热免费视频| 桔色成人在线| 色婷婷成人丁香| 九九色网| 免费黄色片子| 思思久久网| 91大屁股在线| 狠狠干综合| 性色99| 草草视频91| 伊人喵咪a V| 五月丁香综合激情| 天天色天天噜| 色色婷婷五月天| 影音 五月 婷婷 久久| 久久久久9| 毛片新网地| 9999三级片| 色噜噜狠狠狠狠色综合久欧美| 男女99免费视频| www,99热| 五月天五月色婷婷综合| 久久久久久久久久久44| 天天干天天爽| 五月丁香婷婷基地| 亚洲色情一区二区三区四区| 久色激情| 六月婷综合| 激情五月小说婷婷| 噜一噜在线| 91啪级电影| 欧美噜噜噜草| 香蕉色色网| 久久久天堂国产精品女人| 人人操插| 久热2025无码| 丁香五月婷婷AV| www五月婷婷| 国产激情综合五月久久| 色香欲综合| 丁香五月久久综合| av中文在线| 国产av基地| 97人妻碰碰碰碰碰久久久久久| 天天操夜夜操| 99久久网站| 欧美性爱中文字幕| 婷婷五亚洲| www.夜夜夜| 五月天开心激情网色欲无码| 久超超碰| 欧美一线视频| 国产在线aaa片一区二区99| 国产免费AV在线| 色九月婷婷丁香| 欧美成人五月天| 日日夜夜爽爽| 色婷婷丁香五月天激情综合网| 99五月丁香丁| 9+1视频网址| 久久久久8888| 久xxxx| 婷婷九月丁香天堂丁香天堂| 久久您您综合网| 久久婷婷精品| 色婷婷电影网| 丰满人妻一区二区三区| 婷婷91| 综合久久久| 婷婷五月天综合久久| 激情伊人五月天| 五月香六月婷| 涩涩涩.com| 激情狠狠丁香月| 无码激情精品色婷婷久久久久| 激情五月综合免费| 99这里的视频都是精品| renrencaoni| 人人爱操| 全亚洲最大的婷婷五月天网站COM| 久久久免费图片视频| 欧美碰碰碰| 天色色综合网| 加勒比久热| 激情伊人网| 《久久综合九色综合97婷婷| 91人人澡人人爽人人看| 色婷婷六月天| 国产免费AV在线| 九九色热| 天天久久人人| 欧美黑人大吊| 人妻内射麻豆视频| 亚洲色五月天在线| 狠狠擼综合| 26uuu欧美亚洲日韩| 欧美激情凹凸丁香网| 天天爽夜夜爽天天爽夜夜爽| 激情婷婷五月基地| 九九视频在线| 97超碰在线免费观看| 久久婷婷视频| 无码少妇高潮喷水A片免费| 五月香婷婷| 亚洲成人网址在线观看| 日韩有码一区| AV片在线观看| 丁香五月婷婷Av| 久久久精品AV| 丁香色综合| 激情综合色| 婷婷激情综合网| 热久久99热欧美国产亚洲| 人人播| 思思re99视频在线观看| AV电影在线播放| 国产欧美性成人精品午夜| 色情成人五月天| 超碰在线超碰| 超碰在线91| 狠狠肏综合网| 五月婷婷av| 免费亚洲婷婷中文字幕| 这里只有精彩视频| 婷婷在线五月综合| 五月天激情日色在线| 九九综舍久久| 热久久思思热思思| 伊人色综在线| 色日本综合| 国产精品色色| 91丁香色五月| 五月婷婷久久大香蕉| 亚洲综合网区| 毛片毛片毛片毛片| 天天爱天天爽| 天天色天天操天天射| 在线综合亚洲欧美65| 99欧州偷拍视频| 婷婷综合五月天激情| 婷婷五月丁香六月| 欧美日韩aaa| 五月成人丁香av91| 日本精品99| 亚洲99手机免费看视频| 亚洲色综久久五月| 色播丁香婷婷五月激情| www婷婷| 校园春色亚洲色| 激情久久肏屄视频| 丁香六月毛片| 五月丁香香蕉| 色综合久久久无码中文字幕999| 亚洲视频五区| 久久这里在精品视频| 色色射| 在线观看免费人成视频无码| 日韩 mm 不卡| 五月丁香六月婷婷在线小说视频| 五月丁香六月婷婷欧美综合| 久久a热| 五月综合丁| 婷五月丁香| 99综合自拍| www.丁香黄色五月天人与| 亚洲精品成人片在线播| 天天色伊人| 亚洲操操| 97在线视频 欧美| 五月婷婷深深爱爱| 99九无网码| 五月婷婷电影院| 欧洲亚洲午夜| 丁香六月视频| av久热| 97香蕉人人在线观看| www.99视频| 天天肏高清在线| 999热视频精品99免费在线| 欧美123区免| 亚洲 小说 欧美 激情 另类| 天天操天天曰| www久久久久| 99热这里有精品2| 婷婷色婷婷| 欧美综合五月丁香六月婷| 久久ab| 91精品久久久久久久久久| 丁香五月综合婷婷| www.99热精品| 婷婷五月天丁香综合网| 激情无码五月天| 99久久婷婷| 六月丁香综合| 色五月色五天免费视频| 亚洲超碰中文字幕| caopeng97日韩| WWW,五月| 99丝袜精品视频网站| 99国产性感视频| 国产99久久久国产精品免费看| 久99久热| 噜噜色五月| 九月婷婷激情久久| 五月六月激情| 久久这里都是精品| 五月丁香啪综合| 五月天婷婷伊人| 久久加勒比| 五月婷婷六月丁香色| 99久久人人| 婷婷丁香色无五月| 这里只有精品96| 久色网| 成人av中文字幕| 日熟女| 久久99美女精彩视频| 婷婷99狠狠| 五月丁香爱婷婷深深| 99热免费| 中文字幕黄色电影网址| 激情网婷婷五月天| 91九色欧美| 亚洲婷婷在线播放十月| 亚洲综合1024| 婷婷操逼| 99无码视频| 亚洲免费观看高清完整版AV线| 日本婷婷| 99资源在线视频| 99热在线观看| 亚州综合色| 97婷婷五月| 日韩精品99久久| 丁香五月婷婷激情尤物| 特级操b片| 91狠狠色丁香| 久热大香蕉| 99综合视频| 激情婷婷五月天网址| 亚洲中文字幕AV在线| 九九亚洲视频| 9精品一区| 日本五月天网站| 人妻内射一区二区在线视频| 午夜五月天| 九九热在线亚洲免费视频| 99精品性爱| www.婷婷五月天啪啪| 67194线路二在线观看| 丁香桃色综合网| 人人色人人弄人人操| Www,五月天| 久久久久8888| 91碰碰| 99精品视频免费在线播放| 欧美大片| 狠狠五月天婷婷激情网。| 婷婷久久在线| 久久大香蕉同僚| 五月丁香啪啪| 97人妻超级碰碰碰碰碰| 99看片| 99ri精品在线观看| 五月丁香婷婷综合| 99热超碰| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | 婷婷五月天大香蕉在线视频观看| 色色色色色色网站| 激情啪啪五月| 欧美色五月| 99热的无码| 日本色天堂| 色99色| 六月丁香五月激情婷婷| 91|九色|动漫| 五月婷婷丁香六月| site:ornaments52.com| 超碰在线网站| 大香蕉九九| 婷婷五月天成人小说| 久久人人九| 色色热| 久久久精品色| 国产中文亚洲欧美日韩性交| 国产婷婷婷| 这里只有精彩视| 高清无码入口| 婷婷精品在线| 99这里有精品视频| 六月五月天婷婷涩播在线| 色色综合激情|