Имеется база иерархическая адресов (возможно, неполная, т.е. адреса по улице могут отсутствовать) - к примеру, область/край/автономный округ/ -> район -> улица -> дом; причём структура достаточно многообразна и не фиксирована. Т.е. к примеру, под районом может быть квартал, а потом дом, а может быть под районом сразу номер дома со сплошной нумерацией. В Москве одна иерархия, в других городах другая, в сельских округах третья. Вобщем многообразие сочетаний.
И есть карта(-ы) детализированная до домов.
Есть задачи
1) сопоставить объекты на карте и объекты в базе. Район к району, дом к дому и т.д.
2) При отсутствии объекта в базе, добавить его с карты.
Был написан некий софт, который при помощи различных очень специфичных настроек эту задачу для одного региона решал, и был в некоторой степени не совсем гибким. Требуется очень высокая квалификация сотрудника чтобы его настроить (должен знать структуру карты, понимать отношения между объектами, основы СУБД и запросов, "видеть" особенности иерархии адресов). Этот софт не подходит без переписывания для других регионов (под другие структуры БГД).
Хочется как-то унифицировать этот софт под другие регионы. Может есть у кого какие идеи?
Ну к примеру, первый пункт планирую решать посредством геокодирования (да, раньше тоже про это знал, но были какие-то причины не использовать). Сейчас более подробно изучаю эту возможность. Вроде способ достаточно очевидный.
Второй пока ума не приложу, можно ли как-то получить с карты с помощью ArcObjects все адреса каким-то образом структурированные, чтобы можно было удобно программно их разобрать по полочкам? Может это одна из функций геокодирования о которой я не знаю?
Да, эти задачи сейчас у нас решены, без геокодирования, но хочется теперь использовать по максимуму возможности ArcGIS Server (да, написал в этом разделе, поскольку он более активный с точки зрения программирования, а библиотека классов по сути одна), причём по максимум абстрагироваться от структуры БГД.
Может у кого будут какие-то общие мысли по этой теме? По сути проблема звучит так - есть некое территориальное деление в базе, и есть карта. Источники данных для обеих структур были разные и есть небольшие расхождения. Надо просто по-максимуму автоматически сделать сопоставление двух структур. Остальное доделает человек при помощи ручного сопоставления.