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

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

?? main.bas

?? this is a program to clean shapefiles
?? BAS
字號:
Attribute VB_Name = "Clean"
Option Explicit

Private m_pGxDialog As IGxDialog
Private m_pGxObjectFilter As IGxObjectFilter

Public Sub Main()
  Dim pFeature As IFeature
  Dim pInFeatureClass As IFeatureClass
  Dim pFeatureCursor As IFeatureCursor
  Dim pGeometry As IGeometry
  Dim pInsertFeatureBuffer As IFeatureBuffer
  Dim pInsertFeatureCursor As IFeatureCursor
  Dim pOutFeatureClass As IFeatureClass
  Dim pProgressDlgFact As IProgressDialogFactory
  Dim pProgressDialog As IProgressDialog2
  Dim pStepProgressor As IStepProgressor
  Dim pTopoOperator As ITopologicalOperator2
  Dim pTrackCancel As ITrackCancel
  
  Dim bContinue As Boolean
  Dim lFeatureCount As Long
  Dim lTotalFeatureCount As Long
  Dim lEmptyFeatureCount As Long
  Dim sFinalMessage As String
  
  On Error GoTo ErrorHandler
  
  Set pInFeatureClass = GetShapefile
  If pInFeatureClass Is Nothing Then
    MsgBox "Error selecting Shapefile.  Exiting."
    Exit Sub
  End If
  
  'Exit if featureclass has no shapes
  lTotalFeatureCount = pInFeatureClass.FeatureCount(Nothing)
  If lTotalFeatureCount = 0 Then
    MsgBox "No features found in shapefile. Exiting"
    Exit Sub
  End If
  
  'Create a new Shapefile
  Set pOutFeatureClass = CreateNewShapefile(pInFeatureClass)
  If pOutFeatureClass Is Nothing Then
    MsgBox "Error creating new Shapefile, check folder permissions."
    Exit Sub
  End If
  
  'Show a progress dialog while we cycle through the features
  Set pTrackCancel = New CancelTracker
  Set pProgressDlgFact = New ProgressDialogFactory
  Set pProgressDialog = pProgressDlgFact.Create(pTrackCancel, 0)
  pProgressDialog.CancelEnabled = True
  pProgressDialog.Title = "Exporting and Cleaning Shapefile"
  pProgressDialog.Animation = esriProgressGlobe
  bContinue = True

  'Set the properties of the Step Progressor
  Set pStepProgressor = pProgressDialog
  pStepProgressor.MinRange = 0
  pStepProgressor.MaxRange = lTotalFeatureCount
  pStepProgressor.StepValue = 1
  
  'Create an insert cursor
  Set pInsertFeatureCursor = pOutFeatureClass.Insert(True)
  Set pInsertFeatureBuffer = pOutFeatureClass.CreateFeatureBuffer

  'Loop through all features in the feature class, correcting each one,
  'and write it out to the new shapefile
  Set pFeatureCursor = pInFeatureClass.Search(Nothing, False)
  Set pFeature = pFeatureCursor.NextFeature
  Do While Not pFeature Is Nothing
    'Update progress dialog
    lFeatureCount = lFeatureCount + 1
    pStepProgressor.Message = lFeatureCount & " of " & lTotalFeatureCount & " Features processed"
    'Stop processing features if 'Cancel' button is selected
    bContinue = pTrackCancel.Continue
    pStepProgressor.Step
    If Not bContinue Then Exit Do
    
    'If the feature has an invalid shape, create a new empty one
    If pFeature.Shape Is Nothing Then
      Set pFeature.Shape = CreateNewGeometry(pOutFeatureClass)
    End If
    'Simplify each feature and insert into new feature class
    Set pTopoOperator = pFeature.Shape
    pTopoOperator.IsKnownSimple = False
    pTopoOperator.Simplify
    InsertFeature pInsertFeatureCursor, pInsertFeatureBuffer, pFeature, pTopoOperator
    'Count number of empty features
    Set pGeometry = pTopoOperator
    If pGeometry.IsEmpty Then
      lEmptyFeatureCount = lEmptyFeatureCount + 1
    End If
    'Retrieve next feature
    Set pFeature = pFeatureCursor.NextFeature
  Loop
  
  pProgressDialog.HideDialog
  
  Set pInsertFeatureBuffer = Nothing
  Set pInsertFeatureCursor = Nothing
  
  'Recreate indexes on new Shapefile
  CreateIndexes pInFeatureClass, pOutFeatureClass
  
  'Create summary report message
  If bContinue Then
    sFinalMessage = "Operation completed successfully." & vbLf & vbLf
  Else
    sFinalMessage = "Job cancelled." & vbLf & vbLf
  End If
  sFinalMessage = sFinalMessage & lFeatureCount & " Features processed." & vbLf
  If Not lEmptyFeatureCount = 0 Then
    sFinalMessage = sFinalMessage & vbLf & lEmptyFeatureCount & " Features were found to have no shape."
  End If
  
  MsgBox sFinalMessage
  
  Set m_pGxObjectFilter = Nothing
  Set m_pGxDialog = Nothing
  
  Exit Sub 'Exit to avoid error handler
  
ErrorHandler:
  MsgBox "An unexpected error occurred." & vbLf & vbLf & _
          lFeatureCount & " Features processed." & vbLf
End Sub

Private Function GetShapefile() As IFeatureClass
  Dim pEnumGxObject As IEnumGxObject
  Dim pFeatureClass As IFeatureClass
  Dim pGxDataset As IGxDataset
  
  On Error GoTo ErrorHandler
  
  'Have the user select a shapefile
  Set m_pGxDialog = New GxDialog
  Set m_pGxObjectFilter = New GxFilterShapefiles
  
  Set m_pGxDialog.ObjectFilter = m_pGxObjectFilter
  m_pGxDialog.Title = "Select a Shapefile to Clean:"
  If m_pGxDialog.DoModalOpen(0, pEnumGxObject) Then
    pEnumGxObject.Reset
    Set pGxDataset = pEnumGxObject.Next
    Set pFeatureClass = pGxDataset.Dataset
  End If
  Set GetShapefile = pFeatureClass
  
  Exit Function
  
ErrorHandler:
  Set GetShapefile = Nothing
End Function

Private Function CreateNewShapefile(pInFeatureClass As IFeatureClass) As IFeatureClass
  Dim pClone As IClone
  Dim pFeatureWorkspace As IFeatureWorkspace
  Dim pFields As IFields
  Dim pGxFile As IGxFile
  Dim pNewFeatureClass As IFeatureClass
  Dim pWorkspaceFactory As IWorkspaceFactory
  
  On Error GoTo ErrorHandler
  
  m_pGxDialog.Title = "Enter New Output Shapefile:"
  If m_pGxDialog.DoModalSave(0) Then
    Set pGxFile = m_pGxDialog.FinalLocation
  Else
    Set CreateNewShapefile = Nothing
    Exit Function
  End If
  
  Set pWorkspaceFactory = New ShapefileWorkspaceFactory
  Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(pGxFile.Path, 0)
  Set pClone = pInFeatureClass.Fields
  Set pFields = pClone.Clone
  Set pNewFeatureClass = pFeatureWorkspace.CreateFeatureClass(m_pGxDialog.Name, pFields, Nothing, Nothing, esriFTSimple, pInFeatureClass.ShapeFieldName, "")
  Set CreateNewShapefile = pNewFeatureClass
  
  Exit Function
  
ErrorHandler:
  Set CreateNewShapefile = Nothing
  
End Function


Private Sub InsertFeature(pInsertFeatureCursor As IFeatureCursor, pInsertFeatureBuffer As IFeatureBuffer, pOrigFeature As IFeature, pGeometry As IGeometry)
  Dim pFields As IFields
  Dim pField As IField
  Dim pPoint As IPoint
  Dim FieldCount As Integer

  'Copy the attributes of the orig feature the new feature
  Set pFields = pOrigFeature.Fields
  For FieldCount = 0 To pFields.FieldCount - 1  'skip OID and geometry
    Set pField = pFields.Field(FieldCount)
    If Not pField.Type = esriFieldTypeGeometry And Not pField.Type = esriFieldTypeOID _
      And pField.Editable Then
        pInsertFeatureBuffer.Value(FieldCount) = pOrigFeature.Value(FieldCount)
    End If
  Next FieldCount
    
  Set pInsertFeatureBuffer.Shape = pGeometry
  pInsertFeatureCursor.InsertFeature pInsertFeatureBuffer
  
End Sub


Private Sub CreateIndexes(pInFeatureClass As IFeatureClass, pOutFeatureClass As IFeatureClass)
  Dim pClone As IClone
  Dim pOutIndexes As IIndexes
  Dim pIndex As IIndex
  Dim pNewIndex As IIndex
  Dim iIndexCount As Integer
  Dim pFields As IFields
  
  Set pClone = pInFeatureClass.Indexes
  Set pOutIndexes = pClone.Clone

  For iIndexCount = 0 To pOutIndexes.IndexCount - 1
    Set pNewIndex = pOutIndexes.Index(iIndexCount)
    Set pFields = pNewIndex.Fields
      pOutFeatureClass.AddIndex pNewIndex
  Next iIndexCount
  
End Sub

Private Function CreateNewGeometry(pFeatureClass As IFeatureClass) As IGeometry
  Select Case pFeatureClass.ShapeType
    Case esriGeometryPoint
      Set CreateNewGeometry = New Point
    Case esriGeometryMultipoint
      Set CreateNewGeometry = New Multipoint
    Case esriGeometryPolyline
      Set CreateNewGeometry = New Polyline
    Case esriGeometryPolygon
      Set CreateNewGeometry = New Polygon
  End Select
End Function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内一区二区视频| 久久你懂得1024| 亚洲午夜视频在线观看| 色婷婷激情一区二区三区| 亚洲日本成人在线观看| 在线免费精品视频| 亚洲国产一区二区a毛片| 欧美日韩日日夜夜| 蜜臀久久99精品久久久久久9| 欧美一卡二卡三卡四卡| 久久精品国产在热久久| 国产网站一区二区| 91视视频在线直接观看在线看网页在线看 | 欧美美女一区二区| 亚洲gay无套男同| 日韩精品一区二区三区视频播放 | 欧美大片在线观看一区二区| 韩国精品在线观看| 国产精品美女久久久久久久久 | 欧美变态口味重另类| 国产成人免费视| 亚洲精品日韩一| 欧美成人高清电影在线| 成人avav影音| 日韩国产欧美在线播放| 国产清纯在线一区二区www| 色婷婷精品久久二区二区蜜臂av| 蜜臀久久99精品久久久画质超高清| 精品精品国产高清a毛片牛牛| 成人av资源网站| 日韩激情在线观看| 国产精品毛片久久久久久| 欧美日韩成人在线| 成人性视频网站| 日韩国产高清在线| 成人欧美一区二区三区小说| 91精品国产综合久久久久久久| 国产传媒欧美日韩成人| 午夜影院在线观看欧美| 日本一区二区三区国色天香| 欧美日韩精品一二三区| 成人黄色av电影| 久久草av在线| 亚洲成人免费视| 中文字幕在线不卡一区| 日韩精品专区在线影院观看| 久久青草欧美一区二区三区| 在线免费一区三区| 成人激情图片网| 国内精品第一页| 日韩精品国产精品| 亚洲人成伊人成综合网小说| 久久久国产午夜精品| 91精品欧美久久久久久动漫| 色婷婷av一区| 波多野结衣中文一区| 极品瑜伽女神91| 日韩成人免费看| 亚洲香蕉伊在人在线观| 亚洲欧美日韩综合aⅴ视频| 久久久久国产免费免费| 91精品国产品国语在线不卡| 欧美性xxxxxxxx| 91免费看`日韩一区二区| 国产成人8x视频一区二区| 美国十次了思思久久精品导航| 亚洲一区免费视频| 亚洲免费电影在线| 自拍视频在线观看一区二区| 欧美国产精品中文字幕| 日韩精品自拍偷拍| 欧美电影免费观看高清完整版在线观看| 在线一区二区观看| 在线观看视频一区| 欧美这里有精品| 欧美无人高清视频在线观看| 91黄色激情网站| 欧美在线小视频| 欧美性做爰猛烈叫床潮| 欧美中文一区二区三区| 欧美午夜精品久久久久久孕妇 | 成人妖精视频yjsp地址| 国产高清精品网站| 成人中文字幕电影| 成人黄色777网| 处破女av一区二区| 99久久免费视频.com| 色婷婷综合久久久| 欧美在线观看视频一区二区| 欧美日韩免费在线视频| 69p69国产精品| 精品久久久久久久久久久久包黑料 | 不卡av在线免费观看| 91在线国内视频| 欧美无砖专区一中文字| 91精品在线麻豆| 欧美电视剧免费全集观看| 国产亚洲视频系列| 亚洲欧洲三级电影| 亚洲午夜电影在线观看| 日本三级亚洲精品| 国产精品正在播放| 色综合天天综合狠狠| 欧美日韩一区二区在线观看| 欧美岛国在线观看| 国产精品久久久久久福利一牛影视 | 日韩av一二三| 国产福利一区二区三区视频在线| av电影天堂一区二区在线观看| 一本色道久久加勒比精品| 91麻豆精品国产自产在线| 久久蜜桃av一区精品变态类天堂| 国产精品久久久99| 视频一区欧美精品| 成人免费高清视频在线观看| 欧美体内she精视频| 精品对白一区国产伦| 1024成人网| 免费精品99久久国产综合精品| 成人午夜碰碰视频| 欧美日本一道本| 中文字幕在线一区二区三区| 亚洲亚洲精品在线观看| 国产伦精品一区二区三区免费| 色呦呦国产精品| 欧美成人精精品一区二区频| 国产精品久久久久久久裸模| 蜜臀av亚洲一区中文字幕| 9i在线看片成人免费| 欧美一级xxx| 夜夜嗨av一区二区三区四季av| 国产曰批免费观看久久久| 欧美性做爰猛烈叫床潮| 中文字幕精品一区| 麻豆一区二区三| 欧美色图12p| 亚洲视频你懂的| 国产精品一区久久久久| 91精品国产色综合久久不卡电影 | 性久久久久久久久久久久| 丁香网亚洲国际| 1000部国产精品成人观看| 秋霞电影一区二区| 欧美性色欧美a在线播放| 国产精品网站在线观看| 久久99精品国产麻豆不卡| 欧美三级视频在线观看| 亚洲人成在线播放网站岛国| 国产精品亚洲午夜一区二区三区| 欧美放荡的少妇| 亚洲国产一区二区在线播放| 97精品国产97久久久久久久久久久久 | 日韩av电影天堂| 欧美亚洲国产一区二区三区va| 中文字幕在线观看一区| 国产经典欧美精品| 久久综合一区二区| 蜜臀a∨国产成人精品| 欧美剧情片在线观看| 亚洲一区二区五区| 色综合久久九月婷婷色综合| 18欧美亚洲精品| 99久久国产综合精品麻豆 | 综合色中文字幕| 国产suv精品一区二区三区| 久久先锋影音av鲁色资源网| 麻豆国产一区二区| 欧美成人伊人久久综合网| 麻豆精品视频在线| 日韩欧美在线1卡| 另类中文字幕网| 亚洲精品一区二区三区99| 久久91精品国产91久久小草| 欧美大片顶级少妇| 久草热8精品视频在线观看| 亚洲精品一区二区在线观看| 国内精品视频666| 中文在线资源观看网站视频免费不卡| 国产精品一二三四五| 国产精品天美传媒沈樵| 99久久精品免费看国产| 亚洲乱码国产乱码精品精98午夜 | 欧美午夜寂寞影院| 午夜精品久久一牛影视| 欧美一二三在线| 国产精品亚洲人在线观看| 国产精品午夜在线观看| 99精品视频在线免费观看| 一卡二卡欧美日韩| 91 com成人网| 成人黄色小视频在线观看| 亚洲欧美日韩在线| 欧美精品欧美精品系列| 久久精品国产精品亚洲综合| 久久久国产一区二区三区四区小说 | 亚洲国产欧美日韩另类综合| 欧美精品国产精品| 国产呦萝稀缺另类资源| 亚洲欧洲av在线| 欧美高清视频在线高清观看mv色露露十八 |