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