Парсинг КЛАДР: различия между версиями
Abushyk (обсуждение | вклад) (Новая страница: «Работа с файлами базы данных КЛАДР состоит из двух этапов.<br /> 1. Получение данных из файл…») |
Abushyk (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 60: | Строка 60: | ||
<br /> | <br /> | ||
− | Файл streetextractor.php ожидает, что файл STREET_export.txt находится рядом с ним. | + | Файл streetextractor.php ожидает, что файл STREET_export.txt находится рядом с ним.<br /> |
+ | |||
+ | |||
+ | [http://my.digitalwerkstatt.ru/kladr/kladrexporter.php.dist kladrexporter.php]<br /> | ||
+ | |||
+ | [http://my.digitalwerkstatt.ru/kladr/streetexporter.php.dist streetexporter.php]<br /> | ||
+ | |||
+ | [http://my.digitalwerkstatt.ru/kladr/streetextractor.php.dist streetextractor.php]<br /> | ||
+ | |||
+ | [http://my.digitalwerkstatt.ru/kladr/kladr.rar Готовый, приведенный к формату xml, иерархически структурированный список административных единиц КЛАДР] |
Текущая версия на 20:37, 20 июня 2013
Работа с файлами базы данных КЛАДР состоит из двух этапов.
1. Получение данных из файлов dbf
2. Обработка полученных данных
1. Получение данных из файлов dbf
Скрипт kladrexporter.php (php с поддержкой dbase)
Скрипт ожидает, что рядом с ним в папку BASE находится файл KLADR.dbf. Скрипт построчно извлекает записи и из них формирует файл KLADR_export.txt в формате csv файла, где каждая строка представлена в виде
название_территориальной единицы;сокращение_типа_единицы;код_единицы
например
Адыгея;Респ;01000000000
Скрипт streetexporter.php (php с поддержкой dbase)
Скрипт ожидает, что рядом с ним в папку BASE находится файл STREET.dbf. Скрипт построчно извлекает записи и из них формирует файл STREET_export.txt в формате csv файла, где каждая строка представлена в виде
название_объекта_географии;сокращение_типа_объекта_географии;код_административной_единицы_содержащей_объект;код_объекта
например
Абадзехская;ул;01000001000;0001
код_административной_единицы_содержащей_объект из файла STREET_export.txt соответствует код_единицы из KLADR_export.txt
Соответственно, зная код КЛАДР для административной единицы, мы можем получить список улиц для него. Данный поиск имеет смысля для городов. Если требуется получить список улиц например республики Адыгея, необходимо собрать списки улиц всех входящих объекто, которые ими располагают.
Результирующие csv файлы весьма громоздки.
2. Обработка полученных данных
Для излечения списка улиц для конкретного города используется файл streetextractor.php (php 5.3 точно, на меньших версиях не проверялось. Поддержка dbase не требуется).
Скрипт ожидает на входе переменную k со значение кода КЛАДР города, по которому отбирает и формирует список улиц.
Например, запросив streetextractor.php?k=24000001000 (улицы Красноярска), мы получим в ответ массив
Array
- (
- [24000001000] => Array
- (
- [0001] => Array
- (
- [name] => 1905 года
- [socr] => ул
- )
- [0002] => Array
- (
- [name] => Днепропетровская 2-я
- [socr] => ул
- )
.....
Файл streetextractor.php ожидает, что файл STREET_export.txt находится рядом с ним.