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

Delphi XE 5. Опять ошибки. Не работает пример MapToEMF - печать в файл

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Delphi XE 5. Опять ошибки. Не работает пример MapToEMF - печать в файл
 
- Открываю пример MapToEMF
- запускаю
- открываю карту Подольска
- Нажимаю кнопку SaveTo Map emf

файл не формируется.
 
Теперь пытаюсь выкрутиться из ситуации чтоб хоть как то запустить печат в файл.   Иначе мне совсем плохо будет..

Комментарю в начале файла

{

// Вывести изображение карты в метафайл
// При ошибке в параметрах возвращает ноль
// Описана в MapApi.h
function mapPaintToEmf(map : HMAP; const EmfName : PChar;
                      var parm : TMETAFILEBUILDPARM) : integer; stdcall;
 external sGISACCES name 'mapPaintToEmf';
}


и добавляю
// Вывести изображение карты в метафайл
// Данные функции реализованы только для платформы Windows !
// При ошибке в параметрах возвращает ноль

function mapPaintToEmf(map : HMAP; const EmfName : GTKPChar;
                      var parm : TMETAFILEBUILDPARM) : integer;
 {$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF};
 external sGisAcces;



теперь печатает
 
теперь добавляю WMS карту

const
 DEF_YANDEX = 'WMTS#Type=UTMS&IP=http://vec01.maps.yandex.net/tiles?l=map&v=2.30.0&ID1=YandexMap&Name1=YandexMap&Format=image/jpeg&Ma...;
begin
 MapView1.MapWMS.Append(DEF_YANDEX);
end;

и опять печатаю
MapView1.SaveFrameToEmf


WMS карта отсутствует !!!!!!!!!

Почему печатается все кроме WMS карты ?
И почему не работает пример, который уже лет 15 присутствует в дистрибутиве ?


версия самая последняя
Изменено: Алексей Азаренко - 16.08.2016 21:50:45
 
Здравствуйте. Пример работает без каких-либо правок.
GTKPChar - это тот же pchar, за исключением для Code Gear 2009 (PAnsiChar)

У Вас карта WMS добавилась к карте Подольска?
Какую версию Gis ToolKit используете? 12/11?
 
Карта WMS добавилась. Но она не идет на печать...

версия 12
 
Здравствуйте!
Действительно для компиляции данного примера в 12 версии GIS ToolKit необходимо изменить описание параметров функции. Исправим в инсталляции.

mapPaintToEmf выполняет сохранение  в режиме Принтерный векторный, а подключаемый wms - растровый.

Поэтому лучше использовать другие функции (LoadMapTo... из mappicex.inc), например LoadMapToPicture

Пример:
Код
procedure TfrmFind.btnDoBmpClick(Sender: TObject);
var
  NameBmp : string;
  ires    : Integer;
  iframe  : TDFRAME;
begin
  mvMap.PlaceOut := PP_PLANE;
  NameBmp := ExtractFilePath(mvMap.MapFileName)+'pict1.bmp';
  iframe.X1 :=  mvMap.MapFrame.X1;
  iframe.X2 :=  mvMap.MapFrame.X2;
  iframe.Y1 :=  mvMap.MapFrame.Y1;
  iframe.Y2 :=  mvMap.MapFrame.Y2;
  ires := LoadMapToPicture(mvMap.MapHandle, 0, @iframe, 24, 100000, 96, GTKPChar(GtkString(NameBmp)), 0);
end;
 
Спасибо ! Этот способ прекрасно работает !
Страницы: 1
Читают тему (гостей: 1)



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

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