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
返回資訊列表
男人大jjc女人免费视频| 禁欲电影完整版在线播放| 婷婷六月成人| 中文字幕精品在线观看| 亚洲电影在线观看| 中文色婷婷| 操B五月天| 67194成I人在线观看线路1| 996er热| 激情图片五月天| 狠狠色情婷婷| 开心久久xxx色| 色婷婷精| 免费视频WWW在线观看网站| 欧洲亚洲激情五月天在线| 亚洲激情| 少妇高潮呻吟A片免费看软件| 丁香五月开心五月激情| 99色看这里只有精品| 久久五月天丁香| 色色婷| 国产精品久久久60086| 婷婷丁香色性爱| 天天操婷婷| 丁香婷婷色情社区成人小说| 涩涩涩婷婷| 久久丝袜婷婷| 综合色吧| 久久精品天| 国产精品99久久久久久久女警| 99九九热视频| 日本五月天网站| 丁香五月六月久久综合| 九九性视频| 丁香综合久久| www.com.色色| 亚洲超级碰| 屁股翘好撅高迎合跪趴| 六月成人网| 日日天天干| 思思热久热| 99r久久这里只有精品| 综合超碰熟| 亚洲精品字幕在线观看 | www99热| 人人摸人人干人人做| 亚州激情网| 婷婷九月在线| 看全色黄大色大片| 97婷婷五月丁香| 亚洲精品V天堂中文字幕| 免费播放片大片| 婷婷五月天激情网站| 777丁香六月青青草婷婷综合久月| www.97碰碰com| www.婷婷五月.com| 超碰不卡在线| 亚洲色情久久| 婷婷另类开心| 亚洲最大五月天成人网| 六月丁香激情网| 99re在线这里只有精品视频首页| 夜夜综合色| 五月天激情Av| 99热6精品| 天天情色五月天| 色五月丁香五月五月婷婷| 色九区| 97干97色| site:publishdd.com| 婷婷丁香久久五月综合| 色五月第四色| 五月丁香操婷逼| 激情视频综合| 亚洲综合色婷婷| 丁香六月婷婷| 熟女人妻视频| 婷五月天六| 亚洲成人av中文| 久久五月天激情| 人与禽A片啪啪| 疯狂做受XXXX高潮A片动画| 欧美激情综合色综合啪啪五月| 丁香五月天啪啪a日本| 婷婷丁香人妻久久在线观看| 色五月 五月婷婷| 婷婷五月精品中文字幕| 天天爽天天爽| 婷婷性爱视频在线| 婷婷五月激情基地| 久久婷网| 97夫妻超碰| www.丁香黄色五月天人与| www.丁香黄色五月天人与| av在线婷婷| 久久电影五月天丁香电影| 99在线爽| 亚洲国产成人在线| www.开心激情| 五月丁香亚洲综合| 欧美六月婷婷| 激情q青青草在线婷婷| 五月青青草综合| 色婷婷影音| 五月婷婷婷婷| 五月丁久久| 夜夜爱爱亚洲| 米奇影视资源婷婷狠狠色激情欧美五月丁香| dingxiangtingtingliuyue| 婷婷五月六月| 中国女人内射6XXXXX| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 色播丁香| 超碰97色| 9久热这里只有精品视频| 26uuu亚洲精品国产| 先锋资源婷婷| 偷拍99在线视频观看| www.99热视频| 五月激情综合网| 五月综合激情婷婷六月色窝| 色综合久久44| 婷婷五月天美女21p| 丁香五月综合| 大香蕉伊人99| 狠狠操狠狠插| 久热精彩视频98| 91色久| 中文网av| 六月成人网| 99碰网站| 99久久玖玖| 欧美综合激情| 婷婷色情小说| 久久色六月| 综合狠狠伊人| 可以看的av网站| 97香蕉人人在线观看| 色五月激情五月丁香五月婷婷啪啪综合| 天天爽天天| 91在线视频观看午夜福利| 婷婷五月香蕉| 97干在线| 丁香五月天无码AV| 五月丁香婷婷综合网| 激情九月天天天天婷婷| 亚洲五月色| 五月香婷婷| 久久9精品| 色操b| 久热超碰| 色五月天网| 国产成人网站在线观看| 婷婷五月丁香五月丁香| 伊人色综合网| 麻豆123区| 五月激情在线| 在线播放成人网站| 亚洲激情综合| 色婷婷五月婷婷五月婷婷五月| 激情五月天婷婷五月天| 丁香五月色色色色| 天天色综网| 五月天婷婷激情网| 日本精品人妻无码77777| 婷婷五月激情热播| 99久久国产宗和精品1上映| 五月婷婷免费在线| 天天日中文| 亚洲色五月天是什么| 久久人妻视频| www天天干| www.色婷婷| 99这里是99在线视频| XX色综合| 五月婷婷欲色| 99爱爱网| 开心激情婷婷| 99综合激情久久精品久久| 日韩青青| 久久精品五月天| 99精品久久久久| 久色网址| 色婷婷五月综合网| 91在线视频综合| 色五月婷婷在线| 色色婷婷丁香| 成人做爰黄A片免费看直播室男男| 2023天天日夜夜爽| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 泰州成人视频| 亚洲小视频免费播放| 久草热在线视频| 玖玖资源部在线播放| www,999日本色| 五月激情偷拍| 五月婷婷综合热| 中日韩美欧成人一区二区精品在线| 久久思思热视频| 怡红院91a√| 超碰操网| 久久免费视频62| 99啪99| 99视频自拍| 五月天激情美女久久| 探花搜索结果 - 黄上黄| 99福利导航| 激情五月黄色小说| 97操碰在线视频| 丁香六月欧美| 另类小说色婷婷| 超碰狠狠操| 五月天社区婷婷| 五月天桃色深爱网| 亚洲一区二区无码蜜乳av| 色婷婷色| 激情6月| 女人被男人吃奶到高潮| 99精品7| 六月婷婷色色色| 亚洲另类在线观看| 五月婷婷色影院| 爱草视频在线| 99精品视频免费在线播放| 色135综合网| 外国碰视频网站97| 天天日天天爽夜夜爽| 天天做天天视天天谢| 久久九⑨| 久久五月婷综合网| 婷婷香蕉精品| 国产高潮A片羞羞视频涩涩| 九九无码| 色色色热热热| 五月天六月婷| 五月天色婷婷基地| 婷婷五月永远18免费久久久| 国产精品视频网| 中文字幕按摩做爰| 色色国产| 日本丁香五月| 色屌丝中文字幕| 99只有精品| 色综合五月婷婷狠狠干| 婷婷97碰碰| www。五月,com| 91九色首页| 色女人久久| 五月天影院| 激情综合网五月丁香| 97超级免费无码| 欧美成人一区二区三区在线视频 | 深爱五月天| 99热这里只有国产精品| 激情都市五月天| 免费99情趣网视频| 初夜av| 丁香五月婷婷狠狠色| 97日在线视频| 色婷网| 大香蕉狼人久久| 五月婷丁香久久综合| www.亚洲激情.com| 9热久久| 丁香婷婷久| 婷婷五月综合国产精品| 久9热插入| 婷婷综合天堂| 色色狼人综合| 99re6热在线精品视频播放速度| www999日韩精品| 91日日日| 五月婷六月综合在线观看| 五月丁香啪啪网| www.91九色| 久婷久婷| 免费AAAAA网| 秋霞性爱AV| 超碰chaompinm| 色很很96| 五月激情基地| 夜色综合网| 丁香五月天婷婷激情| 激情第四色| 五月婷婷激情综合| 99性爱| 久久综合九九| 深爱五月月天| 99热99热| 婷婷综合在线| 精品人妻一区二区三区在| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久久五月丁香婷婷| 午夜爱爱爱成人| 婷婷五月天亚洲综合| 天天干天天射色综合| 久久综合丁香激情五月| 激情五月天色网站| 色色色色色色色色色影院| 中文字幕人妻一区二区| 色噜噜狠狠色综合成人99| 色五月开心婷婷| 日日夜夜噜噜爽爽| 九九热中文| 9999久久久久| 免费视频WWW在线观看网站| 国内自拍97在线| 69精品人妻不卡视频| 色狠狠综合| 26uuu激情五月天| 天天日,天天射,天天舔| 欧洲亚洲精品| 久久婷婷五月综合激情国产| 校园激情 亚洲| 伊人色综合久久久| http://www.com久久久精品一区| 欧美婷婷九月| 婷婷五月天伦理| 婷婷色五月丁香六月欧美啪| 婷婷久久综合| 色在线99| 色五月综合激情| 久久只有18视频| 久热re视频在线观看网站| 天堂成人久久| 99色最新在线视频网站| 欧美经典片免费观看大全| 午夜激情久久| 丁香五月婷婷乱| 最新丁香六月婷婷| 久久99最新地址| 激情AV在线| 99热这里只有精品2016| 人人干人人看| 91刘玥视频在线观看| 99er精品| 久久久久久久97| 伊人大香蕉毛片| 色婷婷久久综合久色| 日本五月天婷婷丁香| 99热色精品| 人妻视频一区而且二区| 久久婷婷东京热大香樵| 五月丁香狠狠地噜噜噜噜| 97色碰| 婷婷激情五月天激情小说| 五月花婷婷在线精品视频| 色激情五月天| 天天操天天曰天天射| 色六月视频| 五月丁香六月激情综合| 激情五月开心五月在线视频| 99视频内射三四| 超极99精品| 久婷婷五月丁香在线观看| 久久精品夜色噜噜亚洲a∨| 色色色色色色综合网| 婷婷激情肏屄网| 大香蕉伊人99| 婷婷五月综合社区| 欧洲毛片基地c区| 狠狠se| 五月天久久网站| 99久久婷婷精品视频| 综合xx网| 精品二区| 久久久精品色| 婷婷中文字暮| 日韩超碰在线| 久久五月天激情美女| 99热网站| 999久久久国产精品| 五月激情天天干| 依人大香蕉在钱1| 亚洲色小说在线综合| 少妇高潮呻吟A片免费看软件 | 99视频在线观看网址| www.色擼擼.com| 丰滿爆乳一区二区三区| 天天干 夜夜爽| 七七久久婷婷| 激情爱爱网站| 五月天狠狠网站| 欧美精品999| 欧美五月婷婷| 久操热线| 成熟妇人A片免费看网站| sewuyuejiqingwang| 国产3p露脸普通话对白| 天天摸色吧天天摸色吧| 激情综合国产| 91九色网| caopeng97日韩| 99爱在线精品视频免费观看| 亚洲色婷婷99一9|| 婷婷99丁香| 色婷另类| 欧美va国产va| 毛片蕉地一二| 日本色婷婷| 人色五月天婷婷| 日本色啪| 91九色在线| 99亚洲综合| 久久久宗合视频88| 另类视频综合| 九九九九九九九热| 久久婷婷五月综合色奶水99啪| 日日天天干| 综激情网| www.玖玖九| 天天做天天爽| 人人干人人操人人摸人人做| 色99色| 女人天堂AV| 九九综合久久| 99热思思久| 九九热9| 四月婷婷丁香| 最新日本A片| 大香蕉AV电影在线| 五月色网| 182TV大香蕉| 77799热| 51精品国内探花| 婷婷婷婷婷婷婷五月丁香| 五月婷婷免费| 综合玖玖偷拍| 丁香激情综合| 九九色逼| 99久在线视频| 五月天天天色| 六月婷伊人| 亚洲有码在线视频| 国产精品成av人在线视午夜片| 婷婷伊人久久| 五月天久久91| 成 人 色 色| 99视频这里只有免费精品| 99热色综合| 天天日天天色| 99热国产这里只有精品| 久久Xx| 丁香色五月婷婷91桃色| 六月婷婷色五月| 色久九| 99内射视频| 久热这里| 亚洲欧洲另类| 9热视频在线观看| 激情五月色综合| 狠狠操天天操| 亚洲九区| 亚洲无码黄色| 色婷在线视频| 日韩精品无码AV| 最新高清无码专区| 日产精品久久久久久久蜜臀 | 国内外色色色色色成人视频| 天天干,夜夜爽| 成人超碰Av| 丁香五月天五码婷婷| 精品五月丁香| 色五月丁香总合网| 天堂AV三级| 99色在线| 婷婷免费精品视频| 99久久a线观| 人妻性爱av网站| 爽极品色| 色六月天天激情综合网| 色99在线视频| 国产日产成人亚洲欧美国产VA| 野外99热| 99日精品视频| 91人妻人人操人人爽| 五月丁香激情综合啪啪| 婷婷爱爱蜜臀天天操| 大香蕉九九操| aa久久| AV操操操| 国产精品蜜臀99| 五月丁香六月激情综合在线| 好激情在线综合网| 丁香五月婷婷日本| 影音先锋一区| 精品人妻一区二区| 碰97 久| 1024国产在线| 久热精彩视频98| 天堂在线婷婷| 综合久久综合久久| 26uuu四色| 六月香五月婷| 夜夜干天天干| 国产欧美第五十五页| 丁香激情久久| 日本熟妇乱妇熟色A片蜜桃| 五月婷婷色欲| 99综合熟女| 婷婷 伊人 久久| 超碰99久久| 天天舔夜夜操www com| 亚洲丁香五月天在线视频| 99热99这里有免费的精品| 五月婷婷AV| 丝袜大香蕉| 五月婷婷碰碰| 天天综合亚洲综合网天天αⅴ| 婷婷色网站| 秋霞性爱AV| 婷婷五月,综合伊人| 精品99视频| 碰超在线九色| 超碰三级秋霞| 第五色婷婷| 国产精品成人在线| 精品色色| 亚洲爱婷婷| 色玖玖| 婷婷五月天论坛| 丁香五月婷婷基地| 99久久66综合| 九九色人| 大香蕉在线99热| 91成人看片| 婷婷五月天综合蜜桃| 五月丁香婷婷六月| 丁香五月婷婷基地| 成人小说色图婷婷五月| A级毛片高清免费不卡播放谢谢谢谢| 超碰91在线| 亚洲色综合性| 亚洲中文字幕网| 九色无码| 五月天婷婷久久视频| 精品国产乱码久久久久久免费| 色九月婷婷综合| 亚洲成人五月天| A片试看120分钟做受图片| 99精品久久| 天天干天天干天天| 色婷婷最新域名| 婷婷五月天第四色| 国产,欧美,学生妹,视频| 在线va网站| 最新av在线观看| 99热精品网| 人妻VideOssS人妻| 免费视频在线观看的网站| aⅤ79成人片| 大香蕉五月婷婷| 99热日| 99精品免费视频| 丁香色情五月综合激情| 一级操逼内射在线视频| 婷婷五月丁香性爱| 第四色首页| 99久热视频在线| 这里只有九九精品| 免费日本aⅴ中文字幕 | 五月丁香人妻| 五月婷婷激情综合av| 91伦| 成人在线视频一区| www99在线观看视频| 天天日天天插| 中文资源在线a| 91seav| 激情综合在线观看| 超碰精品在线| 九热精品| 五月丁香| 国产精品VIDEOSSEX久久发布| 蜜臀av无码久久久久久久久| 思思久久99热只有频精品66| 天天做综合网色综合| 五月天婷久久| 婷婷五月天综合在线 | 久久婷婷五月综合伊人| 久久久久久欧美精品se一二三四| 亚洲小视频免费观看| 色色婷婷丁香| 快色t v在线入口| 欧美123区免| 14色综合婷婷| 日韩好吊操| 午夜亚洲国产精品av一区二区| 99久久精品国产色欲| 夜夜资源站| 五月婷婷色| AA片在线观看视频在线播放| www夜夜操comwww| 99偷拍视频在线日本| ww久久| 五月伊人综合| 97久久精品视频| 天天干天天操天天射| www九九热| 国产精品久久欧美久久一区| www天天爽| 日本色99| 草草色情综合网| 五月综合在线| 婷婷色色综合激情| 国产综合81p| 精品人妻伦一二三区久久| 婷婷五月天亚洲综合网| 国产av基地| 国产小精品| 热久精品| 成人网丁香五月| 欧美 日韩 成人| 99热成人| 丁香五月综合激情性爱| 婷婷五月AA五月在线| 亚洲综合欧美色丁香婷婷888月图片| 综合婷婷久久| 五月五婷婷| 爱性综合网| 91久草五月天婷婷| 老师的粉嫩小又紧水又多A片视频| 丁香五月香蕉| 五月丁香啪啪啪啪| 婷婷五月天影院| 无语停婷丁香网| 激情五月婷婷视频一区二区三区| 天天爽夜爽| 婷色成人| 伊人99热| 国产精品色婷婷99久久精品| 亚洲啪啪自拍| 国产美女无遮挡裸体毛片A片| 综合网啪| 这里只有精品网| 婷婷六月丁香久| 色九月婷婷综合| 久久综合九色综合88i| 99∨VTV| 91丨九色丨丰满人妖| 五月丁香无码| 激情纯色婷婷五月天在线不卡视频| 婷婷五月AV| 六月丁香婷婷大香蕉| 四川BBB搡BBB搡多人乱亂| 丁香婷婷色五月| 99精品免费| 五月丁香六月香综合激情| www色婷婷久久综合久色| 色五婷婷| 色五月偷偷| 2021日韩无码| 中文字幕精品推荐免费在线观| 五月天激情小说网| 五月丁香啪| www.五月天婷婷| 日韩成人中文字幕| YJLZZJLZZ亚洲乱熟无码| 五月情色天| 久久九九99亚洲国产久精综合| 丁香五月自拍| 久久6这里只有精品| 激情网战码亚洲A| 久久五月视频| 久久丁香| 亚洲亚洲激情| 亚洲 在线 性爱 | 亚洲成人电影aaaa| 色狠狠六月| 九九九九九无码| 99在线免费视| 密乳视频| 一起草日本| 9久热在线精品| 丁香六月婷婷久久亚洲天堂| 久久天堂婷婷五月| 大香蕉婷婷五月| 99在线观看视频| 91热99| 噜噜噜噜婷婷五月天| 五月婷婷在线视频免费观看| tingting五月天亚洲| 五月丁香婷婷激情在线| 色五月丁香六月婷婷| 综合激情网激情五月。| 婷婷五月激情小说| 男女99免费视频| 五月婷婷六月色| 国产AV国片偷人妻麻豆| 欧美性爱专区| 久青操| 九九热这里有精品视频| 亚洲色域网| 久久只有18视频| www..999热久| 国色天香成人网| 婷婷丁香五月社区亚洲| www91在线| 婷婷五月丁香av网站| 激情纯色婷婷五月天在线不卡视频| 丁香婷婷啪啪啪| 婷婷狠狠操| 99热九九热| 精品久久穴| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 婷婷五月天激情小说| 色色亚洲无码| 久机视频这只有精品| 亚洲高清在线| www.99riav99| 99热国产| 国产VA亚洲VA96| 婷婷无码视频| 五月天丁香啪啪网| 丁香五月天网站| 五月婷婷乱| 成人国产综合| 五月丁香综缴情性爱| 五月婷婷丁香综合| 丁香五月天激情网| 色色网站| 九月大香蕉| 人妻内射麻豆视频| 色五月激情综合| 九九九九操逼| 久9视频| 日日狠狠久久偷偷四色综合免费| 91啪啪| 一级无码作爱片| 久这里只有精品| 色色色在线观看| 伊人香大香蕉视频| 五月丁香日本片| 久99久99精品免| 激情亚洲五月| 九九热只有这里是精品| 日本久久婷婷| 伊人影院久久网| 婷婷五月天亚洲色| 9久热| 久久久27操| www夜夜操wwwcon| 婷婷五月天久久久| 欧洲综合视频| 亚洲人妻电影| 色婷婷久久7777| 亚洲激情丁香五月基地| 五月丁香777| 91精品婷婷国产综合| 日本操逼九九九九58日本操逼| 久久激情视频| 婷婷色综合| 五月天色综合| 9久久AV| 亚洲视频伍月婷婷| www.金莲av| 五月色情婷婷开心五月色情| 五月天婷婷久久| Av大香蕉| 久久久8| 色色色在线| 色爱99| 久re热视频| 色婷婷亚洲六月婷婷中文字幕| 婷婷六月天国产综合| 五月婷婷狠天天色综合| 婷婷五月天伊人| 丁香婷婷精品视频| 婷婷精品视频| 婷婷五月成年人| 久久亚洲婷婷| 欧美激情xxxXX| 公的粗大挺进了我的密道| 日日夜夜狠狠婷婷色| 久久久com| 久久九九综合| 国产精品色色| 五月丁香婷婷AV天堂| 五月天综合网| 狠狠操.COM| 操精品9| 婷婷五月天激情基地| 五月天婷婷激情四射综合| 无码任你操| 九热视频精品| 国产熟女一区二区三区五月婷| 中文字幕,综合,91| 日夜操B| 精品国产va久久久久| 蜜桃人妻无码AV天堂三区| 色五月在线| 久热精品免费视频4| av性爱在线| www热久久yy9| 亚洲六月色| 久久人妻精品| 色婷婷久久综合久色| 无码成人AAAAA毛片AI换脸| 色色色色色色色色色999| 婷婷五月天丁香综合网| 这里只有精品无码| 狠狠综合久久| 欧美私人家庭影院| 激情五月天伊人影院| 久久新| 五月丁香五月婷婷| 日韩色情亚洲五月天婷婷| 久草五月婷| 久久98| 丁香五月天精品| 国产成人亚洲综合亚洲| 91久久婷婷| 五月噜噜| 美女精品一级不卡视频| 少妇大叫太大太粗太爽了A片| 亚洲va在线| 婷婷爱爱蜜臀天天操| 丁香六月婷| ji'qi'luan'ren'lun| 婷婷91| 婷婷激情五月呦呦| 99热1| 色综合久久伊伊婷婷五月| 在线91日韩| 欧美精品18| 亚洲欧美国产高清vA在线播放| 91精品婷婷国产综合久久| 少妇搡BBBB搡BBB搡毛茸茸| 噜噜色婷婷| 2014天天爽| 色99视| 狠狠精品干练久久久无码中文字幕| 人人爱人人摸人人澡| 久久狠狠欧美| 丁香婷婷午夜| 极品人妻VIDEOSSS人妻| 色色99| 婷婷五月婷婷五月| 狠狠干婷婷| 99热综合网| 另类专区在线| 亚洲国产色色| 99在线观看亚洲| 99久久五月丁香野外| 99热精品在线| aa久久| www,婷婷| 五月婷婷六月爱| 另类激情五月| 天啪色| 中日韩美欧成人一区二区精品在线| 五月天操逼网| 亚洲六月色| 婷婷六月中文字幕| 国产乱码久久| 9久国产| 免费色婷婷| 欧美精品XXXXBBBB| 久久丁香| 情色婷婷五月天| www,天天干| 久久人妻高清中文| 少妇婷婷五月天| 26UUU| 六月丁香综合| 亚洲婷婷激情综合激情999精品| 丁香五月综合网| 成人精品一区日本无码网 | 亚洲性爱日韩无码| 激情五月图| 色情五月天视频网| 99久在线精品99re8| 97超碰在线免费观看| 亚洲精品九九| 丁香五月亚洲综合| 色青青电影色五月| 666555。COm毛片| 全部老头和老太XXXXX| 丁香婷婷大香蕉| 亭亭玉月丁香| 五月天综合网| 91九九| 久久综合九九| 丁香激情五月天| 欧美成人精品三区综合A片| 六月婷婷综合| 丁香五月天堂网| 国产精品人成A片一区二区| 大香蕉九九| 国产人妻人伦精品一区二区| 国产又黄又爽又色的免费| CHINESE熟女老女人HD视频| 夜夜穞天天穞狠狠穞AV美女按摩| 人妻少妇色综合| 色色99| 亚洲天堂婷婷丁香| 99超碰欧美| 91人人妻人人操人人爽| 久久久香港| 熟女啪啪视频| 久久婷婷热| 996er在线观看| 久草五月天电影网| 艾小青av| 婷婷丁香十月| 97碰超级人人看| 色五月婷婷综合| 国内外色色色色色成人视频| 大战熟女丰满人妻AV| 六月丁花香啪啪激情欧美| 沈娜娜av| 色五月色图| 亚洲五月天综合色| 男人综合网| 五月天综合在线观看| 婷婷五月精品中文字幕| 亚洲日日操| 日本欧美成人片AAAA| av婷婷丁香| a九九热www| 日日操夜夜爽白洁| 久久人妻人人槡| 99热天堂| 色婷婷六月| 激情婷婷五月社区| 999精品乱码77777| 亚洲 激情 中文| jiqingliuyuetian| 精品久久99码| www.91五月| 五月婷婷偷拍| 亚洲 在线 性爱| 无码99| 日本99热| 综合亚洲AV| 都市激情久久| 夜夜躁爽日| 五月婷婷香| 99久久久精品| 99热啪啪| www.色擼擼.com| 大香蕉综合在线| 久久久久9久无码视频| 亚洲成人AV在线观看| 五月天色婷婷av| 综合五月丁香六月婷婷| 久久精品99国产精品日本| 色一情一乱一乱一区9| 激情五月伊人婷婷| 狠狠五月天| 国产成人精品一区二区三区视频| www.com任你艹| 五月天成人在线视频丁香| 五月婷婷综合网| 亚洲亚洲人成综合网络| 国产熟女大叫受不了| 激情二色月| 亚洲永久四色| 久久精品日| 一根材五月婷成人| 婷色五月天| 九九在线91| 另类图片五月天婷婷| 久久九九@| 婷婷五月综合社区在线| 婷婷五月蜜桃成人桃色丁香| 五月婷婷五月天| 婷婷久久色五月婷婷久久久| 欧美极品999| 亚洲va综合va国产va中文| 超PEN精品在线| 五月丁香婷婷综合在线| 欧美久久婷婷| 久久大香免费| 日韩欧美一级大黄网站| 亚洲精品久久久久久久久久吃药| 亚州色婷婷| 五月丁香色婷婷久久| 9热在线| 综合五月天亚洲婷婷| AV在线免费网站| 天天综合网~91| 五月天激情亚洲| 伊人热在线大香蕉| 亚洲色婷婷婷婷人人爽| 久久久精品人妻| 亚洲午夜AV| 大香蕉五月婷婷| 久久久欧美精品sm网站| 狠狠做婷婷| 在线成人国产| 婷婷五月天天aV| 亚洲成人在线观看av| 五月婷婷色播网| 婷婷五月丁香五月| 99热在线99| 五月丁香六月婷综合成人综合| 99精品国产热久久91色欲| www.久久综合| 丁香激情四射| 色婷婷六月天| 五月久久婷婷| 日本三级黄色大片| 五月丁香六月婷综合成人综合| 丁香五月色五月| 五月 激情视频| 婷婷五月综合网| 99日逼视频| 久久五月网| 五月婷婷综合激情网| 99操碰| 五月丁香手机在线| 久久激情五月婷婷| VA婷婷| 蜜桃成语时李时珍 免费| 婷婷激情五月天色| 97大香蕉五月天| 日日夜夜爽| 无码色综合| 五月丁香久人妻中文| 日韩啪| 色情成人五月天| 色天天综合色| 99@久久@99精品视频| 思思re99视频在线观看| 婷婷色吧| 99热这里只有精品66| 欧美美女国产日韩一区二区久| 日韩中文字幕| 深爱激情丁香五月| 麻豆雪千夏| www狠狠| 激情开心五月亚洲| 午夜日日| 五月花免费视频| 99在线视频精品| 精品一区二区三区三区| 亚洲无线视频| 男人天堂伊人五月丁香| 色五月丁香91| 色玖玖综合| 狠狠操之狠狠操| 超碰97在线观看免费| 五月婷婷丁香五月 | 色色色色色色色色综合网| 狠狠色激情在线| 丁香婷婷婷婷十二月在线观看视频| 99啪啪网| 天天爽天天日人人爱 | 狠狠色色| 亚洲久久天堂| 久综合| 天天日夜夜草进麻麻的子宫| 极品五月天| 亚洲成人在线播放| 日日操,天天操| 午夜九九九九九九九九九九九九九| 久热免费视频| 欧美VA在线| 99久久99视频只有精品| 色婷婷yy久| 天天干狠狠| 丁香成人视频| 99这里有精品视频3| 婷婷六久久| 狠狠久久婷五月| 国产欧美性成人精品午夜| 狠狠干五月天| 婷婷五月天777| 五月婷婷久久久久| 亚洲A片成人无码久久精品青桔| 青青草成人网| 热久久成人| 欧美日韩成人在线网站| 国产精品久久久久久久久久免费 | 日日插日日干| 婷婷丁香视频在线观看免费| 97操| 黄色国久久| 五月丁香六月婷婷网| 色五月激情五月天| 五月天自拍网| Av大香蕉| 影音先锋天天日| 我淫我色婷婷五月天激情四射| 丁香五月性爱| 九九热在线观看视频| 这里只有精品在线播放| 婷婷综合激情| 熟女91九色| 9久热视频| 精品国产乱码久久久久夜深人妻| 人人操AV| 思思热在线| 丁香五月综合网亚洲综合欧美狠狠| 只有精品视频在线观看| 婷婷人人操| AV免费在线网站| 超碰av在| 国产精产国品一二三在观看| 99热国产精品| 丁香久月| 久久怕怕视频| 99热这里只有免费| 先锋资源996| 九九爱这里只有精品| 久婷婷| 五月婷婷色综图片| 五月激情婷婷国产精品久久久久久| 丁香88AV五月婷婷| 538在线精品| 天天日天天爽| 久久综合99| 激情综合婷婷| 九九这里有精品| 丁香婷婷大香蕉| 色综合久久99色| 日本三久久| 偷偷操99| 99亚洲视频| 91久久精品无码一区二区三区| 激情综合激情综合| 久久人妻人人| 六月丁香啪啪啪| 五月天婷婷丁香| 另类激情综合| 99色色| 成人av在线网址| 色哟哟精品| 九九色人| 激情五月婷婷网| 精品久久人妻| 五月丁香综合网| 99亚洲精品| 日韩黄色中文字幕| 日本在线观看99| 99热人人操人人操| 欧美精品久| 99热欧美偷拍| 激情另类综合| 99热免费网站| 天天爽日日搞| www国产亚洲色婷婷com| 四色AVwww| 欧美成人日韩| 超碰在线成人| 大香蕉520| 亚州在线中文字幕| 中文字幕丰满乱孑伦无码专区| 日本道久久91| 超碰av天堂| 久久综合九九| 另类小说五月天综合| 天天操天天爱天天玩| 久久久久人妻网址| 丰满人妻妇伦又伦精品国产 | 欧美激情-区二区三区| www.开心激情| 五月天天久久香| 婷婷五月亚洲综合| 激情丁香五月| 色婷婷狠狠禁久久| 大香蕉婷婷丁香| 免费成人va| 蜜桃婷婷丁香| 色在线99| 久久99久久99久久99人受| 激情亚洲五月| www.色婷婷.com| 国产欧美婷婷| 亚洲成人人人操| 激情综合区| 97超碰婷婷五月天| 超碰国产在线观看| 五月婷婷黄色| 噜噜噜噜噜色| 啪啪激情网| 久久激情中文| 久久综合无| 538久久| 26uuu成人网| 九九碰九九爱97| 色色色五月| 丁香五月天在线视频| 九九免费精品| 婷婷丁香人妻天天爽| 一区二区无码视频| 婷婷在线精品| 99热只有这里才是精品| 99ri精品视频在线观看| 亚洲黄色网址| 婷婷色九月| 牛牛碰免费| 久久这里有精品| 97日日碰碰| 婷婷另类开心| 欧美啪啪9| 97碰碰久久| 天天久久人人| 99精品综合| 成人综合网站| 亚洲综合五月天婷婷丁香| 99er6热在线观看精品6| 天天干天天干天天操| 九月大香蕉| 蜜臀九九九九| 婷婷丁香五月激情| 91婷婷五月丁香碰| 伊人五月人妻精品| 99久久婷婷| 性爱七区| 97色婷婷五月天| www.久久99| 99热国内精品| 欧美日韩AAAA| 色日本颜射| 五月丁香婷婷在线综合蜜桃| 另类 在线| www.久久久久久久久久.com| 五月色丁香综合| 在线看片av| 五月亭亭色| 天天色域综合网| 欧美成人AAA片一区国产精品| 五月丁香六月香香蕉| 欧美日韩aaa| 91大屁股在线| 啪啪干伊人婷婷| 婷婷五月影院| 五月婷网| 久热99热| 十区av| 五月丁香六月激情欧美综合| 激情九月婷婷九月| sisi热国产| 色色性爱视频| 日韩久热| 91超级碰在线视频| 久久jiuwww| 五日激情综合| www.com任你艹| 开心激情播播五月天| 99久久婷婷精品视频| 狠狠干激情五月| 成人综合网站| 久久婷婷五月草视频在线播放| 五月天婷婷丁香| 久久婷婷五月天激情新地址| 欧美精品999| 五月婷婷黄色| 五月丁香婷婷色色| 青青草色在线视频观看| 最熟少妇乱码| 99热国产在线| 91精品刘玥| 五月天激情啪啪| 丁香六月综合| 99热这里只有精品2| 久久久潮喷-久久久九九-成人AV| 天天色综合网吨吧| Www.se.久久| 六月婷婷中文字幕| 97碰碰在线观看视频| 内射综合网| 久久伊人大香蕉| 思思热在线观看|