Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2007-06-02

Адреса в эРэФии

Делаю сейчас работу, в части которой надо оперировать адресами (искать, выбирать. добавлять в реестр). С точностью хотя бы до населенного пункта (улицы и дома - необязательно).
Забавно, но фактически нет полного и актуального реестра адресов, не то что на РФ, на Московскую область! Есть всякие КЛАДРы (наиболее полезная штука), ОКАТО и прочие. Но ОКАТО в машиночитаемом виде не найти, да и актуальность аховая, КЛАДР - заточена под нужды налоговой и там есть только то, что "должно" в казну. Электронная Россия, АУ!... нет ответа.
ОКАТО - это вообще песня! Делали его калькой с советской системы, разработанной пес знает когда. Когда компьютеры были большими, а мы маленькими (а может и вовсе не родились). Посему, после оптимистичного введения (где декларируется цель - машиночитаемый реестр) в устройство кодов этой ... мягко говоря - хрени, идет описание способов экономии битов и байтов, путем манипулирования длиной кода. Это понять почти невозможно, не то чтобы запрограммировать! Да и КЛАДР по похожей схеме сделан.

О! Эта схема составления и интерпретации частей адреса! Расскажу на пальцах: формально, адрес состоит из частей - регион, район, город, населенный пункт, улица, дом, квартира. Где-то между нас.пунктом и улицей должен быть почтовый индекс. Приготовьтесь.... барабанная дробь... если отбросить улицы и после, обязательным можно обьявить только регион! О как. Пример: г. Москва. Это регион, код 77. Далее, улица и т.д.
А есть полные адреса, где Московская область (это регион!, код 50), Хреновый район, г. Бздянск, д. Козюлино и далее.
Но это еще не всё. Сочетания тоже могут быть прикольные, например - регион и нас. пункт; регион и город; регион, район и нас.пункт (без города). Того кто придумал такую схему надо найти и расстрелять. Если умер - найти его потомков, как детей вредителя и выслать из страны с запретом возвращаться до 7 потомка. Потому, что это конкретное вредительство. Машинной обработке почти не поддается.

А как эта схема кодируется... плин, ,kz , это отдельная песня. Покажу на примере: посмотрите выше, деревня Козюлино. ОК, представьте, эта д. Козюлино имеет код 333, г. Бздянск, имеет код 777, Хреновый район - 111 (МО - 50). Тогда в КЛАДР будет 4 записи в таблице элементов: 50 000 000 000 - это МО, 50 111 000 000 - это Хреновый район, 50 111 777 000 - г. Бздянск, ну и наша деревня - 50 111 777 333.

Удобно правда? Изящно, лаконично. А теперь попробуйте нарисовать запрос, которым надо найти все нас.пункты напрямую подчиненные району. Нарисовали? А теперь вспомните количество вариантов комбинаций частей адреса.

Короче, имея КЛАДР и собственный реестр для занесения адресов которых нет в КЛАДР, простая программа подсказывающая пользователю возможные варианты написания части адреса (автокомплит) состоит из 1.5 тысяч строк кода на языке высого уровня. Именно простая, адрес заполняется сверху вниз, от региона до дома. Написана за 5 дней.

Лечим гланды автогеном через Ж.

Постскриптум.
Есть вещи, которые кроме госмашины никто не сделает. Одна из них - составление госреестров. В том числе - реестров адресов. Другая - строительство дорог и , шире, коммуникаций (оптоволокно в каждый дом). Коммуникации - это вообще краеугольный камень нашей цивилизации, и в таком неподьеме. Грустно.

Где это всё? Государственные мужи и бабы, где это?
И имея эти мысли в голове я наблюдаю как эти... рассуждают куда потратить "лишние" деньги! ,kz
Как долго мы еще будем позволять всяким так поступать с нами и нашей страной?

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)