亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clsfloodedarea.cls

?? FloodEvaluation-程序是gis方面的程序
?? CLS
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "clsWaterRange"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True

'************************************************************************************************
'*********************** To calculate the flooded area                    ***********************
'*********************** The result is raster cells                       ***********************
'*********************** ZHANG Wenjiang, 2004/02/17                       ***********************
'************************************************************************************************

Option Explicit

Dim m_pCommand As ICommand
Dim m_pTool As ITool
Dim m_pSketchTool As ISketchTool
Dim m_pApp As IApplication
Dim m_pEditor As IEditor
Implements ICommand

Private Property Get ICommand_Bitmap() As esriCore.OLE_HANDLE
  ICommand_Bitmap = frmResources.picWaterRange.Picture
End Property

Private Property Get ICommand_Caption() As String
  ICommand_Caption = "洪水淹沒范圍"
End Property

Private Property Get ICommand_Category() As String
  ICommand_Category = "洪損評估"
End Property

Private Property Get ICommand_Checked() As Boolean
'  ICommand_Checked = False
End Property

Private Property Get ICommand_Enabled() As Boolean
  ICommand_Enabled = True
End Property

Private Property Get ICommand_HelpContextID() As Long

End Property

Private Property Get ICommand_HelpFile() As String

End Property

Private Property Get ICommand_Message() As String
    ICommand_Message = "洪水淹沒范圍"
End Property

Private Property Get ICommand_Name() As String
    ICommand_Name = "CustomSketch.SketchTool"
End Property

Private Sub ICommand_OnClick()
    Call FloodedRange(m_pApp) 'WaterDepth 'polygonSelect0 'NeighborhoodNotation 'pixelOp
End Sub

Private Sub ICommand_OnCreate(ByVal hook As Object)
On Error GoTo ErrorHandler:
  
    Set m_pApp = hook
    Set m_pCommand = CreateObject("esricore.SketchTool")
    m_pCommand.OnCreate hook
    Set m_pTool = m_pCommand
    Set m_pSketchTool = m_pCommand
    Exit Sub
    
ErrorHandler:
    MsgBox "OnCreate - " & ERR.Description
    Exit Sub
End Sub

Private Property Get ICommand_Tooltip() As String
    ICommand_Tooltip = "洪水淹沒范圍"
End Property


'************************************************************************************************''''''''''''''
'''''FloodedRange計算洪水淹沒范圍

'************************************************************************************************''''''''''''''
Public Sub FloodedRange(pApp As IApplication, Optional ByRef pSdeFWS As IWorkspace = Nothing)
    
    On Error GoTo errHandle
     
    ' Declare the dataset objects
    Dim pWorkspaceFactory As IWorkspaceFactory
    Dim pFeatureWorkspace As IFeatureWorkspace
    Dim pFeaLyr As IFeatureLayer, pFloodFeatLyr As IFeatureLayer, pOutFeatLyr As IFeatureLayer, pWaterFeatLyr As IFeatureLayer
    Dim fs

    Dim strWaterPath As String, strFloodPath As String, strResultPath As String
    Dim strWaterFile As String, strFloodFile As String, strResultFullFile As String, strTemp As String
    frmFloodArea.Left = (Screen.Width - frmFloodArea.Width) / 2
    frmFloodArea.Top = (Screen.Height - frmFloodArea.Height) / 2
    frmFloodArea.Show vbModal
    
    If frmFloodArea.flagOK Then

        Set fs = CreateObject("Scripting.FileSystemObject")

        strWaterFile = frmFloodArea.strPathWater & ".shp"
        strFloodFile = frmFloodArea.strPathFlood & ".shp"
        strResultFullFile = frmFloodArea.strPathResult

'        If Not fs.FileExists(strWaterFile) Then '
'            MsgBox "指定本體水體文件不存在,請查實"
'            Exit Sub
'        End If
'
'        If Not fs.FileExists(strFloodFile) Then '
'            MsgBox "指定洪水水體文件不存在,請查實"
'            Exit Sub
'        End If
        
'        Call SplitPath(strWaterFile, strWaterPath, strTemp)
'        strWaterFile = strTemp
'        Call SplitPath(strFloodFile, strFloodPath, strTemp)
'        strFloodFile = strTemp

        If fs.FileExists(strResultFullFile) Then  '
            MsgBox strResultFullFile & "已存在,將被覆蓋"
            fs.DeleteFile (strResultFullFile) '
        End If
        
        If fs.FileExists(Left(strResultFullFile, Len(strResultFullFile) - 4) + ".dbf") Then '
            fs.DeleteFile (Left(strResultFullFile, Len(strResultFullFile) - 4) + ".dbf") '
        End If

        Call SplitPath(strResultFullFile, strResultPath, strTemp)
        strResultFullFile = Left(strTemp, Len(strTemp) - 4)

    Else
        MsgBox "放棄淹沒范圍計算"
        GoTo errHandle
    End If
    
    Set pFloodFeatLyr = frmFloodArea.shpFloodLyr
    Set pWaterFeatLyr = frmFloodArea.shpWaterLyr
    Dim pSpaRef As ISpatialReference
    Set pSpaRef = GetLayerSourceSpatialRef(pFloodFeatLyr)                                            ' set CoordinateSystem for the new result shape file

    Set pWorkspaceFactory = New ShapefileWorkspaceFactory
    Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(strResultPath, 0)
    Dim pNewFeatClass As IFeatureClass
    Set pNewFeatClass = CreateShapefile(pFeatureWorkspace, strResultFullFile, pSpaRef)                ' create a null shape file for the flood range
    
    Call Difference(pFloodFeatLyr, pWaterFeatLyr, pNewFeatClass)   '''通過difference進行多邊形的異處理,去除本體水體
    
    Dim pMxDoc As IMxDocument
    Set pMxDoc = pApp.Document
    Dim pFeatLyr As IFeatureLayer
    Set pFeatLyr = New FeatureLayer
    Set pFeatLyr.FeatureClass = pNewFeatClass
    pFeatLyr.name = "洪水淹沒范圍"
    Call setFeatureLayerRenderer(pFeatLyr, vbRed)
    
    pMxDoc.FocusMap.AddLayer pFeatLyr
    pMxDoc.ActiveView.Refresh
    
    Set pWorkspaceFactory = Nothing
    Set pFeatureWorkspace = Nothing
    Set pWaterFeatLyr = Nothing
    Set pFloodFeatLyr = Nothing
    Set pMxDoc = Nothing
    Set pFeatLyr = Nothing
    
    MsgBox "完成淹沒范圍計算!"
    
    Exit Sub 'exit sub to avoid error handler

errHandle:
    MsgBox "計算淹沒范圍失敗" & Chr(13) & ERR.Description, vbInformation + vbOKOnly, "提示信息"
 
 End Sub

'************************************************************************************************''''''''''''''
'''''Difference進行兩個多邊形圖層間的疊加,剔除洪水水體中的平水期水體,得到真正淹沒的范圍

'************************************************************************************************''''''''''''''
Public Sub Difference(pSourceFeatLayer As IFeatureLayer, pFilterFeatLayer As IFeatureLayer, pOutFeatClass As IFeatureClass)
    On Error GoTo errHandle:
    
    Dim pFilter As IQueryFilter
    Dim pFeatCursor1 As IFeatureCursor
    Dim pFeatCursor2 As IFeatureCursor
    Set pFilter = New QueryFilter
    pFilter.WhereClause = ""
    
    Dim sourceFeat As IFeature, filterFeat As IFeature, resultFeat As IFeature
    Dim pGeoResult As IGeometry, pIntersect As IGeometry
    Dim pTopoOp As ITopologicalOperator
        
    Set pFeatCursor1 = pFilterFeatLayer.Search(pFilter, False)
    Set filterFeat = pFeatCursor1.NextFeature
    
   
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Do While Not filterFeat Is Nothing

        Set pFeatCursor2 = pSourceFeatLayer.Search(pFilter, False)
        Set sourceFeat = pFeatCursor2.NextFeature

        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Do While Not sourceFeat Is Nothing

            Set pTopoOp = sourceFeat.Shape
            If Not pTopoOp.Intersect(filterFeat.Shape, esriGeometry2Dimension).IsEmpty Then  ' Skip creation if without the intersection of polygons is null
                Set pGeoResult = pTopoOp.Difference(filterFeat.Shape)
                Call CreateFeature(pOutFeatClass, pGeoResult)   '創(chuàng)建一個洪水淹沒矢量圖斑
            End If

            Set sourceFeat = pFeatCursor2.NextFeature

        Loop '''''''''''''''''''''''''''''''''''''''''''''''''''Do While Not sourceFeat Is Nothing

        Set filterFeat = pFeatCursor1.NextFeature

    Loop '''''''''''''''''''''''''''''''''''''''''''''''''''''''Do While Not filterFeat Is Nothing
        
   ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Set pFilter = Nothing
    
    Exit Sub 'exit sub to avoid error handler
    
errHandle:
    MsgBox "提取洪水淹沒范圍失敗" & Chr(13) & ERR.Description, vbInformation + vbOKOnly, "提示信息"
 
 End Sub

'************************************************************************************************''''''''''''''
'''CreateShapefile創(chuàng)建一個多邊形文件

'************************************************************************************************''''''''''''''
Public Function CreateShapefile(pShapeWsF As IFeatureWorkspace, strShapeName As String, spatialRef As ISpatialReference) As IFeatureClass

    On Error GoTo Errhdr
    Const strShapeFieldName As String = "Shape"
    
    ' Set up a simple fields collection
    Dim pFields As IFields
    Dim pFieldsEdit As IFieldsEdit
    Set pFields = New esriCore.Fields
    Set pFieldsEdit = pFields
    
    Dim pField As IField
    Dim pFieldEdit As IFieldEdit
    
    ' Make the shape field
    ' it will need a geometry definition, with a spatial reference
    Set pField = New esriCore.Field
    Set pFieldEdit = pField
    pFieldEdit.name = strShapeFieldName
    pFieldEdit.Type = esriFieldTypeGeometry
    
    Dim pGeomDef As IGeometryDef
    Dim pGeomDefEdit As IGeometryDefEdit
    Set pGeomDef = New GeometryDef
    Set pGeomDefEdit = pGeomDef
    With pGeomDefEdit
      .GeometryType = esriGeometryPolygon
      Set .SpatialReference = spatialRef 'New UnknownCoordinateSystem
    End With
    
    Set pFieldEdit.GeometryDef = pGeomDef
    pFieldsEdit.AddField pField
    
    Set pField = New esriCore.Field
    Set pFieldEdit = pField
    With pFieldEdit
        .Length = 30
        .name = "MiscText"
        .Type = esriFieldTypeString
    End With
    pFieldsEdit.AddField pField
    
    ' Create the shapefile
    Dim pFeatClass As IFeatureClass
    Set pFeatClass = pShapeWsF.CreateFeatureClass(strShapeName, pFields, Nothing, _
                                             Nothing, esriFTSimple, strShapeFieldName, "")
                                             
    Set CreateShapefile = pFeatClass
    
    Set pFields = Nothing
    Set pField = Nothing
    Set pGeomDef = Nothing
    
    Exit Function
    
Errhdr:
    MsgBox "創(chuàng)建shape文件失敗" & Chr(13) & ERR.Description, vbInformation + vbOKOnly, "提示信息"
    
End Function


'************************************************************************************************''''''''''''''
'''''CreateFeature根據(jù)給定幾何體特征創(chuàng)建一個空間特征體

'************************************************************************************************''''''''''''''
Private Sub CreateFeature(pFeatureClass As IFeatureClass, pGeometry As IGeometry)
  Dim pFeature As IFeature
  Set pFeature = pFeatureClass.CreateFeature
  Set pFeature.Shape = pGeometry
  pFeature.Store
End Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人一区二区精品非洲| 亚洲激情网站免费观看| 看国产成人h片视频| 91精品国产一区二区| 秋霞电影一区二区| 精品欧美久久久| 国产成人夜色高潮福利影视| 综合欧美一区二区三区| 91久久一区二区| 婷婷中文字幕综合| 精品欧美久久久| 懂色av一区二区在线播放| 国产精品蜜臀av| 日本韩国欧美在线| 青青草原综合久久大伊人精品| 欧美一卡2卡3卡4卡| 国产成人亚洲精品青草天美| 国产精品成人免费在线| 欧美日韩在线播放一区| 久久精品国内一区二区三区| 国产午夜精品福利| 欧美三级中文字幕在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 久久亚洲影视婷婷| 色婷婷国产精品| 美女视频一区在线观看| 国产精品伦理在线| 欧美高清激情brazzers| 久久超级碰视频| 亚洲欧美日韩中文播放| 日韩欧美国产三级电影视频| 91欧美一区二区| 麻豆久久一区二区| 国产精品福利一区| 日韩欧美一区二区在线视频| 不卡高清视频专区| 老司机精品视频在线| 亚洲三级视频在线观看| 日韩欧美国产系列| 在线一区二区三区| 国产电影一区在线| 日本少妇一区二区| ...xxx性欧美| 久久亚洲精华国产精华液| 欧美主播一区二区三区美女| 国产自产v一区二区三区c| 一区二区在线观看免费| 国产人成一区二区三区影院| 欧美日韩激情一区| 91麻豆免费视频| 国产一区中文字幕| 日本不卡免费在线视频| 亚洲精品一二三区| 欧美激情综合网| 精品国产免费久久| 欧美久久一区二区| 91免费观看国产| 高清beeg欧美| 国产一区二区三区av电影| 亚洲va天堂va国产va久| 亚洲精品中文字幕在线观看| 国产欧美日韩激情| 精品嫩草影院久久| 欧美一区二区福利视频| 欧美区视频在线观看| 在线观看免费视频综合| 99热精品一区二区| 成人免费视频播放| 成人av电影观看| 精品亚洲成a人| 美女网站视频久久| 免费观看一级特黄欧美大片| 日韩精品久久理论片| 午夜激情综合网| 丝袜亚洲另类丝袜在线| 亚洲午夜在线观看视频在线| 伊人色综合久久天天人手人婷| 中文字幕一区在线观看| 国产精品福利影院| 综合自拍亚洲综合图不卡区| 国产精品欧美精品| 亚洲欧美激情一区二区| 一区二区在线看| 午夜日韩在线电影| 免费高清视频精品| 开心九九激情九九欧美日韩精美视频电影| 日韩国产欧美在线播放| 奇米色一区二区| 精品亚洲国产成人av制服丝袜| 久草中文综合在线| 国产精品一区二区三区四区| 成人高清免费观看| 91豆麻精品91久久久久久| 精品婷婷伊人一区三区三| 欧美精品一级二级| 久久精品一区二区三区av| 国产亚洲精品超碰| 亚洲人成电影网站色mp4| 一区二区三区在线观看网站| 一级中文字幕一区二区| 婷婷丁香激情综合| 国产在线国偷精品免费看| 成人免费电影视频| 色婷婷久久久综合中文字幕 | 久久97超碰国产精品超碰| 国产一区高清在线| 91丨九色丨蝌蚪丨老版| 欧美日韩国产一区| 久久久久久久av麻豆果冻| 亚洲欧洲综合另类| 老司机精品视频导航| 99久久国产综合精品女不卡| 欧美日韩久久久久久| 精品国产乱码久久久久久蜜臀| 一区视频在线播放| 日本不卡视频在线观看| a在线欧美一区| 91精品国产综合久久小美女| 亚洲国产精品ⅴa在线观看| 午夜一区二区三区视频| 国产成人免费xxxxxxxx| 欧亚洲嫩模精品一区三区| 欧美精品一区二区三区久久久| 亚洲欧美日韩国产综合| 激情综合色丁香一区二区| 色88888久久久久久影院野外| 日韩一区二区免费电影| 亚洲婷婷综合色高清在线| 另类小说色综合网站| 日本精品一区二区三区四区的功能| 日韩免费高清电影| 亚洲一区二区三区免费视频| 国产乱码精品1区2区3区| 欧美视频在线观看一区二区| 国产亚洲精品久| 久久精品99久久久| 在线观看精品一区| 国产精品福利av| 国产激情视频一区二区三区欧美| 欧美日韩国产影片| 亚洲欧美一区二区久久| 国产91综合网| 久久你懂得1024| 日av在线不卡| 精品视频999| 亚洲欧美国产77777| 国产99久久久国产精品| 精品免费视频.| 麻豆久久久久久| 777午夜精品视频在线播放| 亚洲欧美二区三区| 94色蜜桃网一区二区三区| 中文字幕不卡在线| 国产久卡久卡久卡久卡视频精品| 欧美一区二区三区四区久久| 亚洲自拍另类综合| 91成人看片片| 洋洋成人永久网站入口| 一本一道综合狠狠老| 国产精品亲子乱子伦xxxx裸| 国产福利一区二区三区视频在线| 欧美精品一区二区久久久| 老司机免费视频一区二区 | 91麻豆精品久久久久蜜臀| 樱桃国产成人精品视频| 色婷婷狠狠综合| 亚洲一级不卡视频| 在线看不卡av| 亚洲一区二区欧美| 欧美自拍偷拍午夜视频| 亚洲午夜羞羞片| 91精品一区二区三区久久久久久 | 韩国精品久久久| 精品福利av导航| 精品一区二区免费| 欧美成人性战久久| 久久99精品视频| 国产女主播视频一区二区| 岛国精品一区二区| 最新日韩av在线| 欧美中文字幕一区二区三区| 天堂va蜜桃一区二区三区漫画版| 91精品国产日韩91久久久久久| 美女视频黄 久久| 久久综合九色综合97婷婷| 国产精品亚洲一区二区三区妖精| 国产欧美日韩精品a在线观看| 99久久精品免费看| 亚洲成人激情av| 日韩美女主播在线视频一区二区三区| 久久99九九99精品| 中文字幕亚洲区| 欧美日韩成人在线| 激情丁香综合五月| 中文av一区二区| 欧美理论在线播放| 国产ts人妖一区二区| 亚洲伊人色欲综合网| 日韩精品一区二区三区在线播放| 国产福利91精品一区|