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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? clsfloodpopulation.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 = "clsEvaluatePopulation"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'************************************************************************************************
'*********************** 統計指定區域內的受災人口                           ***********************
'*********************** The result is raster cells                       ***********************
'*********************** ZHANG Wenjiang, 2004/04/16                       ***********************
'************************************************************************************************

Option Explicit

Dim m_pCommand As ICommand
Dim m_pTool As ITool
Dim m_pSketchTool As ISketchTool
Dim m_pApp As IApplication

Implements ICommand

Private Property Get ICommand_Bitmap() As esriCore.OLE_HANDLE
  ICommand_Bitmap = frmResources.picABC.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 populationSum(m_pApp)
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


'************************************************************************************************'''
''''populationSum對受災人口進行估計,具體工作由populateSum來實現

'************************************************************************************************'''
Public Sub populationSum(pApp As IApplication)
    On Error GoTo ERH
    
    Dim sWorkPath As String, sShapeFileName As String, sGridFileName As String
    Dim pOutRas1 As IGeoDataset
    Dim fs
    Dim strPolygonPath As String, strGRIDPath As String, strResultPath As String
    Dim strPolygonFile As String, strGRIDFile As String, strResultFile As String, strTemp As String
    
    Dim pFeatPopLyr As IFeatureLayer, pFeatFloodRangeLyr As IFeatureLayer
    
    frmEvaluatePopulation.Left = (Screen.Width - frmEvaluatePopulation.Width) / 2
    frmEvaluatePopulation.Top = (Screen.Height - frmEvaluatePopulation.Height) / 2
    frmEvaluatePopulation.Show vbModal

    If frmEvaluatePopulation.flagOK Then

        Set fs = CreateObject("Scripting.FileSystemObject")

        strResultFile = frmEvaluatePopulation.txtPathResult          '統計的結果,shape格式
        
        Set pFeatPopLyr = frmEvaluatePopulation.shpPopulateLyr
        Set pFeatFloodRangeLyr = frmEvaluatePopulation.shpFloodAreaLyr

        If fs.FileExists(strResultFile) Then '
             fs.DeleteFile (strResultFile)
        End If
        
        If fs.FileExists(Left(strResultFile, Len(strResultFile) - 4) + ".dbf") Then '
             fs.DeleteFile (Left(strResultFile, Len(strResultFile) - 4) + ".dbf")
        End If
        
        Call SplitPath(strResultFile, strResultPath, strTemp)
        strResultFile = strTemp

    Else
        MsgBox "放棄評估"
        GoTo ERH
    End If
    
    Call populateSum(pFeatFloodRangeLyr, pFeatPopLyr, strResultFile, strResultPath, pApp)
    
    Exit Sub
    
ERH:
    MsgBox "受災人口統計失敗" & Chr(13) & ERR.Description, vbInformation + vbOKOnly, "提示信息"
End Sub


'************************************************************************************************'''
''''populateSum具體實現對受災人口的統計

'************************************************************************************************'''
Public Sub populateSum(pFloodRangeLyr As IFeatureLayer, pPopulateLyr As IFeatureLayer, _
                       strResultFile As String, strResultPath As String, pApp As IApplication)
    
    On Error GoTo errHandle
    
    ' Create the RasterExtractionOp/MathOps object
    Dim pWorkspaceFactory As IWorkspaceFactory
    Dim pFeatureWorkspace As IFeatureWorkspace
    Dim pFeaLyr As IFeatureLayer
    
    Dim pWks As IRasterWorkspace
    Dim pWksF As IWorkspaceFactory
    Dim pRasLyr As IRasterLayer
    Dim pEnv As IRasterAnalysisEnvironment
        
    Dim pSpaRef As ISpatialReference
    Set pSpaRef = GetLayerSourceSpatialRef(pPopulateLyr)      'New UnknownCoordinateSystem
    
'    Set pFeatureWorkspace = Nothing
    Set pWorkspaceFactory = New ShapefileWorkspaceFactory
    Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(strResultPath, 0)
    Dim pFlds As IFields
    Set pFlds = CreateFeatureFields(esriGeometryPolygon, True, False, pSpaRef, "受災人口")
    
    Call AppendField(pFlds, "地區", esriFieldTypeString, False)
    Call AppendField(pFlds, "人口", esriFieldTypeInteger, False)
    Call AppendField(pFlds, "面積", esriFieldTypeDouble, False)
    Call AppendField(pFlds, "受災面積", esriFieldTypeDouble, False)
    Call AppendField(pFlds, "受災人口", esriFieldTypeInteger, False)
    
    Dim pCLSID As UID
    Set pCLSID = New UID
    pCLSID.Value = "esricore.Feature"
    Dim pFClass As IFeatureClass
    Set pFClass = pFeatureWorkspace.CreateFeatureClass(Left(strResultFile, Len(strResultFile) - 4), _
    pFlds, pCLSID, Nothing, esriFTSimple, "Shape", "")
    
    '設置有關字段的索引號
    Dim indexName As Integer, indexPopu As Integer
    Dim indexName1 As Integer, indexPopu1 As Integer, indexFloodPopu1 As Integer, indexFloodArea1 As Integer, indexArea1 As Integer
    Dim pFields As IFields
    Set pFields = pPopulateLyr.FeatureClass.Fields
    indexName = pFields.FindField("地區")          '政區名稱
    indexPopu = pFields.FindField("人口")          '政區人口
    indexName1 = pFlds.FindField("地區")           '政區名稱
    indexPopu1 = pFlds.FindField("人口")           '政區人口
    indexArea1 = pFlds.FindField("面積")           '政區面積
    indexFloodArea1 = pFlds.FindField("受災面積")  '受災面積
    indexFloodPopu1 = pFlds.FindField("受災人口")  '受災人口
    
    Dim pOutCursor As IFeatureCursor
    Set pOutCursor = pFClass.Insert(True)
  
    Dim pOutBuffer As IFeatureBuffer
    Set pOutBuffer = pFClass.CreateFeatureBuffer

    Dim pFilter As IQueryFilter
    Set pFilter = New QueryFilter
    pFilter.WhereClause = ""

    Dim pFloodCursor As IFeatureCursor, pPopuCursor As IFeatureCursor
    Set pPopuCursor = pPopulateLyr.Search(pFilter, False)

    Dim sumArea As Double
    Dim pTopologOp As ITopologicalOperator, pGeoResult As IGeometry
    Dim pPopuArea As IArea, pAndArea As IArea
    Dim pPopuPoly As IPolygon, pFloodPoly As IPolygon
    Dim pPopuFeat As IFeature, pFloodFeat As IFeature
    Set pPopuFeat = pPopuCursor.NextFeature
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Do While Not pPopuFeat Is Nothing
    
        Set pTopologOp = pPopuFeat.Shape
        Set pFloodCursor = pFloodRangeLyr.Search(pFilter, False)
        Set pFloodFeat = pFloodCursor.NextFeature
        sumArea = 0
        
        Do While Not pFloodFeat Is Nothing
            Set pFloodPoly = pFloodFeat.Shape
            Set pGeoResult = pTopologOp.Intersect(pFloodPoly, esriGeometry2Dimension)
            Set pAndArea = pGeoResult
            sumArea = sumArea + pAndArea.Area
            Set pFloodFeat = pFloodCursor.NextFeature
        Loop
         
        Set pOutBuffer.Shape = pPopuFeat.Shape
        Set pPopuArea = pPopuFeat.Shape
        
        pOutBuffer.Value(indexPopu1) = pPopuFeat.Value(indexPopu)                                     '統計出該區域內淹沒的面積,需乘以人口密度才為受災人口
        pOutBuffer.Value(indexName1) = pPopuFeat.Value(indexName)                                     '統計出該區域內淹沒的面積,需乘以人口密度才為受災人口
        pOutBuffer.Value(indexArea1) = pPopuArea.Area                                                 '統計出該區域內淹沒的面積,需乘以人口密度才為受災人口
        pOutBuffer.Value(indexFloodPopu1) = pPopuFeat.Value(indexPopu) * sumArea / pPopuArea.Area     '統計出該區域內淹沒的面積,需乘以人口密度才為受災人口
        pOutBuffer.Value(indexFloodArea1) = sumArea                                                   '統計出該區域內淹沒的面積,需乘以人口密度才為受災人口
        
        pOutCursor.InsertFeature pOutBuffer
        Set pPopuFeat = pPopuCursor.NextFeature
    
    Loop '''''''''''''''''''''''''''''''''''''''''''''''''''''''Do While Not filterFeat Is Nothing
                           
    Dim pPolygonLayer As IFeatureLayer
    Dim pMxDoc As IMxDocument
    Set pMxDoc = pApp.Document
    Set pPolygonLayer = New FeatureLayer
    Set pPolygonLayer.FeatureClass = pFClass
    pPolygonLayer.name = "受災人口"
    
    Call setFeatureLayerRenderer(pPolygonLayer, vbGreen)
    
    pMxDoc.FocusMap.AddLayer pPolygonLayer   'pRL
    pMxDoc.ActiveView.Refresh
'    Set pPolygonLayer = Nothing
    
    Set pWorkspaceFactory = Nothing
    Set pFeatureWorkspace = Nothing
    Set pFeaLyr = Nothing
    Set pOutBuffer = Nothing
    Set pOutCursor = Nothing
    
    Exit Sub 'exit sub to avoid error handler

errHandle:
    MsgBox "受災統計失敗" & Chr(13) & ERR.Description, vbInformation + vbOKOnly, "提示信息"
 
End Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产色一区二区| 欧美性生活一区| 久久久亚洲精品一区二区三区| 日日夜夜精品视频天天综合网| 欧美精品在线观看播放| 日本aⅴ免费视频一区二区三区| 欧美一区二区高清| 国产一区二区三区av电影| 国产清纯白嫩初高生在线观看91 | 欧美福利视频导航| 亚洲h在线观看| 精品国产乱码久久久久久1区2区 | 不卡一区二区中文字幕| 中文字幕在线观看一区二区| 在线日韩国产精品| 美女免费视频一区| 国产精品美女久久久久av爽李琼 | 爽好久久久欧美精品| 精品嫩草影院久久| 99国产精品久久久久| 日本欧美在线看| 欧美国产丝袜视频| 在线精品视频一区二区三四| 免费久久精品视频| 国产精品国产三级国产| 欧美日韩久久一区| 大尺度一区二区| 午夜伦欧美伦电影理论片| 精品国产髙清在线看国产毛片 | 激情综合网激情| 亚洲欧洲日韩一区二区三区| 在线播放中文一区| 成人午夜免费av| 蜜臀av一区二区在线免费观看 | 精品不卡在线视频| 色欧美日韩亚洲| 国内精品视频666| 亚洲国产成人av网| 国产三级一区二区| 欧美人妖巨大在线| 99在线精品观看| 国产自产高清不卡| 亚洲国产美女搞黄色| 中文字幕不卡的av| 亚洲国产日韩a在线播放| 国产日韩欧美麻豆| 日韩午夜在线影院| 欧美午夜精品一区二区三区| 成年人午夜久久久| 久久不见久久见免费视频7 | 国产精品色婷婷| 91精品在线麻豆| 欧美怡红院视频| eeuss鲁片一区二区三区在线观看| 日本中文一区二区三区| 一区二区三区成人在线视频| 中文字幕免费在线观看视频一区| 欧美一区二区三区啪啪| 欧美三级日韩在线| 91美女在线看| 成人黄色777网| 国产成人精品免费一区二区| 蜜臀av一区二区在线免费观看| 亚洲香肠在线观看| 一二三四社区欧美黄| 中文字幕日韩av资源站| 欧美激情自拍偷拍| 国产亚洲午夜高清国产拍精品 | 久久精品视频一区二区三区| 日韩一区二区三区电影在线观看| 欧美视频一区在线观看| 91久久精品日日躁夜夜躁欧美| 不卡av在线免费观看| 99久久久久久99| 99免费精品视频| av激情成人网| 91国产成人在线| 欧美中文字幕久久| 欧美日韩国产在线观看| 欧美巨大另类极品videosbest | 精品国产乱码久久久久久1区2区| 日韩免费看的电影| 日韩免费高清av| 国产亚洲精品超碰| 国产精品久久三| 日韩一区在线免费观看| 亚洲欧洲中文日韩久久av乱码| 最新不卡av在线| 一区二区三区四区视频精品免费 | 九九视频精品免费| 精品一区二区三区蜜桃| 国精产品一区一区三区mba视频| 久久国产精品99久久久久久老狼| 精东粉嫩av免费一区二区三区| 狠狠色丁香久久婷婷综合_中| 国产一区在线不卡| 99视频一区二区| 亚洲三级免费电影| 亚洲大片免费看| 国产一区二区在线观看免费| 粉嫩av亚洲一区二区图片| 91亚洲永久精品| 欧美一区二区精美| 亚洲国产精品精华液2区45| 日韩理论电影院| 日韩av一级电影| 国产成人欧美日韩在线电影| 91美女片黄在线观看91美女| 欧美放荡的少妇| 久久精品视频在线免费观看| 亚洲精品欧美综合四区| 男女性色大片免费观看一区二区 | 色噜噜狠狠色综合中国| 欧美美女bb生活片| 欧美国产综合色视频| 一区二区三区四区不卡在线 | 精品一区二区三区免费毛片爱| 成人av资源网站| 91精品国产综合久久蜜臀| 国产亚洲视频系列| 亚洲va欧美va天堂v国产综合| 国产成人免费在线观看| 欧美日韩久久久一区| 国产亚洲精品资源在线26u| 亚洲精品乱码久久久久久黑人| 麻豆国产欧美一区二区三区| 99综合影院在线| 精品国产乱码久久久久久免费 | 国产精品久久久久一区| 天堂蜜桃一区二区三区| 成人福利视频网站| 日韩一级二级三级| 亚洲一区在线观看免费观看电影高清 | 激情综合网av| 欧美日韩高清一区二区| 自拍av一区二区三区| 国产专区欧美精品| 欧美精品九九99久久| 一区二区中文视频| 国产高清精品在线| 日韩精品一区二区三区视频| 亚洲伊人色欲综合网| 成人av午夜电影| 久久免费看少妇高潮| 日韩精品91亚洲二区在线观看 | 久久久精品免费免费| 日本不卡视频一二三区| 在线视频欧美精品| 国产精品高潮呻吟久久| 国产69精品久久99不卡| 欧美精品一区二区三区视频| 日本不卡一二三区黄网| 欧美久久久久久久久| 玉米视频成人免费看| gogogo免费视频观看亚洲一| 久久久激情视频| 国产馆精品极品| 国产日韩综合av| 国产成人亚洲综合a∨婷婷图片| 欧美成人伊人久久综合网| 亚洲va国产va欧美va观看| 欧美亚洲动漫精品| 亚洲一区二区三区自拍| 91高清在线观看| 亚洲国产中文字幕在线视频综合| 91在线你懂得| 亚洲精选视频免费看| 色婷婷精品久久二区二区蜜臂av| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美日韩国产成人在线91| 亚洲一区二区三区影院| 欧美日韩视频一区二区| 一区二区免费在线| 欧美丝袜丝交足nylons| 日韩av一级电影| 精品99一区二区| 国产凹凸在线观看一区二区| 国产精品二区一区二区aⅴ污介绍| 成人av在线资源网站| 亚洲欧美日韩久久精品| 欧美日免费三级在线| 日本三级韩国三级欧美三级| 欧美α欧美αv大片| 国产凹凸在线观看一区二区| 亚洲欧洲日韩一区二区三区| 日本国产一区二区| 亚洲成人综合在线| 日韩精品中文字幕在线不卡尤物| 国产综合成人久久大片91| 国产精品欧美一区喷水| 欧美午夜视频网站| 久久不见久久见免费视频7| 久久久久国产精品厨房| 色综合天天综合色综合av| 亚洲午夜av在线| 日韩视频免费直播| 不卡一区在线观看| 丝袜国产日韩另类美女| 国产人伦精品一区二区| 欧洲一区在线观看|