Полигон из нескольких частей

0 голосов
спросил 12 Окт, 09 от raxman (120 баллов) в категории Программные продукты Esri
дорогие знатоки, я столкнулся с небольшой проблемой:
надо программно создать слой с набором полигонов на основе текстового файла. (если быть точным ведомость поворотных точек)
части разделены лишними строчками
проблема в том чтобы все контура были в 1 полигоне в нескольких частях

сейчас делаю каждый контур в отдельном полигоне и выглядит это так
'   XCoord_ComboBox.Value имя столбца в таблице с координатами Х
'   YCoord_ComboBox.Value имя столбца в таблице с координатами У
'   TextBoxTXTFullFileName путь к файлу с таблицей
'   pFeatClass уже открытый FeatureClass в шейпе подгоровленном для редактирования

   Dim pTable As ITable
   Set pTable = GetTableFromTXT(TextBoxTXTFullFileName)
   Dim pCursor As ICursor    
   Set pCursor = pTable.Search(Nothing, True)
   Dim myptcol as IpointCollection
   Set myptcol = New Polygon 
   dim pRow as IRow
   Set pRow = pCursor.NextRow

    If IsNull(pRow.Value(pTable.FindField(XCoord_ComboBox.Value))) Or _
       IsNull(pRow.Value(pTable.FindField(YCoord_ComboBox.Value))) Then
                    Set pRow = pCursor.NextRow
           End If  'установка курсора на 2ю строку если в первой нет ХУ координат

           Dim FlagPolygonIsFull As Boolean

    While Not pRow Is Nothing 'пока не кончилисть строчки
        If Not (IsNull(pRow.Value(pTable.FindField(XCoord_ComboBox.Value))) Or _
                IsNull(pRow.Value(pTable.FindField(YCoord_ComboBox.Value)))) Then 'если в строчке есть ХУ координаты
       
            x = pRow.Value(pTable.FindField(XCoord_ComboBox.Value)) '
            Y = pRow.Value(pTable.FindField(YCoord_ComboBox.Value)) '
            pTempPoint.PutCoords x, Y '
            myptcol.AddPoint pTempPoint
            FlagPolygonIsFull = True
'первая часть ифа собирает все координаты в коллекциюточек
        Else 'если в строчке нет ХУ координат то записываем коллекцию в класс
            Set pFeature = pFeatClass.CreateFeature
            Set pFlds = pFeature.Fields
            Set pFeature.Shape = myptcol
            pFeature.Store
            Set myptcol = New Polygon
            FlagPolygonIsFull = False
     End If

     Set pRow = pCursor.NextRow
    Wend

в итоге мы получаем шейп файл с несколькими записями
а надо с одном в нескольких частях
(грубо говоря я каждый раз делаю "завершить скетч" а надо сделать "завершить часть")

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

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