====== Загрузка улиц из OpenStreetMap ====== Для городов за пределами России можно загрузить список улиц из карт OpenStreetMap (это лучший вариант, т.к. для геокодинга используется сервер nominatim, а также карты sputnik.ru, основанные на OSM). 1) Загружаем нужную страну с сайта geofabrik.de: [[http://download.geofabrik.de|http://download.geofabrik.de]]\\ Теперь из полученного файла, например: uzbekistan-latest.osm.pbf можем извлечь названия улиц. 2) создаем bat-файл следующего содержания: ''osmconvert uzbekistan-latest.osm.pbf>strana.osm\\ osmfilter strana.osm --keep-nodes="highway=* and addr:city=Ташкент" --keep-tags="all name:ru=" --ignore-dependencies -o=str.osm\\ osmconvert str.osm -o=ulicy.csv --csv-headline --csv-separator=; --csv="name:ru" '' В приведенном примере будут выгружены названия улиц Ташкента на русском языке. \\ "Ташкент" надо изменить на требуемый город, uzbekistan-latest.osm.pbf на имя скачанного в первом пункте файла.\\ Если вы хотите загрузить названия не на русском, а на местном языке, удалите все строки":ru" в приведенном примере. \\ 3) полученный файл ulicy.csv открываем любым текстовым редактором, умеющим менять кодировку (например, notepad2, notepad++ и т.п.), вставляем в начало строку с текстом "Наименование", конвертируем из UTF-8 в ANSI. Результат сохраняем В ПАПКУ c:\Program Files (x86)\ctex\voda\csv\ (если прав на это нет, можно оставить в текущей папке, но ее придется указать вручную при импорте, на этапе подтверждения пути) 4) Загружаем в Водяной, выбрав Справочники - Транспорт - Улицы, затем нажав меню "действия" и выбрав импорт из csv:\\ {{:импорт_csv.png|}} 5) на вопрос, пропускать ли повторяющиеся названия, отвечаем "да" (в файле ul.csv будет много повторов). {{:dubliul.png|}} В результате будет заполнен справочник улиц. 6) создаем нужный город в Справочники - Транспорт - Города. Его же указываем в Справочники - Структура компании - Значения по умолчанию как основной. 7) в справочнике улиц вызываем действия - служебные - групповая обработка справочника, нажимаем "заполнить таблицу". Затем переходим на вкладку "замена" и, выбрав нужный реквизит и значение, нажимаем "заменить значение" {{:ustgorod.png|}} К сожалению, названия улиц вводятся в OSM в произвольном формате (Первая улица или Улица Первая и проч.). Если получено много записей вида "Улица ...", можно убрать слово "улица" из начала названий, т.к. оно будет мешать поиску и вводу данных, а для геокодинга, за редкими исключениями (наличие одноименных площадей, переулков), не требуется.\\ Если хотите убрать "улица" из начала наименований, откройте обработки - служебные -выполнить произвольный SQL-запрос и вставьте следующий текст ''UPDATE ULICY SET NAIMENOVANIE=TRIM(REPLACE(NAIMENOVANIE,'улица','')) WHERE lower(NAIMENOVANIE) starting with 'улица ' '' (ВАЖНО! при вставке следите, чтобы весь запрос попал в окно обработки!!!)