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, вызвать окно свойств и там загрузив слои, настроить проекцию.