|
Страница 1 из 4 
Узнайте, как использовать Oracle Locator/Oracle Spatial, GeoServer и Google Earth для создания единой, надежной системы BI с возможностями определения местоположения. Мир зациклился на технологиях для работы с местоположениями. Неважно, ищут ли люди с помощью Google Earth свои дома, отслеживают ли с помощью сотовых телефонов, поддерживающих GPS, своих детей или используют встроенные в архитектуру Oracle своих предприятий возможности, позволяющие определять местоположение. В любом из перечисленных случаев создается впечатление, что мало того, что все интересуются всей этой всячиной, связанной с местоположением, но и сама жизнь и бизнес людей также зависят от этого. Однако, как и для любого другого набора процветающих технологий при увеличении числа возможных технологических выборов, то же самое происходит и с числом сложностей и форматов данных. Вот тут-то и вступает в игру сообщество разработчиков открытого программного обеспечения.
Сообщество разработчиков открытого программного обеспечения (open-source) для геопространственных технологий мало чем отличается от других подобных сообществ. Оно состоит из сотрудников академий, инженеров и архитекторов и имеет своей целью создание мощных и удобных в работе структур и технологий, которые помогают преодолевать бреши, остающиеся между коммерческими ресурсами. Например, когда дело доходит до совместного использования данных, с картами или без них, лучшим из всех является Confluence GeoServer ( http://docs.codehaus.org/display/GEOS/Home ) - сервер c открытым исходным кодом, который может использоваться для подключения несоизмеримых геопространственных источников данных. Разработчики GeoServer считают свой проект идеальным "клеем" для геопространственной Web-Сети. В принципе, GeoServer удивительно прост. Скажем, у вас имеются некоторые данные, хранящиеся в базе данных Oracle Spatial, и вы хотите опубликовать эти данные в Web в формате, который можно будет использовать другими пакетами программ, например, Google Earth. Чтобы сделать это, вы, конечно, могли бы определить таблицу стилей XML или некоторый другой процесс вывода, чтобы перевести исходные данные в KML (стандартный язык разметки Google Earth). Однако чтобы сделать это эффективно, вы, вероятно, захотите учесть все известные геометрические типы, так же, как и любые метаданные и/или данные, связанные с геометрическими формами (материал, который действительно имеет значение). Для одноразового проекта, это могло бы быть не так уж и плохо. Но если вы желаете применить ваш доморощенный механизм преобразования к нескольким наборам данных и дизайнам данных, то вам придется проделать много работы, чтобы сначала создать структуру преобразования, способную к обработке всех сложностей обоих источников данных - и вашего, и Google Earth - а затем обработать фактические преобразования. А что вы сделаете, если ваши потребности или данные (исходные и на выходе), изменятся? Применение GeoServer делает этот весь процесс намного более простым. Предоставляя возможности элементарного обеспечения связи с таблицами опции Oracle Locator/Oracle Spatial из Oracle Database, GeoServer может выполнять простые запросы ограничивающего прямоугольника Oracle Spatial (запросы первичного фильтра), преобразовывать результаты в KML и предоставлять выход KML как сервис для Google Earth для формирования изображения на карте. Это привлекательное, недорогое решение для простых геопространственных запросов. В предлагаемой статье рассказывается о том, как использовать Oracle Locator/Oracle Spatial, GeoServer и Google Earth для создания устойчивой легко сочетаемой системы для сбора, обработки и анализа деловой информации с поддержкой определения местоположения. Я надеюсь, что в конце знакомства со статьей вы сможете выйти из этого упражнения с лучшим пониманием того, как использовать открытые исходные технологии для расширения числа способов, которыми вы используете коммерческие технологии. Oracle Locator/Oracle Spatial - учебник для начинающих Одной из самых мощных, но наименее понимаемых возможностей системы управления реляционными базами данных Oracle (начиная с Oracle Express и до Oracle Enterprise Edition) является Oracle Locator. По определению, "Oracle Locator представляет опцию Oracle Database 10 g Standard Edition и Enterprise Edition, предоставляющую базовые функциональные возможности определения местоположения, требующиеся большинству приложений заказчиков". Однако Oracle Locator предлагает намного больше этого. На самом деле, Oracle Locator дает пользователям возможность хранения информации о местоположении (геопространственной или другой), например, долготы и широты, в тех же самых таблицах и строках, что и остальная часть данных. Но Oracle Locator идет еще дальше: используя эту стандартную возможность, пользователи с теми же самыми данными могут также выполнить анализ местоположения. Так, когда вы просто хотите возвратить всю информацию о чем-то, что происходит в пределах некоторого расстояния от чего-то еще, зачем обращаться к карте или к географической информационной системе (ГИС)? Ведь Oracle Locator может сделать это для вас прямо в базе данных. И, конечно, применительно к Oracle Spatial (опция Oracle Enterprise Edition), кроличья нора становится более глубокой - намного более глубокой. По сути, Oracle Locator и Oracle Spatial - это, действительно, одно и то же. Они совместно используют один и тот же основной тип объекта (SDO_GEOMETRY), а также и те же самые метаданные и схему индексации. Однако в то время как Oracle Locator предоставляет внушительные функциональные возможности основного анализа местоположений (например, способность находить все данные, которые имеют некоторые топологические отношения с другими данными), Oracle Spatial строит поверх этого возможность для хранения и управления изображением и данными и метаданными с географической привязкой. Эта опция создает и анализирует линейные модели данных (сетевую и топологическую); превращает базирующуюся на тексте адресную информацию в долготу/широту с геокодированием; предлагает направления движения посредством интегрированного механизма маршрутизации; и выполняет глубокий многомерный пространственный анализ и глубинный анализ местоположения и других данных. Самое главное и для Oracle Locator, и для Oracle Spatial - это то, что данные и анализ являются доступными для любого клиента, который может подключиться к базе данных Oracle и делать к ней запросы. Загрузите набор данных округов Образец набора данных, включенный в демонстрационный код counties.dmp, состоит из двух таблиц, COUNTIES и STATES, а также метаданных Oracle Spatial и связанных индексов. Чтобы загрузить этот набор данных в вашу базу данных Oracle, проделайте следующее: - Войдите в ваш экземпляр базы данных Oracle как пользователь с системными привилегиями: $>SQLPLUS system/password.
- Создайте нового пользователя базы данных (назовите его любым понравившимся вам именем - я обычно выбираю имя ORAGIS): SQL> create user oragis identified by oragis.
- Предоставьте вашему новому пользователю привилегии ресурса и подключения: SQL> grant resource, connect to oragis.
- Выйдите из Oracle: SQL> exit.
- Импортируйте (ранее экспортированный) файл дампа COUNTIES в схему ORAGIS (или вашего пользователя): $> imp oragis/oragis file=counties.dmp full=y.
Взглянем на объекты базы данных Начиная с этого момента, у вас имеется все, что нужно, чтобы начать "задавать" Oracle Locator свои вопросы об отношениях между геопространственными и не геопространственными данными. Но прежде чем продолжить, давайте рассмотрим те структуры, которые добавлены к базе данных и как они работают. Для этого: - Войдите в свою базу данных Oracle как пользователь, который "владеет" данными об округах: $> sqlplus oragis/oragis.
- Выполните команду DESCRIBE для таблицы округов, чтобы увидеть, из чего она состоит: SQL> desc counties.
Выходные данные должны выглядеть примерно следующим образом: Name Null? Type GEOM MDSYS.SDO_GEOMETRY COUNTY VARCHAR2(31) FIPSSTCO VARCHAR2(5) STATE VARCHAR2(30) STATE_ABRV VARCHAR2(2) FIPSST VARCHAR2(2) LANDSQMI NUMBER TOTPOP NUMBER POPPSQMI NUMBER Как можно видеть, большая часть информации в этой таблице состоит из текста (VARCHAR2) и чисел (NUMBER). Однако, строке GEOM, в которой хранятся фактические ординаты, составляющие геометрические представления для ваших округов, предписан тип базы данных MDSYS.SDO_GEOMETRY. Если более пристально взглянуть на этот тип, вы увидите, что его можно описать следующим образом:
|