VBA-новичок

0 голосов
спросил 08 Авг, 03 от Svetlana_A (180 баллов) в категории Программные продукты Esri
Помогите кто может! Как с помощью VBA в среде ArcGIS 8.1 нарисовать линию или хотябы что нибудь. Готовые примеры не проходят. Ошибок нет, а рисует кудато в пустоту.

3 Ответы

0 голосов
ответил 08 Авг, 03 от Alexander1 (32,520 баллов)

Светлана, уточните, какую линию Вы хотите построить:

- графика, или Feature?

- Line or Polylilne?

0 голосов
ответил 08 Авг, 03 от Svetlana_A (180 баллов)

Александр! Мне надо въехать в среду. Поэтому любую между двумя точкими, допустим определенными как IPoint. Спосибо за то, что откликнулся. буду ждать ответа.

0 голосов
ответил 08 Авг, 03 от Alexander1 (32,520 баллов)

Светлана,

1. В ArcCatalog-е создайте новый шейп-файл с Feature TRype = Polyline

2. Стартуйте ArcMap, добавьте этот шейп как слой № 0,

3. Создайте новый UIButtonControl и в процедуру UIButtonControl1_Click вставьте вызов процедуры LineCreate, текст которой следует ниже:

Private Sub LineCreate()
    Dim pApp As IApplication
    Dim pMxDoc As IMxDocument
    Dim pMap As IMap
    Dim pFLayer As IFeatureLayer
    Dim pFClass As IFeatureClass
    Dim pDataSet As IDataset
    Dim pFeature As IFeature
    Dim pLine As ILine
   
    Dim pEditor As IEditor
    Dim pID As New UID

    Dim pFromPoint As IPoint
    Dim pToPoint As IPoint
   
    Dim iLoop As Integer
    Dim pSegColl As ISegmentCollection
  
    Set pApp = Application
    Set pMxDoc = ThisDocument
    Set pMap = pMxDoc.FocusMap
   
    pID = "esriCore.Editor"
    Set pEditor = pApp.FindExtensionByCLSID(pID)
   
   ' Get the first layer we want to edit:
    Set pFLayer = pMap.Layer(0)
               
    Set pFClass = pFLayer.FeatureClass
    Set pDataSet = pFClass
    pEditor.StartEditing pDataSet.Workspace

    Set pFeature = pFClass.CreateFeature
    Set pLine = New esriCore.Line

    Set pFromPoint = New Point
    Set pToPoint = New Point
   
    pFromPoint.PutCoords 2798250, 654850
    pToPoint.PutCoords 2801850, 656150
   
    pLine.PutCoords pFromPoint, pToPoint
    Set pSegColl = New Polyline
    pSegColl.AddSegment pLine

    Set pFeature.Shape = pSegColl

'--------------------------------------------
   
    pEditor.StartOperation
   
    pFeature.Store
   
    pEditor.StopOperation "AddLineFeature"
    pEditor.StopEditing True
   
    pMxDoc.ActiveView.Refresh


End Sub

 

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...