Программное добавление точек к существующему файлу Shp

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Доброго времени суток. Подскажите начинающему программисту ArcGis как можно произвести программное добавление точек к существующему файлу shp. Заранее спасибо
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Программное добавление точек к существующему файлу Shp

Сообщение Дмитрий Барышников »

Например так:

Код: Выделить всё

IFeatureBufferPtr pFeatureBuffer;
IFeatureCursorPtr pFeatureCursor;
pFeatureClass->Insert(VARIANT_TRUE,&pFeatureCursor);
pFeatureClass->CreateFeatureBuffer(&pFeatureBuffer);

CComVariant ID;
IPointPtr pPoint(CLSID_Point);

pPoint->put_X(37);
pPoint->put_Y(55);
IGeometryPtr pOutGeom(pPoint);

pFeatureBuffer->putref_Shape(pOutGeom);
pFeatureCursor->InsertFeature(pFeatureBuffer,&ID);

pFeatureCursor->Flush();
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Спасибо, что откликнулись. :P
Дело в том, что я только начал что то писать под АРКГИС на Сшарп.
Но не в этом дело. Я хотел Вашей подсказки по вопросам организации ГЕО-информации.
Я нашел книгу по програмированию ArcObject, но ее авторы ссылаются на техническую документацию АРКГИС, а вы представляете как ее изучать. :?: Это же не книга. Мне бы даже точная ссылка на англоязычный сайт ЕСРИ .
Заранее спасибо
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Bishop писал(а):См. здесь и далее по библиотеке
http://edndoc.esri.com/arcobjects/9.2/N ... 176a9e.htm
http://edndoc.esri.com/arcobjects/9.2/N ... 907898.htm
Большое спасибо :wink:
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

что делает это код?
Сначала. по моему эта функция создает среду для редактирования (Feature),
потом ????????? :oops:

Код: Выделить всё

public void CreateFeature(IFeatureClass featureClass, IPoint point)
{
  // Ensure the feature class contains points.
  if (featureClass.ShapeType != esriGeometryType.esriGeometryPoint)
  {
    return ;
  }

  // Build the feature.
  IFeature feature = featureClass.CreateFeature();
  feature.Shape = point;

  // Apply the appropriate subtype to the feature.
  ISubtypes subtypes = (ISubtypes)featureClass;
  IRowSubtypes rowSubtypes = (IRowSubtypes)feature;
  if (subtypes.HasSubtype)
  {
    // In this example, the value of 3 represents the Cross subtype.
    rowSubtypes.SubtypeCode = 3;
  }

  // Initialize any default values the feature has.
  rowSubtypes.InitDefaultValues();

  // Update the value on a string field that indicates who installed the feature.
  int contractorFieldIndex = featureClass.FindField("CONTRACTOR");
  feature.set_Value(contractorFieldIndex, "K Johnston");

  // Commit the new feature to the geodatabase.
  feature.Store();
}
Я понимаю, что для Вас мой вопрос покажется туповатым, но я не могу до конца понять :roll:
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Не примите за наглость.
А этот код что делает?
Пример использования IFeatureClass.CreateFeatureBuffer :?: :?: :?:
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Нашел интересную ссылку
http://edn.esri.com/index.cfm?fa=downlo ... nloadId=89
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Доброго времени суток.
Разбирался с хелпами. Вроде тучи понемногу расступаются. :P
Уперся в таку проблему.
Есть код

Код: Выделить всё

                    IMxDocument pDoc = m_application.Document as IMxDocument;
                    IMap myMap = pDoc.Maps.get_Item(0);
                    IFeatureLayer featureLayer = myMap.get_Layers(null, true) as IFeatureLayer;

                    IFeatureClass featureClass = featureLayer.FeatureClass;
                    
                    IFeatureBuffer_Example(featureClass, 0, 0);
:?: Вопрос.
Что я не так делаю, чтобы добраться до IFeatureClass
Выбивает ошибка на строке

Код: Выделить всё

IFeatureClass featureClass = featureLayer.FeatureClass;
Заранее спасибо :?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Программное добавление точек к существующему файлу Shp

Сообщение Дмитрий Барышников »

Начнем по порядку вопросов
BodyZ писал(а):что делает это код?
1. Данный код создает точку в таблице (FeatureClass) с заданием атрибутов, из подтипов
BodyZ писал(а):Не примите за наглость.
А этот код что делает?
2. Данный код создает курсор добавления и вносит геометрию в таблицу (FeatureClass) с добавлением нулевых атрибутов
BodyZ писал(а):Что я не так делаю, чтобы добраться до IFeatureClass
3.
А слои подгружены (хотя бы один)? Данная процедура работает только в ArcMap и для первого фрейма (см. pDoc.Maps.get_Item(0))!
Здесь ошибка в этом месте IFeatureLayer featureLayer = myMap.get_Layers(null, true) as IFeatureLayer;
Должно быть IFeatureLayer featureLayer = myMap.get_Layer(0) as IFeatureLayer;
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Спасибо за помощь. Буду пробовать.
С наступающими праздниками. Крепкого здоровья, успехов в делах :wink:
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Программное добавление точек к существующему файлу Shp

Сообщение Дмитрий Барышников »

И вас с праздниками.
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Доброго времени суток. Извините за долгое отсуцтвие :lol: Плотно уперся рогом, как не было бы мне стыдно признаться :cry: Подскажите плиз поподробней как добавить точки к слою :oops:, если я имею IFeatureLayer :?:
Простите за назойливость, уж очень хочется тронуться с места :D
Заранее спасибо
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Программное добавление точек к существующему файлу Shp

Сообщение BodyZ »

Спасибо за помощь.
Есть другой вопрос. Как задать географические координаты для точки если Point.X Point.Y прямоугольные. Заранее спасибо
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей