[QUOTE]
Денис Вицко написал:
Вашей компании в частном порядке (в виде исключения) передавался комплект статических библиотек (libgislink12x32.lib и libgislink12x64.lib) для включения режима Free в обход штатного алгоритма, основанного на применении компонентов GIS ToolKit.
Всё, на что влияет libgislink12x32.lib (libgislink12x64.lib) - включится или нет режим Free в Вашем приложении, то есть сможет ли Ваше приложение открыть без ключа карты, которые этот ключ требуют.
Иными словами, если что-то некорректно с подключением указанной статической библиотеки или не вызваны функции согласно инструкции, то режим Free включен не будет и карты, требующие ключ, не будут открываться совсем, то есть функция mapOpenDataUn просто вернет ноль.
На отрисовку это никак не влияет.
Для открытой карты все функции отрисовки работают штатно, не зависимо от наличия/отсутствия ключа или включенного/выключенного режима Free.
Если функция возвращает ненулевое значение, значит вывод изображения выполнен.
Пустым изображение может быть по причине отсутствия объектов в заданном прямоугольнике или эти объекты в масштабе, в котором осуществляется вывод изображения, не отображаются.
Вы пытаетесь вывести фрагмент 445км на 445км в картинку со стороной 256 пикселей, для текущего масштаба карты определяются габариты в пикселах запрошенного фрагмента местности и карта масштабируется таким образом, чтобы заданный фрагмент поместился в ваш квадрат 256х256 пикселей. Объекты карты, попадающие в заданный фрагмент, могут иметь ограничения по масштабу отображения и не отображаться.[/QUOTE]
С динамической библиотекой стало понятно, ожидаемо, что это было чьё-то творчество по необходимости.
... хмм ...
Обратил внимание, что у меня под Линуксом эта карта рисуется без проблем, а под Астрой уже нет, и под Виндой тоже нет.
Ну тогда, получается, что проблема исключительно в том, что у меня под Astra и Windows просто старые СДК Панорама, версии 12, в то время как под Linux Mint стоит 15-я. В последней в тестовом приложении отрисовка идёт через mapPaintToXImagePro, а в первых двух путём mapPaintToXImage. С ByFrame, похоже, та же проблема.
Да, получается, что это уже где-то мой косяк. Правда пока не совсем понятно какой, т.к. под старой версией ПО всё отрисовывается нормально.
Если есть какая-нибудь подсказка, на что обратить внимание, с радостью выслушаю.
Спасибо за ваше терпение.
С уважением, Александр.
PS: если брать не эти магические числа в примере, а [CODE]DFRAME frame0;
mapGetSiteBorder(hmap, hmap, &frame0, PP_PLANE);
...
ret = mapPaintByFrameToXImage(hmap, &xImageDesc, &frame0, 256, 256, 1);
[/CODE]и выводить 100 пикселей из середины массива, то ничего не меняется, хотя, вроде и карта по-честному по рамке взята, и пиксели не крайние.