На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Параметры mifInitLoadToMapEx

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Параметры mifInitLoadToMapEx
 
Здравствуйте.

Делаю пакетную загрузку миф\мид в проект

Посмотрел SDK, сделал обертки API функций
Сделал маленький тест на 1 слой.
Все работает! Сит создается, объекты присутствуют, но все без кода, т.к. в семантике его и нет.
Но т.к. в си не силен, пример до конца не могу понять.

Подскажите какой и куда передать параметр, чтобы сразу назначить нужный код создаваемым объектам,
как это сделано в панораме.
В тесте, я ему пытался установить код 71123000, но что-то не вышло.
Код
procedure TForm7.Button2Click(Sender: TObject);
var
  MIFTOMAP: HMIFTOMAP;
  Handle : HMESSAGE;
  NameMif: string;
  NameRsc: string;
  ProjectName: string;
  regname: string;
  mapname: string;
  
  scale: Integer;
  semnumber: Integer;
  rscininame: String;
  CodeName: AnsiString;
  codetype: Integer;
  Incode: Integer;

  map: HMAP; 
  rsc: HRSC; 
  res : Integer;
  addflag: Integer;
  ischangexy: Integer; 
  frec: Integer; 
  isutf8: Integer;
  ismifsave: Integer;
  isdrawsave: Integer;
begin
  Handle := 0;
  NameMif := 'z:\work\tst.mif';
  NameRsc := 'z:\work\tst.rsc';
  ProjectName := '';//'z:\work\prj.prj';
  scale := 10000; 
  semnumber := 0;
  rscininame := '';
  CodeName := '';
  codetype := 0; 

  rsc := mapOpenRsc(GTKPChar(GTKString(NameRsc)));
  Incode := mapGetRscObjectCodeByNumber(rsc, 71123000, OL_SQUARE);

  mapName := 'z:\work\test.sit';
  regName := 'test';
  map:= 0;
  addFlag:= 0;
  ischangexy := 0;
  frec := 0;        
  isutf8 := 0;
  ismifsave:= 1;
  isdrawsave:= 0;
  
  MIFTOMAP := mifInitLoadToMapEx(
    handle, 
    PChar(NameMif), 
    PChar(NameRsc), 
    PChar(ProjectName), 
    scale, 
    semnumber,
    PChar(rscininame),
    sizeof(rscininame),
    PAnsiChar(CodeName), 
    sizeof(CodeName),
    codetype, 
    Incode
  );
  try
    res := mifSetupLoadToMap(
      MIFTOMAP,
      PChar(NameMif), 
      PAnsiChar(CodeName), 
      semnumber,
      Incode, 
      ismifsave, 
      isdrawsave
    );
  
    res := mifLoadToMapUn(
      MIFTOMAP,
      map,
      PChar(NameMif),
      PChar(mapName),
      PChar(NameRsc), 
      PChar(regname), 
      scale,
      semnumber,
      addFlag,
      ischangexy,
      frec,
      isutf8
    );
    
  finally
    mifFreeLoadToMap(MIFTOMAP);
    mapCloseRsc(rsc);
  end;
end;
 
Добрый день!
В тестовом примере необходимо объявить массив Array [4]. В Array [1] положить Incode для полигона. В Array [0] размещается код для линии, в Array [2] - для точечных.
В функции передать параметр Array вместо Incode. Лучше использовать вариант с проектом настроек ProjectName. Он создается в текстовом редакторе формата :
.INI
.RSC
.OBJ  1  // КОЛИЧЕСТВО КОДОВ
.SQR  S0071123000 // КЛЮЧ ОБЪЕКТА
.END
При использовании ProjectName заполнять Array не надо.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности