Статьи Королевства Дельфи


Часть 2. Создание собственных инструментов, строка состояния - вывод координат.




Доброе время суток, уважаемые коллеги. Этой статьей я продолжаю цикл изучения ActiveX компонента MapX предназначенного для встраивания в свои приложения элементов картографии. В данной статье мы научимся создавать собственные инструменты (tool), собственные (не предопределенные) указатели мыши для собственных инструментов, создадим статус строку с выводом координат. Итак, в прошлом проекте мы создали простое картографическое приложение, теперь мы хотим его приукрасить, это не сложно.

1. Для начала мы сделаем статусную строку где будем выводить координаты мыши преобразованные в координаты на карте.
Итак, в обработчик MouseOver пропишем следующий код, предварительно положив StatusBar на форму.

procedure TForm1.MapXMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var ScreenX,ScreenY : Single; MX,MY : Double; begin //Конвертируем координаты экрана в координаты карты ScreenX := X; ScreenY := Y; MapX.ConvertCoord(ScreenX,ScreenY,MX,MY,miScreenToMap); StatusBar.Panels[0].Text := 'X:' + FloatToStr(MX) + ' Y:' + FloatToStr(MY); end;

Итак что мы сделали - в обработчике мы вызвали метод ConvertCoord, который служит для конвертации координат карты в экранные и наоборот, в зависимости от параметра (miScreenToMap - экранные в картографические, miMapToScreen - картографические в экранные), при этом хочу обратить внимание я специально перевел экранные координаты в тип Single, т.к. процедура требует именно тип Single для экранных координат, ну а далее координаты выведем в строку состояния.
Согласитесь ничего сложного.

2. Все это конечно хорошо но внимательный читатель может задать вопрос а как преобразовывать координаты например в градусы , на что я отвечу к сожалению в MapX нет команд непосредственно изменяющих единицы измерения координат, так как MapX берет координаты непосредственно с карты, если вы хотите настроить вывод координат в градусах при определенной проекции карты вы должны, предварительно щелкнув правой клавишей на объекте Tmap, вызвать окно свойств и там загрузив слои, настроить проекцию.

Так как координаты на карте зависят от системы координат и проекции. Более подробно об этом вы можете узнать, прочитав соответствующею литературу по картографии и геодезии. В данной статье на этом я останавливаться не буду.

3. После того как мы научились определять координаты на карте, рассмотрим вопрос создания собственных инструментов (что очень неудобно было в интегрированной картографии) в MapX делается очень просто - для этого существует команда CreateCustomTool;
Вот ее синтаксис :




Начало  Назад  Вперед