www.map-info.ru :: Просмотр темы - Добавление данных к слою...
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - 'MapX' Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Kirill20



Зарегистрирован: 17.03.2011
Сообщения: 1

СообщениеДобавлено: Чт Мар 17, 2011 2:04 pm    Заголовок сообщения: Добавление данных к слою... Добавить ответ со ссылкой на данный текст

Работаю сейчас с библиотекой MapX 5.0. Есть задача создать новый слой и привязать к объектам этого слоя данные, например создать колонку содержащую имена этих объектов... Слой создает, объекты рисует (в данном случае точки), а вот данные привязать неполучается
Код:

Var
  NewObj: CMapXFeature;
  Style: CMapXStyle;
  mxPnt: CMapXPoint;
  n: integer;
  x,y: double;
  ADO: TADOCommand;
  mxFlds: CMapXFields;
  mxBdLr: CmApXBindLayer;
  ds: Dataset;
  mxRows: CMapXRowValues;
  mxRow: CMapXRowValue;
begin
  n:=100;
  FMapInfo.Layers.CreateLayer('test','C:\test',EmptyParam,EmptyParam,EmptyParam);
  ADO:=TADOCommand.Create(nil);
  mxFlds:=CoFields.Create;
  mxBdLr:=CoBindLayer.Create;
  mxRows:=CoRowValues.Create;
  mxRow:=CoRowValue.Create;
  for i:=1 to n do
  begin
    NewObj:=CoFeature.Create;
    mxPnt:=CoPoint.Create;
    Style:=CoStyle.Create;
    NewObj.Attach(FMapInfo.DefaultDispatch);
    NewObj.type_:=miFeatureTypeSymbol;
    Style.SymbolBitmapColor:=RGB(0,0,0);
    //получаем координаты...
    x:=x*180/pi;
    y:=y*180/pi;
    mxPnt.Set_(x,y);
    NewObj:=FMapInfo.FeatureFactory.CreateSymbol(mxPnt,Style);
    NewObj.KeyValue:=FBase.ID;
    FMapInfo.Layers.Item['test'].AddFeature(NewObj,EmptyParam);
    NewObj:=nil;
    Style:=nil;
    mxPnt:=nil;
  end;
  ADO.ConnectionString:='строка подключения к базе';
  ADO.CommandText:='SELECT NAME FROM TABLE';
  mxFlds.Add(ADO.Execute.Fields.Item['NAME'],'NAME',EmptyParam,EmptyParam);
  mxBdLr.LayerName:='test';
  mxBdLr.LayerType:=miBindLayerTypeNormal;
  ds:=FMapInfo.DataSets.Add(miDataSetADO,ADO.Execute,EmptyParam,'NAME',EmptyParam,mxBdLr,mxFlds,EmptyParam);
  FMapInfo.Layers.Item['test'].BeginAccess(miAccessReadWrite);
  mxRow.Dataset:=ds;
  mxRow.Field:=ds.Fields.Item['NAME'];
  mxRows.Add(mxRow);
  FMapInfo.Layers.Item['test'].UpdateFeature(FMapInfo.Layers.Item['test'].AllFeatures.Item[1],EmptyParam,mxRows);
end;


Постоянно exception на последней строчкеSad( Может кто подскажет что не так делаю...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - 'MapX' Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru