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

Заполнение семантики объектов (относительные высоты)

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2 3 4 След.
RSS
Заполнение семантики объектов (относительные высоты), C#
 
Цитата
Ксения Смирнова написал:
Методы берутся из класса MAPAPI? Или откуда берутся данные методы?

MAPAPI - это не класс. Это программный интерфейс, содержащий методы работы с ГИС-ядром, соответствующие стандарту интерфейса API.

Более "высокий" уровень - использование компонент GIS ToolKit или GIS ToolKit Active. Там как раз и будут компоненты и классы.
На своем базовом уровне компоненты и классы GIS ToolKit и GIS ToolKit Active также используют вызовы MAPAPI.

Допускается вариант совместного использования компонент GIS ToolKit или GIS ToolKit Active вместе с вызовами MAPAPI.

Приведенный выше пример реализован на чистом MAPAPI.


Судя по всему, Вы не до конца разобрались в имеющихся технологиях и не выбрали для себя способ разработки.



Справочные системы по средствам разработки (on-line):

GIS ToolKit 13

GIS ToolKit Active 12

Справочник по функциям интерфейса "MAPAPI"



Документация по средствам разработки (pdf):

GIS ToolKit 13

GIS ToolKit Active 12

Справочник по функциям интерфейса "MAPAPI"



В состав GIS ToolKit и GIS ToolKit Active входят примеры, которые рекомендуется рассмотреть, чтобы лучше понимать, как с этими инструментариями работать.
 
Цитата
Ксения Смирнова написал:
Или откуда берутся данные методы?
это файлы с расширением CS которые содержат

Цитата
Что за mapproc и maptype?
mapproc
Код
namespace mapproc
{
  [DllImport(GisLibrary, CharSet = CharSet.Ansi)]
  public static extern HMAP mapOpenMap(string name, int mode);
     
  [DllImport(GisLibrary, CharSet = CharSet.Ansi)]
  public static extern void mapCloseMap(HMAP hMap);
  ....
  ....
} 

maptype - объявление типов .... что-то по на подобии такого
Код
namespace maptype 
{  
   [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
   public struct DFrame
   {
     public double X1;
     public double Y1;
     public double X2;
     public double Y2;
     public bool Empty
     {
        get { return (X1.Equals(0.0) && X2.Equals(0.0) && Y1.Equals(0.0) && Y2.Equals(0.0)); }
     }
   }
  
   [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    public struct DOUBLEPOINT                     // КООРДИНАТЫ ТОЧКИ
    {
        public double X;
        public double Y;
        public void Point(double x, double y)
        {
            X = x; Y = y;
        }
    }
   

    public enum MAPTYPE                     // Типы флага "Тип карты"
    {
       TOPOGRAPHIC  = 1,                    // Топографическая
       CK_42        = 1,                    // Система координат 42 года
       GEOGRAPHIC   = 2,                    // Обзорно-географическая
       GLOBE        = 3,                    // Космонавигационная (ГЛОБУС)
       CITYPLAN     = 4,                    // Топографический план города
       LARGESCALE   = 5,                    // Крупномасштабный план местности
       AERONAUTIC   = 6,                    // Аэронавигационная
       SEANAUTIC    = 7,                    // Морская навигационная
       AVIATION     = 8,                    // Авиационная
       BLANK        = 9,                    // Бланковка
       UTMNAD27     = 10,                   // UTM на North American Datum 1927
       UTMWGS84     = 11,                   // UTM на WGS84
       UTMTYPE      = 12,                   // UTM
       CK_63        = 13,                   // Система координат 63 года
       CK_95        = 14                    // Система координат 95 года
    }
    ....
    ....
    ....
    ....
}  
Изменено: KFF - 07.04.2020 19:24:05
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Цитата
Денис Вицко написал:
Цитата
Ксения Смирнова написал:
Методы берутся из класса MAPAPI? Или откуда берутся данные методы?

MAPAPI - это не класс. Это программный интерфейс, содержащий методы работы с ГИС-ядром, соответствующие стандарту интерфейса API.

Более "высокий" уровень - использование компонент GIS ToolKit или GIS ToolKit Active. Там как раз и будут компоненты и классы.
На своем базовом уровне компоненты и классы GIS ToolKit и GIS ToolKit Active также используют вызовы MAPAPI.

Допускается вариант совместного использования компонент GIS ToolKit или GIS ToolKit Active вместе с вызовами MAPAPI.

Приведенный выше пример реализован на чистом MAPAPI.


Судя по всему, Вы не до конца разобрались в имеющихся технологиях и не выбрали для себя способ разработки.



Справочные системы по средствам разработки (on-line):

GIS ToolKit 13

GIS ToolKit Active 12

Справочник по функциям интерфейса "MAPAPI"



Документация по средствам разработки (pdf):

GIS ToolKit 13

GIS ToolKit Active 12

Справочник по функциям интерфейса "MAPAPI"



В состав GIS ToolKit и GIS ToolKit Active входят примеры, которые рекомендуется рассмотреть, чтобы лучше понимать, как с этими инструментариями работать.
как осуществить подключение к этому интерфейсу? Я что-то не поняла  
 
Цитата
Ксения Смирнова написал:
как осуществить подключение к этому интерфейсу? Я что-то не поняла

почитайте, например, тут: Что такое API

"подключения" как такового нет.
необходимо, чтобы требуемая библиотека была загружена в память процесса, после чего можно вызывать из нее функции.
вызов функций должен соответствовать объявленным стандартам.
вот и всё.
 
Цитата
KFF написал:
Цитата
Ксения Смирнова написал:
А как сделать, чтобы объектам с одним кодом, указанным в классификаторе, например, лес густой, код 71111110, добавить семантику «относительная высота» и значение
 
Код
 using System.Windows.Forms;
using maptype;
using mapproc;

namespace MySolution
{
    public partial class MainForm : Form
    {
        public void ForKsuhaSmirnova(HMAP map, double Hotn )
        {
           HOBJ obj    = mapCreateSiteObject(map, map);         // создать контейнер для объекта
           HSELECT sel = mapCreateSiteSelectContext(map, map);  // создать поисковик по карте
           mapSelectObject(sel , -1, 0);                         // "потушить" в поисковике все объекты (по умолчанию активны все объекты карты)
           // выбрать в поисковике только объекты с кодом 71111110 и площадой локализацией
           mapSelectObject(sel, mapRscObjectCode(map, 71111110, OL_SQUARE), 1);  
           int flag = 0;   
           while (mapSeekSiteSelectObject(map, map, obj, sel, flag)) // перебираем всё что найдено
           {
              mapAppendSemanticLong(obj, 1, Hotn); // добавляем семантику относительная высота (код 1) со значением Hotn (поступающим на вход процедуры)     
              mapCommitObject(obj);                // записываем содержимое "контейнера объекта" на карту
              flag = 4;                            
           }
           mapDeleteSelectContext(sel);            // удаляем поисковик 
           mapFreeObject(obj);                     // удаляем контейнер для объекта
        }

        private void btnCreateObject_Click(object sender, EventArgs e)
        {
          HMAP map = mapOpenMap("НАЗВАНИЕ_КАРТЫ_ЛЕСОВ.sitx", 0);  
          ForKsuhaSmirnova(map , 27.4);
          mapCloseMap(map);
        }
    } 
}
 
у меня не появляются HMAP, HOBJ, как к ним обратиться на С#? Плюс ко всеу этому отсутствуют некоторые методы, есть ли у вас полностью описанные библиотеки?  
 
Цитата
Ксения Смирнова написал:
Плюс ко всеу этому отсутствуют некоторые методы, есть ли у вас полностью описанные библиотеки?  
У КБ есть такой продукт ActiveX GisToolKit (или AX GTK)
В этом продукте, есть куча примеров под VisulaStudio в том числе под С#
Один из примеров (\Example\MS2015\C#\SpDBtoMap\) содержит некий модуль TMapAccess.cs
в котором описаны основные функции ядра + основные типы для работы этих функций.

Не могу с уверенностью сказать насколько ёмко заполнен данный файл (в КБ с каждым днём число функций и типов растёт)

но то что имею - выкладываю (от 2014 года)


Изменено: KFF - 09.04.2020 19:40:03
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Цитата
Ксения Смирнова написал:
Плюс ко всеу этому отсутствуют некоторые методы, есть ли у вас полностью описанные библиотеки?

Ссылки на описание я дал выше.

Цитата
[USER=16489]у меня не появляются HMAP, HOBJ, как к ним обратиться на С#?

Чтобы работать с объектами, надо сначала открыть карту.
HMAP - идентификатор экземпляра класса работы с открытой картой внутри ГИС-ядра,
HOBJ - идентификатор экземпляра класса работы с объектом карты внутри ГИС-ядра.

Но, возможно, Вам стоит использовать компоненты GIS ToolKit Active. Для начала это проще для понимания.
Посмотрите примеры.
Кстати, пример Example\MS2015\C#\Findobj демонстрирует азы - как открыть карту, как найти объект и получить доступ к его свойствам,
а перед этим как правильно связать для этого все компоненты.
 
Цитата
KFF написал:
Цитата
Ксения Смирнова написал:
А как сделать, чтобы объектам с одним кодом, указанным в классификаторе, например, лес густой, код 71111110, добавить семантику «относительная высота» и значение
 
Код
 using System.Windows.Forms;
using maptype;
using mapproc;

namespace MySolution
{
    public partial class MainForm : Form
    {
        public void ForKsuhaSmirnova(HMAP map, double Hotn )
        {
           HOBJ obj    = mapCreateSiteObject(map, map);         // создать контейнер для объекта
           HSELECT sel = mapCreateSiteSelectContext(map, map);  // создать поисковик по карте
           mapSelectObject(sel , -1, 0);                         // "потушить" в поисковике все объекты (по умолчанию активны все объекты карты)
           // выбрать в поисковике только объекты с кодом 71111110 и площадой локализацией
           mapSelectObject(sel, mapRscObjectCode(map, 71111110, OL_SQUARE), 1);  
           int flag = 0;   
           while (mapSeekSiteSelectObject(map, map, obj, sel, flag)) // перебираем всё что найдено
           {
              mapAppendSemanticLong(obj, 1, Hotn); // добавляем семантику относительная высота (код 1) со значением Hotn (поступающим на вход процедуры)     
              mapCommitObject(obj);                // записываем содержимое "контейнера объекта" на карту
              flag = 4;                            
           }
           mapDeleteSelectContext(sel);            // удаляем поисковик 
           mapFreeObject(obj);                     // удаляем контейнер для объекта
        }

        private void btnCreateObject_Click(object sender, EventArgs e)
        {
          HMAP map = mapOpenMap("НАЗВАНИЕ_КАРТЫ_ЛЕСОВ.sitx", 0);  
          ForKsuhaSmirnova(map , 27.4);
          mapCloseMap(map);
        }
    } 
}
 
 
А вопрос в чем?
Visual Studio может подчеркивать ошибочные по его мнению функции по разным причинам: нет такой функции, нет функции с такими типам и/или количеством параметров, возвращаемое значение не того типа и т.д.
Ответ в подсказке, которую выводит редактор кода Visual Studio.
 
Цитата
Денис Вицко написал:
А вопрос в чем?
Visual Studio может подчеркивать ошибочные по его мнению функции по разным причинам: нет такой функции, нет функции с такими типам и/или количеством параметров, возвращаемое значение не того типа и т.д.
Ответ в подсказке, которую выводит редактор кода Visual Studio.
Я считаю, что вы не компетентны в данном вопросе, так как, не вы писали данный программный код.
мне нужен тот человек, который его написал
Страницы: Пред. 1 2 3 4 След.
Читают тему (гостей: 1)



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

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