Есть ли аналог данной функции для вырезки фрагмента карты?
|
Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты |
здесь вы можете ознакомиться с материалами форума до 08.06.2008 |
|
24.08.2010 14:20:23
Есть ли аналог данной функции для вырезки фрагмента карты?
|
|
|
|
|
24.08.2010 18:56:54
Попробуйте mapPaintToXImage(...)
Потом полученные байты сохранить в подходящий Вам графический формат |
|
|
|
|
25.08.2010 10:28:39
Можно пример как это правильно сделать?
|
|
|
|
|
25.08.2010 14:56:02
Аналог функции для Linux:
extern "C" { //======================================================================== // Сохранить карту в формате BMP // map - карта,содержащая векторные данные; // handle - диалог визуального сопровождения процесса обработки. // dframe - фрагмент сохраняемой карты(в метрах на местности) // bitcount = 8 - кол-во бит на пиксел сохраняемого изображения // scale - масштаб сохраняемого изображения // resolution - разрешающая способность сохраняемого изображения(т/дюйм) // 20/04/08 // bmpname - имя файла сохраняемого изображения (*.bmp); // При ошибке возвращает ноль // // Диалогу визуального сопровождения процесса обработки посылаются // сообщения: // - (0x591) Извещение об изменении состония процесса // WPARAM - текущее состоние процесса в процентах (0% - 100%) // Если функция-отклик возвращает 0x590, то процесс завершается. // // - (0x592) Извещение об ошибке // LPARAM - указатель на структуру ERRORINFORMATION // Структура ERRORINFORMATION описана в //======================================================================== long int _PICEX LoadMapToPicture(HMAP Map,HMESSAGE Handle, DFRAME * dframe, long BitCount, long Scale, long Resolution, char* BmpName, HMESSAGE handleMainWin); long int _PICEX LoadMapToPictureEx(HMAP Map,HMESSAGE Handle, DFRAME * dframe, long BitCount, long Scale, long Resolution, char* BmpName, long FlagIntergraphTIFF, long FlagCompressTIFF, HMESSAGE handleMainWin); } Функция находится в библиотеке libqdmappicex.so |
|
|
|
|
25.08.2010 14:56:40
Сразу хочу оговориться - код на работоспособность не проверял, поэтому если сразу "не прокатит", не обессудьте
значит, что у нас есть - у нас есть cx, cy, cw, ch (cx, cy - координаты верхнего левого угла карты, cw, ch - габариты по ширине и высоте соответственно). ВАЖНО! cx, cy, cw, ch - координаты в пикселях (не в метрах на местности!), и есть имя файла fileName, в который нам нужно сохранить область карты. Код примерно такой:
|
|||
|
|
|
25.08.2010 15:44:05
Большое Вам спасибо, только файл получаеться с абсолютно темной картинкой. Подозреваю, что неправильно указываю hMap. Использую
Сама карта добавляется так
|
|||||
|
|
|
25.08.2010 16:35:51
Не знаю чей способ Вы выбрали, но я у себя попробовал сохранить в 3-х форматах (bmp, png, jpg) - везде картинка получается, как на экране
З.Ы. Я использую исключительно MAPAPI (функции, не классы), хотя это не должно ни коим образом влиять
Изменено:
Александр Колдаев - 25.08.2010 16:37:13
|
|
|
|
|
25.08.2010 16:36:17
Вы дважды открываете карту:
- сначало с помощью MAPAPI - HMAP hMap = mapOpenData("/home/City.sit",0); - затем ГИС Конструктором. Каким способом отрисовки в файл пользуетесь? |
|
|
|
|
25.08.2010 16:37:58
через mapPaintToXImage
|
|
|
|
|
25.08.2010 16:42:48
Я открываю карту так:
|
||||
|
|
||||
| © КБ Панорама, 1991-2012 |