| Сколько квадратных перчей (perch) в сантиаре (centare)?
Рафаил Глуховский, Москва (Intergraph)
перч (мера длины = 5,03 м)
руд (единица площади в английской системе мер; 1 руд = 1/4 акра = 40 кв. родов = 1011,71 кв. метра)
Я, на самом деле, абсолютно не знаю что такое перч, но это не имеет значения, потому что в построителе функциональных атрибутов сказано, что это "Area Unit" (единица площади), это также касается и сантиаров.
Однако если в моем классе объектов (фичере) есть колонка, содержащая значение в перчах, почему бы не узнать, сколько это будет в сантиарах? Сейчас вы уже подумали «зачем тратить время на какие-то странные единицы измерения?»... Хорошо, хорошо – я буду пользоваться квадратными милями (их используют в США) и гектарами, но знайте – этот пример также хорошо работает с перчами и сантиарами. Пусть это будет вашим домашним заданием :-).
1. Первое, нам нужна колонка с данными в квадратных милях. Нам повезло, в комплекте с GeoMedia есть набор данных USA Sample data и там просто должны быть площади штатов в квадратных милях. Ведь все у них в милях. Иначе я съем свою ковбойскую шляпу!
Итак, открываем новый документ (GeoWorkspace), подключаем хранилище "USSampleData.mdb" и добавляем класс (фичер) States в легенду. Наконец, дважды щелкаем по одному из штатов, чтобы посмотреть его площадь в квадратных милях. Постойте... там нет такой колонки. Эх, плакала моя шляпа!
Ладно, команда Functional Attributes создаст нам ее тоже, причем налету!
2. Запускаем команду Functional Attribute из меню "Analysis". Выбираем класс объектов States. Нажимаем кнопку "New…", чтобы добавить новый функциональный атрибут. У нас на экране появится вот такое окно:

3. Сначала нам надо получить площадь штатов. В списке Categories щелкаем по пункту с именем "Geometry". Теперь вы увидите список функций, относящихся к работе с геометрией. Отыщите в этом списке функцию "Area" (площадь) и дважды щелкните по ней. В поле Expression появится "Area()". Бывают ситуации, когда в классе объектов содержится более одной геометрии, поэтому мы должны сообщить функции какую геометрическую колонку использовать.
4. Убедитесь, что курсор стоит внутри круглых скобок. Найдете в списке Attributes "Input.Geometry" и дважды щелкните по нему. Геометрическое поле добавится в выражение, и оно примет вид "Area(Input.Geometry)".
5. Если сейчас просто нажать Add, OK, OK, Close и т.д., GeoMedia добавит новый запрос, который вычислит площадь штатов, но нам-то надо конвертировать ее в гектары.
6. Щелкните еще раз по функции "Area" в категории "Geometry". А теперь взгляните на нижнюю часть окна. Вы увидите подсказку, которая показывает, как должно выглядеть наше выражение. В данном случае подсказка говорит: Area(Geometry, MeasType, UnitOfMeasure ). MeasureType и UnitOfMeasure – это что-то загадочное, поэтому заглянем в справку... Я не буду пересказывать вам содержание справочной информации…, короче, в нашем случае нам следует получить следующее выражение:
Area( Input.Geometry, ProjectedMeasure, Hectare)
Вот теперь нажимаем Add, Close, OK... и получаем именно то, что мы хотели. Создан новый запрос, показывающий нам площадь каждого американского штата в гектарах!
Все быстро и классно, но вот...посмотрел чуть внимательней и понял: в наборе USA Sample data были площади штатов в квадратных милях! Эх..зря я съел свою шляпу... просто ожидал поле что-то типа AREA в начале списка полей, а SQMILES оказалось гораздо дальше. :-)
 
Ну ничего, ведь нам неудобны как квадратные мили, так и перчи, роды, полы и проч. А перевычислять площади мы теперь умеем и шляпу ради науки не жалко.
Зато гектары это наше родное, так и веет новостями с полей: "Комбайнер Шестакович без передышки смолотил 325 гектаров озимых со средней урожайностью 16 центнеров с гектара. Техники МТС "Петушки-межевая" Ларионов и Кутько внедрили передовой метод дозаправки на ходу, под впечатлением от передачи про Б-52 на канале Дискавери"
|