Получение координат точки и координат щелчка мыши
Получение координат точки
и простейший скрипт на Avenue с комментариями |
Получение координат точек через интерфейс Arcview
Самый простой способ узнать координаты точки - поставить
графический объект "точка" (или точку в точечной теме)
в нужном вам месте, и удерживая правую кнопку мыши выбрать пункт shape properties (свойства объекта).
Координаты точки будут показаны в строке вида: Point:
X Y, где X Y и будут искомые координаты.
То, в каких единицах будут отображаться координаты зависит от двух параметров:
- Исходные единицы данных
- Установленная проекция Вида
Если Виду (View) задана проекция через View\Properties\Projection (где при этом должно значится: Projection: Имя проекции), то координаты будут отображаться в спроектированных (метровых) координатах.
Если Виду (View) не задана проекция через View\Properties\Projection (где при этом должно значится: Projection: None) координаты будут отображаться в единицах исходных данных, это могут быть как метры так и десятичные градусы.

Чтобы эти координаты перевести в привычные географические, необходимо изменить проекцию вида на географическую и еще раз для нужной точки выбрать shape properties.
View\Properties\Projection
Category: Projection of the world
Type: Geographic
Программная реализация на языке Avenue
Для того, чтобы получить координаты щелчка мышкой
программно, через Avenue, нужно создать или загрузить:
'Задать точность вывода координат, количество знаков после разделителя целой и дробной части
Script.The.SetNumberFormat("d.dddddd")
'Определить объект aView - Вид
aView = av.GetActiveDoc
'Определить объект aDisplay (область отображения данных являющаяся
частью вида)
aDisplay = av.GetActiveDoc.GetDisplay
'Определить объект aPoint - точку, показывающую положение
курсора мыши в момент щелчка
aPoint = aDisplay.ReturnUserPoint
'Определить спроектирован ли вид
aPrj = aView.GetProjection
'Если вид спроектирован - перевести точку в географическую
проекцию
if (aPrj.IsNull.Not) then aPoint = aPoint.ReturnUnprojected(aPrj)
end
'Определить географические координаты точки
xCoord = aPoint.getX
yCoord = aPoint.getY
'Очистить буфер обмена
Clipboard.The.Empty
'Добавить в буфер обмена строку содержащую координаты
Clipboard.The.Add("X-coord: " + xCoord.asString
+ nl + "Y-coord: " + yCoord.asString)
'Обновить буфер обмена
Clipboard.The.Update
'Вывести полученные координаты в окне сообщения
msgbox.info("X: " + xCoord.asString + nl + "Y:
" + yCoord.asString, "Координаты скопированы в буфер
обмена") |
Если модифицировать строку добавляющую в буфер обмена
координаты таким образом:
Clipboard.The.Add(xCoord.asString + tab +
yCoord.asString) |
То скопированные координаты будет удобно добавлять
в документ Excel, они сразу будут попадать в соседние ячейки, для
вставки в ячейки таблиц ACCESS и WORD нужно, чтобы смежные поля были
оба выделены (подробнее).
После создания скрипта, необходимо, на панели инструментов
вида создать новый инструмент (tool), и назначить событию Apply созданный скрипт.
Можно также сразу загрузить
расширение, расширение называется GetPoint и добавляет в панель две новых кнопки для получения координат, действие кнопок различается разделителем между координатами, первый инструмент вводит разделитель ";", второй - табуляцию (сделано для удобства ввода координат в таблицы).
См. также:
Подключение скриптов в Arcview 3.x >>>
Создание кнопки и назначение ей скрипта в Arcview 3.x >>> |
Последнее обновление: August 01 2007 (Наверх)
|