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

Dmitry_ (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Dmitry_
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.
LoadTiffToRstConverter, Объясните пожалуйста работу функции
 
[QUOTE]На тех данных, которые я сегодня отправлял на Вашу почту, программа падает внутри функции picexLoadTiffToRstAndCompressEx.[/QUOTE]
Для импорта данного файла TIFF применяется библиотека GDAL.
Перед использованием функции picexLoadTiffToRstAndCompressEx необходимо вызвать функцию picexInitGdal. Соответственно, после окончания - picexCloseGdal.
Ниже привожу текст консольного приложения, которое работает на Ваших данных(t.tif) без ошибок.
Для тестирования применялись библиотеки GTK-12 x64 от 25.07.2019.
[CODE]#pragma hdrstop
#pragma argsused

#ifdef _WIN32
#include <tchar.h>
#else
 typedef char _TCHAR;
 #define _tmain main
#endif

#include <stdio.h>

#include "maptype.h"
#include "maplib.h"

int _tmain(int argc, _TCHAR* argv[])
{
 typedef long int (WINAPI * F_picexLoadTiffToRstAndCompressEx)(HMESSAGE handle,
                              const char * TiffName,
                              const char * RstName,
                              double* meterInPixelX, double* meterInPixelY,
                              DOUBLEPOINT *point,
                              int compression,
                              int flagIgnoreGeoTiff);

 // Начать работу с Gdal
 typedef long int (WINAPI * F_picexInitGdal)();
 // Закончить работу с Gdal
 typedef long int (WINAPI * F_picexCloseGdal)();


HINSTANCE libinst = LoadLibrary(L"GISU64PICEX.DLL");
if (libinst == 0)
  {
   MessageBoxA(0, "Библиотека не найдена", "GISU64PICEX.DLL", MB_OK|MB_TASKMODAL);
   return 0;
  }

F_picexLoadTiffToRstAndCompressEx lpfn_picexLoadTiffToRstAndCompressEx =
        (F_picexLoadTiffToRstAndCompressEx)GetProcAddress(libinst,"picexLoadTiffToRstAndCompressEx");

F_picexInitGdal lpfn_picexInitGdal   = (F_picexInitGdal) GetProcAddress(libinst,"picexInitGdal");
F_picexCloseGdal lpfn_picexCloseGdal = (F_picexCloseGdal)GetProcAddress(libinst,"picexCloseGdal");

 if (lpfn_picexInitGdal != 0)
    (*lpfn_picexInitGdal)();

int ret = 0;
if (lpfn_picexLoadTiffToRstAndCompressEx != 0)
   {
    HMESSAGE handle       = 0;
    char TiffName[MAX_PATH] = {0};
    char RstName [MAX_PATH] = {0};
    double* meterInPixelX = 0;
    double* meterInPixelY = 0;
    DOUBLEPOINT *point    = 0;
    int compression       = 0;
    int flagIgnoreGeoTiff = 0;

    StrCopy(TiffName, "d:\\Data_2\\t.tif", sizeof(TiffName));
    StrCopy(RstName,  "d:\\Data_2\\t.rsw", sizeof(RstName));

    ret = (*lpfn_picexLoadTiffToRstAndCompressEx)(handle,
                              TiffName,
                              RstName,
                              meterInPixelX, meterInPixelY,
                              point,
                              compression,
                              flagIgnoreGeoTiff);
   }

 if (lpfn_picexCloseGdal != 0)
    (*lpfn_picexCloseGdal)();

 // Выгрузка библиотеки
 if (libinst)  FreeLibrary(libinst);

 if (ret != 0)
   {
    MessageBoxA(0, "Корректное выполнение функции", "picexLoadTiffToRstAndCompressEx", MB_OK|MB_TASKMODAL);
   }
  else
   {
    MessageBoxA(0, "Ошибка выполнения функции", "picexLoadTiffToRstAndCompressEx", MB_OK|MB_TASKMODAL);
   }

 return 0;
}
[/CODE]
[QUOTE]meterInElementX, meterInElementY, point - это входные или выходные данные? [/QUOTE]
meterInElementX, meterInElementY, point - входные параметры функции. Если нет необходимости передавать в функцию указанные параметры, передайте в качестве указателей NULL.
LoadTiffToRstConverter, Объясните пожалуйста работу функции
 
[QUOTE]

Здравствуйте!

Прочел тему. Осталось непонятным, каким образом использовать функцию LoadTiffToRstConverter?

Есть ли какие-то требования к scale и precision? У меня программа падает внутри функции LoadTiffToRstConverter. В чем может быть причина?

Код такой:

   HINSTANCE libinst2;

   long int (WINAPI * LoadTiffToRstConverter)(HMAP, HMESSAGE,const char *,const char *,double, double);

   LoadTiffToRstConverter = (long int (WINAPI *)(HMAP, HMESSAGE,const char *,const char *,double, double)) mapLoadLibrary("gisu64picex.dll" , &libinst2, "LoadTiffToRstConverter");

   long int res = LoadTiffToRstConverter(NULL,NULL,filename.toLocal8Bit().data(),rswName.toLocal8Bit().data(),100000,0.2);

   mapFreeLibrary(libinst2);

[/QUOTE]

Здравствуйте, Дмитрий!

Функция LoadTiffToRstConverter немного устарела.
Предлагаю Вашему вниманию современные функции импорта файлов TIFF:
[CODE]//========================================================================
// Загрузка растровой карты из Tiff(GeoTiff) в RSW
//    Handle - диалог визуального сопровождения процесса обработки.
//    TiffName - имя Tiff-файла;
//    RstName - имя Rst-файла;
//    meterInElementX - размер в метрах элемента по X
//    meterInElementY - размер в метрах элемента по Y
//    point     - точка привязки растра (в метрах)
//                (положение юго-западного угла растра в районе)
//    compression - флаг использования сжатия при формировании RST-файла (0/1)
//              0 - сжатие к блокам изображения применяться не будет
//              1 - блоки д.б. сжаты по методу LZW
//              2 - блоки д.б. сжаты по методу JPEG (справедливо для 24 битных растров)
//    flagIgnoreGeoTiff - (0/1) флаг игнорирования GeoTiff тегов
//    При ошибке возвращает ноль
//
//    Диалогу визуального сопровождения процесса обработки посылаются
//    сообщения:
//    -  (WM_PROGRESSBAR) Извещение об изменении состояния процесса
//       WPARAM - текущее состояние процесса в процентах (0% - 100%)
//       Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается.
//
//    -  (WM_ERROR) Извещение об ошибке
//       LPARAM - указатель на структуру ERRORINFORMATION
//       Структура ERRORINFORMATION описана в picexprm.h,
//       WM_PROGRESSBAR и WM_ERROR - в maptype.h
//==========================================================­==============
_PICIMP long int _PICAPI picexLoadTiffToRstAndCompressEx(HMESSAGE handle,
                              const char * TiffName,
                              const char * RstName,
                              double* meterInPixelX, double* meterInPixelY,
                              DOUBLEPOINT *point,
                              int compression,
                              int flagIgnoreGeoTiff);

_PICIMP long int _PICAPI picexLoadTiffToRstAndCompressExUn(HMESSAGE handle,
                              const WCHAR * TiffName,
                              const WCHAR * RstName,
                              double* meterInPixelX, double* meterInPixelY,
                              DOUBLEPOINT *point,
                              int compression,
                              int flagIgnoreGeoTiff);
[/CODE]

Если есть возможность, используйте диалог загрузки графического изображения в растровую карту
(библиотека gisu64rswg.dll, функция DialogLoadImageToRsw объявлена в файле \include\rswgtapi.h):
[CODE] //========================================================================
// Диалог загрузки графического изображения в растровую карту(RSW)
// Обрабатываются файлы следующих форматов: BMP, JPEG, PCX, TIFF, GeoTIFF, PNG, GIF
//    В качестве файлов привязки растрового изображения могут применяться следующие данные:
//    - Файл настроек (*.ini),
//    - Файл настроек Фотоплан (*.tpf),
//    - Файл настроек Талка (*.pln),
//    - Файл настроек MapInfo (*.tab),
//    - Файл настроек (world file)(*.tfw;*.jgw;*.bpw;*.pcw;*.j2w;*.sdw;*.nfw;*.wld)
//    - Файл OziExplorer (*.map)
//
//    hmap - карта,содержащая векторные(растровые, матричные) данные;
//    lpszsource - указатель на имя исходного файла
//    sizesource - размер памяти, выделенной по указателю lpszsource (не менее 260 байт)
//    lpsztarget - указатель на имя выходного файла
//    sizetarget - размер памяти, выделенной по указателю lpsztarget (не менее 260 байт)
//    fileLocType- тип применяемого файла привязки растрового изображения
//                 fileLocType может принимать следующие значения:
//                 120 - (*.ini), 121 - Фотоплан (*.tpf), 122 - Талка (*.pln),
//                 123 - world file(*.tfw;*.jgw;*.bpw;*.pcw;*.j2w;*.sdw;*.nfw;*.wld),
//                 124 - MapInfo (*.tab), 125 - OziExplorer (*.map).
//    parm       - параметры прикладной задачи. Структура TASKPARM описана в MAPTYPE.H
//
//    При ошибке возвращает ноль
//==========================================================­==============
_RSWGIMP long int _RSWGAPI DialogLoadImageToRsw(HMAP hmap,
                                            char* lpszsource, long int sizesource,
                                            char* lpsztarget, long int sizetarget,
                                            long int fileLocType, TASKPARM *parm);

_RSWGIMP long int _RSWGAPI DialogLoadImageToRswUn(HMAP hmap,
                                            WCHAR* lpszsource, long int sizesource,
                                            WCHAR* lpsztarget, long int sizetarget,
                                            long int fileLocType, TASKPARM *parm);

[/CODE]
Не отображаются некоторые иконки на кнопках
 
Здравствуйте!
Некорректное отображение иконок PNG на кнопках на скриншоте присутствует.
Пытаемся повторить данную ситуацию.
[MAPAPI] Получение данных о проекции растра, [MAPAPI] Получение данных о проекции растра
 
[QUOTE]мне интересно для каких целей используется параметр HMAP в функциях для привязки растрова из mappicex.h:
[/QUOTE]
hmap  -  дескриптор карты, к которой добавлен растр
Если в функциях привязки растра параметр hmap задать равным 0, то растр будет открыт в отдельном документе:
[CODE] if (hMap == 0)
   {
    hMap = mapOpenDataUn(rswName);
    flagCreate = 1;
   }
[/CODE]
[QUOTE]Ну то есть что будет, если я сделаю растр из изображения с помощью функции picexLoadRasterToRswUn, потом открою его и выставлю параметры проекции, датум и эллипсоид (как СК-42, к примеру),
закрою, потом открою векторную карту в системе координат уже другой (например, UTM на WGS84), и попытаюсь привязать растр с помощью функции привязки (любой), отдав первым параметром векторную карту, а в каждой паре точек в качестве фактической точки буду отдавать координаты с растра (в СК-42), а в качестве теоретической (желаемой) точки буду отдавать точку с векторной карты (в UTM).
[/QUOTE]
Предлагаю простой и надежный алгоритм привязки растра:
1. Импортируем растр без привязки.
2. Добавляем созданный растр в документ карты.
3. Привязываем растр по точкам с карты.
4. Устанавливаем проекцию и СК карты в растр.

После этого растр можно добавлять в любой документ с отличными параметрами проекции и СК.
При добавлении в документ с отличными параметрами проекции и СК такой растр будет трансформироваться налету.
[QUOTE]И тогда есть возможность исходные координаты задавать в системе растра, а желаемые в системе открытой векторной карты?
[/QUOTE]
Исходные и желаемые координаты д.б. в системе координат документа HMAP.
[QUOTE]А ещё, я не очень понял чем отличаются друг от друга функции трансформации растров по рамке и МНК.
Какие-то из этих функции работают дольше но точнее?
Или разница только в параметрах обработки рамки?[/QUOTE]

В функциях RswTransformingBySquareMethod, RswTransformingBySquareMethodUn применяется метод наименьших квадратов.
Алгоритм метода наименьших квадратов: [URL=http://gis-lab.info/qa/polynom.html]http://gis-lab.info/qa/polynom.html[/URL]

В функциях RswTransformingByBorderMethod, RswTransformingByBorderMethodUn применяется механизм нелинейного трансформирования.
Используются функции (mapCreateNonlineTransform), объявленные в файле MATHAPI.H:

[CODE]// Создание класса нелинейного трансформирования координат
// count     - количество точек для расчета параметров трансформирования
//   В зависимости от типа трансформирования:
//   NT_LINEARSHEET, NT_NONLINEARSHEET - минимальное количество точек = 3
//   NT_POLYNOM                        - минимальное количество точек = количеству коэффициентов
//   NT_POLYNOMRANK2                   - минимальное количество точек = 6
//   NT_POLYNOMRANK3                   - минимальное количество точек = 10
//   NT_POLYNOMRANK4                   - минимальное количество точек = 15
//   NT_POLYNOMRANK5                   - минимальное количество точек = 21
// pointsin  - координаты точек в исходной системе координат
// pointsout - координаты точек в выходной системе координат
// interestframe - область интереса, т.е. прямоугольник, ограничивающий область
//   применения функции mapNonlineTransformIn2Out.
//   Если = 0, то экстраполяция искажений вне области расположения опорных точек
//   не выполняется, в этом случае virtualpointcount должно быть равно 0
// virtualpointcount - количество виртуальных точек, добавляемых по границе
//   области интереса. Минимальное количество = 4. Если interestframe = 0, то
//   virtualpointcount должно быть равно 0.
// transftype - тип нелинейного трансформирования см. NONLINEARTRANSFTYPE
// Возвращает идентификатор класса нелинейного трансформирования координат
// Для каждого полученного и больше не используемого идентификатора
// необходим вызов функции mapFreeNonlineTransform()
// При ошибке возвращает ноль

 HNONLINETRANSF HNonLineTransf = (*lpfn_mapCreateNonlineTransform)(count, fact, teor,
                                                       0, //DFRAME *interestframe
                                                       0, //long int virtualpointcount
                                                       NT_POLYNOM4 //NONLINEARTRANSFTYPE transftype
                                                       );
[/CODE]

Класс нелинейного трансформирования координат реализован по труду Hiroshi Akima: [I]A method of bivariate interpolation and smooth surface fitting for values given at irregularly distributed points (Hiroshi Akima)[/I]

[QUOTE]Что правильнее/корректнее использовать?
[/QUOTE]
Рекомендации по выбору типа трансформирования:
[URL=http://help.gisserver.ru/ru/rswtrans/index.html]http://help.gisserver.ru/ru/rswtrans/index.html[/URL]

Ошибка инициализации приложения с gtk12x64
 
Здравствуйте!

Я правильно Вас понял, что при переводе приложения с платформы x32 на платформу x64 возникает ошибка выполнения программы?

При переносе наших программ на 64-битную систему обнаружили в сети интересную статью:
[URL=https://www.viva64.com/ru/a/0042/]https://www.viva64.com/ru/a/0042/[/URL]
В частности, в таблице [U]N1. Модели данных[/U] приведены сведения об основных типах.
Например, указатели для ОС Windows в x32 занимают 4 байта, а в x64 - 8 байт.
Пришлось некоторое время анализировать и исправлять исходные тексты программ применительно к работе с указателями.
gisu64vcacces.dll access violation снова
 
[QUOTE]Спасибо!
Теперь вроде все хорошо! Ни чего не падает и ведет себя нормально.
Когда примерно можно ожидать официальный релиз?[/QUOTE]
Комплект библиотек, переданный Вам, размещен на нашем FTP: [URL=http://public.gisinfo.ru/shabakov/gislib12x64vc.zip]http://public.gisinfo.ru/shabakov/gislib12x64vc.zip[/URL]
Наша компания несет ответственность за данный релиз.
Применяйте данный комплект для сдачи проекта.

В ходе тестирования текущих комплектов 64-х разрядных библиотек GTK-12 выяснили, что ядро, собранное на VC2008, работает надежнее.
В настоящее время ведутся работы по объединению 2-х комплектов 64-х разрядных библиотек GTK-12.
Вместо комплектов [B]gisu64[/B]*.dll и [B]gisu64VC[/B]*.dll останется один комплект, ядро которого будет собрано в VC2008.
Единый комплект 64-х разрядных библиотек GTK-12 будет называться [B]gisu64*.dll[/B].
В его основе будут библиотеки, переданные Вам. Процесс объединения может занять некоторое время.
gisu64vcacces.dll access violation снова
 

Эксперименты с внешним выделением памяти в VC-библиотеке для XE5-библиотек завершены.

От этой схемы решено отказаться.

Принято решение собрать библиотеки ядра на VC, библиотеки с VCL-формами собирать по-прежнему в XE5.

Библиотеки ядра собраны на VC 2008:

GISU64VCACCES.DLL,

GISU64VCMTREX.DLL,

GISU64VCVECEX.DLL,

GISU64VCPICEX.DLL,

GISU64VCMATH.DLL,

GISU64VCGDSRV.DLL.

Остальные библиотеки собираются в XE5.

Пока исключили из состава 2 библиотеки:

gisu64vcforms.dll,

gisu64vcformse.dll.

В основе указанных библиотек диалоги на старом, добром OWL от BC5.

Их сборка под VC 2008 вызвала затруднение.

Библиотеки (gisu64vcforms.dll/gisu64vcformse.dll) содержат, на мой взгляд, только 3 важных OWL-диалога:

- Редактор классификатора

- Список данных

- Управление палитрой карты, матрицы, растра.

Комплект библиотек GTK-12 VC тестируется на приложении MapViewer.exe.

Карта отображается, VCL-диалоги "GPS-монитор", "Сотав объектов", "Печать" и "3D" выполняются успешно.

Библиотека GISU64VCACCES.DLL загружается консольным приложением после выделения 2-х и 4-х GB памяти и в WIN 7 и WIN 10.

Комплект библиотек на время тестирования размещен на FTP: [URL=http://public.gisinfo.ru/shabakov/gislib12x64vc.zip]gislib12x64vc.zip[/URL]

gisu64vcacces.dll access violation снова
 
Тестирование библиотеки gisu64vcacces.dll пока не завершено.

Тестирование библиотеки gisu64vcacces.dll выполняется с применением:
-консольного приложения TestConsole_2008_2GB.exe (VC 2008) c выделением 2 ГБ памяти,
-консольного приложения TestConsole_2008_0GB.exe (VC 2008) без выделения памяти,
-MFC-приложения MapViewer.exe.

В ходе выполнения тестов в исходные тексты библиотеки gisu64vcacces.dll внесены следующие изменения:

1. Добавлен контроль выполнения метода GdiplusStartup при инициализации GDI+.
2. Выделение и освобождение памяти вынесено из библиотеки gisu64vcacces.dll и соответственно Embarcadero.
Собрана VC-библиотека gisu64vcmemory.dll для выделения и освобождение памяти.
Исходные тесты VC-библиотеку gisu64vcmemory.dll в папке \Source\ архива [URL=http://public.gisinfo.ru/Forum/VC/06_27_Test.zip]06_27_Test.zip[/URL].
VC-библиотека gisu64vcmemory.dll содержит 2 функции:
[CODE]// Выделение/Освобождение памяти в библиотеках GisToll Kit
__declspec(dllexport) char * __stdcall AllocateVc(unsigned int size);
__declspec(dllexport) void __stdcall FreeVc(char * memory);[/CODE]
В библиотеку gisu64vcacces.dll добавлены функции:
[CODE] // Функция загружает библиотеку gisu64vcmemory.dll
// Запрашивает адреса функций AllocateVc, FreeVc
_MAPIMP int _MAPAPI mapInitAllocateVcManager();


// Функция выгружает библиотеку gisu64vcmemory.dll
_MAPIMP int _MAPAPI mapCloseAllocateVcManager();[/CODE]
Промежуточные результаты тестов опубликованы в таблице \Таблица\Таблица.xlsx архива [URL=http://public.gisinfo.ru/Forum/VC/06_27_Test.zip]06_27_Test.zip[/URL].
Содержимое архива 06_27_Test.zip:
\Data\           - тестовые данные,
\DLL_ТЕСТ\ - библиотеки и исполняемые модули,
\Source\       - исходные тексты тестовых модулей и библиотеки выделения/освобождения памяти,
\Таблица\    - таблица фиксации тестов.
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE][URL=http://gisweb.ru/forum/user/2686/]Александр Волков[/URL] написал:
Дайте, пожалуйста, комментарии по этому вопросу[QUOTE][TABLE][TR][TD][URL=/forum/user/2686/]Александр Волков[/URL] написал:

2) Как я понял в процессе исследования проблем с Application Verifier вы вносили какие то изменения во флаги сборки и возможно в код. Теперь есть новая версия ( [URL=http://gisinfo.ru/download?id=211]http://gisinfo.ru/download?id=211[/URL] ). Если это так, то прошу мне выдать новую версию libgislink12x64vc.lib, собранную с теми же флагами / компонентами, что и остальные компоненты GTK лежащие тут [URL=http://gisinfo.ru/download?id=211]http://gisinfo.ru/download?id=211[/URL] .[/TD][/TR][/TABLE][/QUOTE]
Изменено: [URL=/forum/user/2686/]Александр Волков[/URL] - 05.06.2018 15:40:38[/QUOTE]

Библиотеки статической линковки LIB формируются из библиотек DLL по алгоритму:[CODE] Формирование библиотеки LIB для включения её в проект Visual C++

1) Откройте командную строку Visual Studio Tools.
  Например:
Пуск -> Все программы -> Microsoft Visual Studio -> Visual Studio Tools ->
Visual Studio Command Prompt.

2) Сформируйте файл .def из DLL.
Выполните команду dumpbin для извлечения имен экспортируемых функций из
библиотеки.
  Например:
dumpbin /exports e:\gisu64vcacces.dll /out:e:\gisu64vcacces.def

В результате выполнения команды dumpbin получен файл e:\gisu64vcacces.def.
Содержимое файла e:\gisu64vcacces.def:

Dump of file e:\gisu64vcacces.dll

File Type: DLL

 Section contains the following exports for gisu64vcacces.dll

   00000000 characteristics
          0 time date stamp Thu Jan 01 03:00:00 1970
       0.00 version
          1 ordinal base
       9959 number of functions
       9959 number of names

   ordinal hint RVA      name

      8800    0 002CEB00 AgregateString
      8801    1 002CEB40 AgregateStringUn
      3402    2 000ADB40 CheckAndUpdate
      ....
3) Отредактируйте файл gisu64vcacces.def. Приведите его к следующему формату:
EXPORTS
AgregateString
AgregateStringUn
CheckAndUpdate
...

4) Для окончательной генерации файла .lib (создания библиотеки статической линковки)
из файла определений .def выполните в командной строке команду lib.
  Например:
lib /def:e:\gisu64vcacces.def /out:e:\gisu64vcacces.lib /machine:x64 [/CODE]Дополнительных флагов и компонентов при формировании библиотек статической линковки LIB не применяется.
[ Закрыто] gisu64vcacces.dll access violation, Application Verifier выдает access violation при загрузке gisu64vcacces.dll
 
[QUOTE][URL=http://gisweb.ru/forum/user/2686/]Александр Волков[/URL] написал:
1) Время, необходимое на отрисовку одной и той же карты на крайней версии библиотек (которые лежат тут [URL=http://gisinfo.ru/download?id=211]http://gisinfo.ru/download?id=211[/URL]) заметно больше чем на старых версиях. Карта стала заметно подтормаживать относительно предыдущей версии библиотек.Замерил время, необходимое на отрисовку карты (вызов mapPaint95).
На карйней версии библиотек 60 мс, на новой 278 мс, т.е. почти в 5 раз больше!!! Такое может быть если вместо флагов O2 поставить Od (имеются ввиду флаги компилятора Visual Studio, у Embarcadero могут быть другие). Ну или изменились алгоритмы отрисовки в сильно худшую сторону - ухудшение производительности почти в 5 раз! [/QUOTE]

Тест выполнялся на данных, полученных ранее: [URL=http://gisweb.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=9525&action=download]mapAppendDataEx.zip (347.46 КБ)[/URL]

Карта m100.sit в системе координат СК-42
Карта airbases.map в проекции "Цилиндрическая Меркатора" на эллипсоиде WGS84.

Очередность открытия данных:
1. Открываем m100.sit
2. Добавляем к ней  airbases.map.

Системы координат основной карты (m100.sit) и добавляемой (airbases.map) не совпадают.
Карта airbases.map при добавлении не трансформируется, а преобразование проекции выполняется налету при перерисовке.

При попадании в область отображения объектов с карты airbases.map, требующих пересчета координат из проекции в проекцию на лету,
наблюдалось замедление работы функции пересчета координат в библиотеках от 21.05.2018г. по сравнению с библиотеками, собранными 07.06.2017г.

Описанная ситуация исправлена. Библиотеки обновлены на сайте: [URL=http://gisinfo.ru/download?id=211]gislib12x64vc.zip[/URL]
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 29 След.



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

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