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

Сергей Гущин (Автор тем)

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

Страницы: 1 2 След.
Стандартные диалоги, не работает MapCreateDialog
 
[CODE]type
 TForm1 = class(TForm)
   btnNew: TButton;
   mvMap: TMapScreen;
   edtName: TEdit;
   btnOpen: TButton;
...
   procedure btnNewClick(Sender: TObject);
...
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnNewClick(Sender: TObject);
var aName : string;
begin
 aName := '';
 If CreateMapDialog(aName,0,nil)<>1 then Exit;
 mvMap.MapOpen(aName, true);
 edtName.Text := aName;
end;[/CODE]

После заполнения поля "Классификатор" вылетает ошибка Stack Overflow.

И еще не подскажете, какую версию библиотек и компонент использовать для работы с DXE3, разработка для 32-бит, Windows 7 x64.

заранее благодарен.
Проблема с установкой GTK Free в Delphi 2010, Не определяется ключ (((
 
Коллеги, хелп!
Не подскажете, в чем может быть причина нераспознавания ключа GTK Free в Delphi 2010?
Компилируется и устанавливается нормально, но ругается вот так при попытке поместить компонент TMapView на форму:

[QUOTE]Acceess violation at address 0D3C6469 in module MAPPACK.bpl. Read of address 00000008.
[0D3C6469]{MAPPACK.bpl } Mapcmp.TMapView.AllMapRef + $15
[0D3940D1]{MAPPACK.bpl } Gtklink.GisForComponent + $2D
[0D3BED95]{MAPPACK.bpl } Mapwina.TMapViewWindow + $19D
[0D3C5EDB]{MAPPACK.bpl } Mapcmp.TMapView + $23
[2188FB4F]{delphicoreide140.bpl} CompPalMgr.TComponentPalettePageItemDelegate.CreateComponent (Line 2551, "CompPalMgr.pas" + 2) + $7
[20DC9CCA]{designide140.bpl} ComponentDesigner.TComponentRoot.DoCreateComponent (Line 2318, "ComponentDesigner.pas" + 10) + $17
[20DCF19A]{designide140.bpl} ComponentDesigner.TComponentRoot.CreateCurrentComponent (Line 4375, "ComponentDesigner.pas" + 2) + $32
[20DE3220]{designide140.bpl} Surface.TDesignSurface.CreateItem (Line 187, "Surface.pas" + 1) + $11
[20DAE3FE]{designide140.bpl} Designer.TDesigner.DoDragCreate (Line 764, "Designer.pas" + 1) + $F
[20DAEB80]{designide140.bpl} Designer.TDesigner.DragEnd (Line 929, "Designer.pas" + 19) + $3
[20DB1150]{designide140.bpl} Designer.TDesigner.MouseUp (Line 1711, "Designer.pas" + 1) + $2
[51A1CB8D]{vcldesigner140.bpl} VCLSurface.MouseEvent (Line 2908, "VCLSurface.pas" + 45) + $11
[50064E39]{rtl140.bpl } Classes.TInterfaceList.GetCount (Line 3968, "Classes.pas" + 5) + $10
[51A1D767]{vcldesigner140.bpl} VCLSurface.TVclDesignSurface.IsDesignMsg (Line 3169, "VCLSurface.pas" + 48) + $6
[502C7C06]{vcl140.bpl } Forms.TApplication.WndProc (Line 9347, "Forms.pas" + 97) + $E
[50009F92]{rtl140.bpl } System.@IsClass (Line 9738, "System.pas" + 1) + $8
[50295BDF]{vcl140.bpl } Controls.TControl.WndProc (Line 6975, "Controls.pas" + 4) + $21
[50076408]{rtl140.bpl } Classes.StdWndProc (Line 13015, "Classes.pas" + 8) + $0
[50299FCB]{vcl140.bpl } Controls.TWinControl.IsControlMouseMsg (Line 9596, "Controls.pas" + 1) + $9
[5029A738]{vcl140.bpl } Controls.TWinControl.WndProc (Line 9819, "Controls.pas" + 144) + $6
[502BF674]{vcl140.bpl } Forms.TCustomForm.WndProc (Line 3960, "Forms.pas" + 191) + $5
[2215517B]{delphivclide140.bpl} VCLFormContainer.TControlSizer.ControlWndProc (Line 306, "VCLFormContainer.pas" + 33) + $C
[50299DD8]{vcl140.bpl } Controls.TWinControl.MainWndProc (Line 9540, "Controls.pas" + 3) + $6
[50076408]{rtl140.bpl } Classes.StdWndProc (Line 13015, "Classes.pas" + 8) + $0
[502C8775]{vcl140.bpl } Forms.TApplication.ProcessMessage (Line 9760, "Forms.pas" + 30) + $1
[502C87BA]{vcl140.bpl } Forms.TApplication.HandleMessage (Line 9790, "Forms.pas" + 1) + $4
[502C8AE5]{vcl140.bpl } Forms.TApplication.Run (Line 9927, "Forms.pas" + 26) + $3
[004369AE]{bds.exe } bds.bds (Line 200, "" + 8) + $FFFB[/QUOTE]

Наш ключ прежний, до этого всегда работали в D7 - проблем не было.
Поставили 11.10.2 free под D2010 - вот такая фигня...
D2010 с обновлениями до 5 включительно.
Библиотеки от 04.09.2013

Я бы остался на 7-ке, но нужны некоторые особенности рекордов, которых в семерке нет...
Изменено: Сергей Гущин - 11.09.2013 11:47:51
Ошибка отображения матрицы высот при подключении к набору данных геопортала.
 
[I](Пока писал, решил, что может это и не ошибка, а нормальное, просто недокументированное, поведение продукта. Но тем не менее...)[/I]

Добрый вечер!

Общее описание ошибки: при подключении геопортала к набору карта + матрицы высот, сформированному в проекции, отличной от проекции геопортала, при автоматической трансформации карты "на лету" не происходит трансформация проекции матрицы, за счет чего происходит искажение информации о высотах карты.

Карта: обзорно-географическая, WGS84, Цилиндрическая Меркатор для карты Мира.
Матрица: автоматически трансформирована с помощью Панорамы Мини в проекцию карты из SRTM-формата.
Геопортал: OpenStreet Map.

Для наглядности приведу последовательность действий в Панораме Мини, версия 11.10.12, в приложении на ГТК все работает точно так же.

Итак, последовательность действий:

1. Строим карту в проекции.
2. Добавляем матрицы высот импортом из SRTM.
3. Добавляем точки по долине речки Мзымты вдоль полосы аэродрома в Сочи-Адлер (URSS) и далее на Красную поляну.
4. Высота в точке - 18 метров.
5. Добавляем геопортал с помощью стандартного диалога списка открытых данных (если добавлять с помощью функций MAPAPI - поведение не меняется).
6. Для наглядности меняем степень прозрачности матриц на полупрозрачную и выносим их над картой.

[IMG]http://i47.fastpic.ru/big/2013/0622/a1/f51101378ec10af72923a5b1d8121fa1.png[/IMG]
Рис.1

7. Наблюдаем смещение матрицы относительно карты визуально, высота в точке 951 м, маршрут из точек теперь проходит по хребту.
8. Меняем масштаб карты на более крупный. Наблюдаем на рисунке 2: картинка матрицы сместилась и совпала (по карйней мере - на глаз) с картой с геопортала, высота в контрольной точке все равно не равна правильной высоте.

[IMG]http://i46.fastpic.ru/big/2013/0622/e7/7fda6f86cb30fabfb2159b4cbf7e83e7.png[/IMG]
Рис.2

9. Отключаем (не убирая) геопортал. Все ошибки по пп. 7-8.
10. Убираем геопортал. Ошибки исчезают.
11. Добавляем геопортал.
12. Убираем матрицы из набора данных не отключая геопортал.
10. Добавляем матрицы в набор данных, на вопрос о трансформации отвечаем утвердительно.

[IMG]http://i46.fastpic.ru/big/2013/0622/44/1256d2679fb4a75018715ec03c1fd944.png[/IMG]
Рис.3

11. На рисунке 3 наблюдаем совпадение координат и высот. Во всех масштабах. Ошибок нет.
12. Убираем геопортал и матрицы из набора данных.
13. Добавляем матрицы - опять запрос на трансформацию.

Проверил работу с ГугльСат и ГугльМап - аналогично.

Рассмотрю предложения работы испытателем КБ Панорама.
Изменено: Сергей Гущин - 22.06.2013 02:05:28
Мигание экрана при перерисовке TMapScreen.Repaint, сабж
 
При переходе на библиотеку версии от 11.06.2013 с версии от 18.04.2013 замечено следующее:

1. Цвет фона карты самопроизвольно устанавливается на белый
2. Мигает экран при перерисовке карты с помощью Repaint.
3. Становятся невидимы матрицы и растры, добавленные к карте.

На основной карте все отображается.

Все лечится без компиляции простым откатом на версию от 18.04.2013.

Версия GISToolFree 11.9.2 для D7.

Промежуточные версии (вроде как была еще майская версия?) не тестировал.

С уважением,
Сергей.
Изменено: Сергей Гущин - 13.06.2013 19:59:18
НАВИТЕХ-2013, участие
 
КБ Панорама участвует в Навитех-2013?
Размер экрана, mapGetSreenSize выдает неверный размер
 
Если не настраивать при запуске приложения размеры экрана вручную, то размер экрана по умолчанию устанавливается некорректно, а mapGetSreenSize выдает неверное значение - 20 дюймов вместо 15 (512 мм, если быть точным). Замечено после обновления до версии библиотек от 04.04 после того, как поплыли на экране символы... Да, а коэффициент масштабирования по умолчанию установлен в 120 процентов.

Добавлю, что после установки корректного значения с помощью mapSetSreenSize и mapSetSreenScale все начинает отображаться как и прежде. Просто раньше размером экрана не интересовался, поскольку и в МиниКарте и в своих приложениях все всегда рисовалось одинаково.
Изменено: Сергей Гущин - 08.04.2013 14:27:14
Memory leaks -, TMapRsc
 
Вот такое приложение:
[IMG]http://i52.fastpic.ru/big/2013/0328/c4/e25a1cc908c7ebabab0d14ff99aefac4.png[/IMG]
при выходе генерирует вот такое предупреждение:
[IMG]http://i52.fastpic.ru/big/2013/0328/85/8a20d10d9e8e39ad84ce5a2266687685.png[/IMG]
Спасибо.
Импорт из KML -, раньше работало, теперь - нет...
 
Вот такой код раньше [I](11.8.5, библиотеки от 04.03.2013)[/I] работал, теперь - нет...

Библиотеки от 19.03.2013, 11.9.0 Free, D7
 
giskmltomap.h:
[CODE]
_MAPIMP long int WINAPI LoadKmlToMap(HMAP hmap, TASKPARMEX * parm,
char * mapname, int size);[/CODE]

Объявление функции внутри своего модуля:
[CODE]function LoadKmlToMap(aMap : HMAP; parm : PTASKPARMEX;
        mapname : GTKPChar; size : integer) : integer;
        {$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF} external 'c:\gislib\giskmltomap.dll';[/CODE]

Использование:
[CODE]function LoadKMLStd(const aMapView: TMapScreen): boolean;
var aaTASKPARMEX: TTASKPARMEX;
 ppTASKPARMEX: PTASKPARMEX;
 aMap : HMAP ;
 aName: array[0..MAX_PATH-1] of GTKChar;
 ii: integer;
begin
 aMap := aMapView.MapHandle ;
 InitTaskParmEx(aaTASKPARMEX, aMapView);
 ppTASKPARMEX := @aaTASKPARMEX;

 FillChar(aName, MAX_PATH, #0);
 if aMapView.MapFileName<>''
   then for ii:=0 to Length(aMapView.MapFileName)-1 do
     begin
       if ii>=MAX_PATH then break;
       aName[ii] := GTKChar(aMapView.MapFileName[ii+1]);
     end;

 LoadKMLToMap(aMap, ppTASKPARMEX, @aName[0], MAX_PATH) ;
end;[/CODE]

[B]Ошибка: The procedure entry point LoadKmlToMap could not be located in the dynamic link library c:\gislib\giskmltomap.dll.[/B]

giskmltomap.dll - размер (3 891 712 bytes), версии 1.0.0.0 (файл и продукт), дата 06/03/2013 10:41
Изменено: Сергей Гущин - 19.03.2013 16:48:27
Построение прямой по дирекционному углу и длине, как в Карте
 
Есть ли такая функция, которая добавляет метрику в объект по дирекционному углу и расстоянию от предыдущей точки? Или нужно писать свою?

И еще вопрос: не совсем понятно, что делает функция mathSetLineLength:

// Установить длину отрезка между точками с координатами x1,y1 и x2,y2
// delta - шаг приближения
// number - номер точки
// При ошибке возвращает 0

long int _export  WINAPI  mathSetLineLength(double *x1,double *y1,double *x2,double *y2,
double delta,long int number);
Стандартный диалог создания карты, - не находится код рамки карты в классификаторе
 
Собственно сабж и картинка:

[IMG]http://i51.fastpic.ru/big/2013/0301/2f/8956e2c57f47823d82ae14058c98b02f.jpg[/IMG]
Страницы: 1 2 След.



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

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