[QUOTE]
Ксения Смирнова написал:
А код сам правильно перенесён ?[/QUOTE]
написал, проверил, протестировал - работает
[CODE]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace KsuhaSmirnova
{
public partial class Form1 : Form
{
private const string GisLibrary = "mapacces64.dll"; // dll гис-ядра
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern int mapOpenMap(string name, int mode);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern int mapCreateSiteObject(int map, int site);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern int mapCreateSiteSelectContext(int map, int site);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern void mapSelectObject(int sel, int code, int flag);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern int mapRscObjectCode(int map, int code, int local);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern int mapSeekSiteSelectObject(int map, int site, int sel, int obj, int flag);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern int mapAppendSemanticDouble(int obj, int code, double value);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern void mapCommitObject(int obj);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern void mapDeleteSelectContext(int sel);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern void mapFreeObject(int obj);
[DllImport(GisLibrary, CharSet = CharSet.Ansi)]
public static extern void mapCloseMap(int map);
public Form1()
{
InitializeComponent();
}
public void ForKsuhaSmirnova(int map, double Hotn)
{
int obj = mapCreateSiteObject(map, map); // создать контейнер для объекта
int sel = mapCreateSiteSelectContext(map, map); // создать поисковик по карте
mapSelectObject(sel, -1, 0); // "потушить" в поисковике все объекты (по умолчанию активны все объекты карты)
// выбрать в поисковике только объекты с кодом 71111110 и площадой локализацией
mapSelectObject(sel, mapRscObjectCode(map, 71111000, 1), 1);
int flag = 0;
while (mapSeekSiteSelectObject(map, map, sel, obj, flag) != 0) // перебираем всё что найдено
{
mapAppendSemanticDouble(obj, 1, Hotn); // добавляем семантику относительная высота (код 1) со значением Hotn (поступающим на вход процедуры)
mapCommitObject(obj); // записываем содержимое "контейнера объекта" на карту
flag = 4;
}
mapDeleteSelectContext(sel); // удаляем поисковик
mapFreeObject(obj); // удаляем контейнер для объекта
}
private void button1_Click(object sender, EventArgs e)
{
int map = mapOpenMap("D:\\Sample\\KsuhaSmirnova\\map\\НАЗВАНИЕ_КАРТЫ_ЛЕСОВ.sitx", 0);
ForKsuhaSmirnova(map, 27.4);
mapCloseMap(map);
}
}
}[/CODE]