Уважаемые пользователи и гости форума! Обновление карт Украины для Нави-Мапс и СитиГИД доступно внутри программ.
=> Меню -> Карты -> Обновить.
Обновите пожалуйста Нави-Мапс на версию 12.0.242 или выше.

Ошибки и замечания можно давать в соответствующих темах форума или через кнопку Ошибка в программе.
Через кнопку Ошибка отправляйте информацию следующим образом:
Тап на карте в месте где надо сделать уточнения или изменения в карте. Пишите что именно надо изменить/добавить и нажимаете на кнопку Отправить.
Подождать еще примерно 2-3 минуты для сеанса связи.

Мы запустили Telegram-канал где можно задать вопрос или оперативно прислать скриншот и дать уточнения по картам.
Присоединяйтесь к нашему каналу: https://t.me/travelGPS_Ukraine_maps

Продолжаются работы по улучшению форума. Возможны перерывы во время обновления кода движка форума.

Глобальное редактирование адресных данных, названий в картах

Здесь задаем вопросы по ПО, созданию и редактированию карт. Примеры, обмен опытом, ошибки при создании и редактировании карт.

Модераторы: alx69, Vadim_O, OldMan, AGurov, Vlad_UA

Ответить

Я вам помог?

Да
4
80%
Нет
0
Голосов нет
Мне это ненужно
0
Голосов нет
У меня есть свой способ
1
20%
 
Всего голосов: 5

Сообщение
Автор
Grafs
Активный участник форума
Сообщения: 270
Зарегистрирован: 22 дек 2007, 19:55
Откуда: Киев

Глобальное редактирование адресных данных, названий в картах

#1 Сообщение Grafs » 12 мар 2008, 18:35

Все мы люди и все мы допускаем ошибки. В наших картах наиболее проблемным местом по ошибкам можно считать те данные, которые мы вписываем в адреса и названия объектов. Потому что их отследить и исправить в большой карте сложнее всего.

Есть несколько способов:

1. Изначально не делать ошибок (почти не реально)
2. Открыть в текстовом редакторе карту и проходя по блокам редактировать данные. Представьте сколько потребуется времени отредактировать 30 000 блоков? (практически нереально)
3. Создать регулярные выражения в текстовом редакторе и вынуть все необходимые данные. А кто не знает регулярных выражений? А как залить обратно? (почти не реально)
4. Создать программу для редактирования и заливки данных и дать в пользование всем желающим (наиболее реальный способ)

И так, я остановился на 4 способе и написал утилиту для сбора данных по адресам и названиям из карты и обратной заливки. Данные утилиты входят в комплект утилит mpUtilities начиная с v.1.0.3.4, вкладки «Адрес1» и «Адрес2».

Что могут эти утилиты:
Утилита «Адрес1»:

Утилита просматривает файл карты на наличие адресной информации StreetDesc и названий Label, создает базу данных в виде текстового файла с разделителем ; в файле .csv.
Для того чтобы залить данную базу обратно в карту с помощью утилиты "Адрес2", блоки в карте индексируются комментариями.
Базу легко можно редактировать при помощи Excel.
Данная утилита очень полезна при редактировании, переводе, исправлении ошибок, согласовании большого количества адресных данных и названий. Базу можно заливать в файл карты по частям, разрезав на части но обязательно предыдущие части должны присутствовать в последующих.
При помощи базы можно переименовывать, назначать, добавлять, изменять всю информацию в StreetDesc и Label а также прописывать принадлежность к населенному пункту в CityIdx.
Блоки в которых не присутствуют StreetDesc и Label в базу не опадают, но индексируются.
Как открывать базу в Excel:
1. Запускаем Excel и создаем новый документ
2. Данные\Импорт внешних данных\Импортировать данные
3. Выбираем сохраненный файл csv
4. В появившемся окне отмечаем пункт С разделителями и выбираем кодировку 1251 Кириллица(Windows), Далее
5. В этом окне выбираем пункт Точка с запятой, Далее
6. Здесь колонкам Label и Address назначаем текстовый формат, Готово
7. Жмем ОК
Вы получили данные для редактирования.
Первая строка - описание колонок
id - номер проиндексированного блока
typ - тип объекта
city - номер населенного пункта для CityIdx
label - текст из Label блока
address - текст из StreetDesc блока
block - тип блока [POLYLINE] или [POLYGON] или [POI]
Колонка id - неизменяемая используются для обратной заливки в карту
Колонки city, label, address - изменяемые используются для обратной заливки в карту.
Колонки typ, block служат для информативности из какого блока информация.
Колонки нельзя менять местами и менять структуру, но можно сортировать.
В некоторых ячейках если название или адрес повторяется то ставиться id его первого вхождения в базе вместо текста что экономит время при правках.
!ВНИМАНИЕ! Не открывайте файл по двойному клику или с помощью Открыть в Excel, из-за переопределения форматов Excel искажает данные!
После редактирования сохраняем в файл при помощи команды Сохранить как CSV(разделители - запятые), он проставит разделитель «;».


Утилита «Адрес2»:
Утилита заливает сохраненную базу данных утилитой "Адрес1" обратно в проиндексированный файл карты.
!ВНИМАНИЕ! Не рекомендуется заливать базу в несоответствующий ей индексный файл карты, либо если были случайно изменены индексы блоков!
Не проиндексированные блоки карты утилитой не изменяются.
Если у вас после редактирования карты появилось большое количество новых блоков, индексацию рекомендуется повторить с помощью утилиты "Адрес1", база адресов и названий при этом будет новая.

Если подумать то возможности данных утилит выходят за рамки описанного.
К тому же утилиты бесплатны!

http://travelgps.com.ua/forum/viewtopic ... 0327#10327
Ничего невозможного нет!
Nokia n95, iBlue 747, GarminMobileXT

bonza2
Активный участник форума
Сообщения: 181
Зарегистрирован: 30 авг 2007, 09:06
Откуда: Беларусь, Жодино.
Контактная информация:

#2 Сообщение bonza2 » 12 мар 2008, 20:47

Grafs, начало положено.
на месяц отдал исх на правку другому. сам в отпуске.
идея хорошая!!!!
потома проверю...
garmin Legend 16 mb :) - был.
сча NOKIA E90.

VF
Ведущий по г.Харьков
Сообщения: 1495
Зарегистрирован: 07 фев 2007, 08:30
Откуда: Харьков

#3 Сообщение VF » 12 мар 2008, 23:43

Grafs,
я поставил да, хотя лично мне больше сейчас подошел бы вариант ответа типа "еще не испытал, но инструмент считаю полезным".
Т.есть я текущую порцию этих проблем решил своими методами,
а следующая порция на подходе, потестирую обязательно.
Но доработки по версиям, как вижу, в правильном направлении.
И городить каждому для этого свой огород считаю малополезной тратой времени.
Grafs, надо продолжать! И тем более поддерживаю усилия по сопровождению утилит пояснениями для пользователей. Это зачастую важнее, чем фактически спрятанные более "крутые" функции.

OldMan
ВЕДУЩИЙ
Сообщения: 2342
Зарегистрирован: 24 июл 2006, 15:43
Откуда: Донецк, Украина
Контактная информация:

#4 Сообщение OldMan » 13 мар 2008, 09:41

Экспресс замечания.
1. Непонятно назначение вновь создаваемого файла ...IndexADR.mp
В него надо обратно втягивать?
2. Даные csv файла не помещаются на одну страницу - органичение Эксель на 65 тыс строк.
3. Быстро увидел ошибки, но хотелось бы перед их исправлением глянуть на карте как это выглядит. Может есть смысл координаты выводить в файл, чтоб быстро на карте найти. Например улица неоправдано порезана на куски, надо бы смержить.

Дали будэ.

Grafs
Активный участник форума
Сообщения: 270
Зарегистрирован: 22 дек 2007, 19:55
Откуда: Киев

#5 Сообщение Grafs » 13 мар 2008, 11:05

1. Да это уже проиндексированный файл карты
2. Можно в текстовом редакторе разрезать на части, обычным копированием а потом склеить после редактирования.
Хотя нужно подумать над этим вопросом
3. Можно добавить колонку в csv с 1 координатой к блоку, если есть такое желание.
Ничего невозможного нет!
Nokia n95, iBlue 747, GarminMobileXT

OldMan
ВЕДУЩИЙ
Сообщения: 2342
Зарегистрирован: 24 июл 2006, 15:43
Откуда: Донецк, Украина
Контактная информация:

#6 Сообщение OldMan » 13 мар 2008, 13:44

1. Т.е технология такая - исходник индексируется, замораживается (т.е. с ним работы нет), правятся ошибки в Экселе, втягиваются в индесированный исходник исправления и опять можно редактировать исходник коллективом.
Правильно понял?
2. Доп. действия увеличивают вероятность возникновения ошибки.
3. Да, именно так.

И вопросы:
Непонятно что в полях label и address, как с этим работать?
141791-- 0x2800-- 1-- id127432-- id139852-- [POI]
Это когда адреса домов даны как ПОИ
А вот адреса домов как атрибуты полигона:
11098-- 0xe-- 1-- id11019-- id2651-- [POLYGON]
11099-- 0xe-- 1-- 130-- id3475-- [POLYGON]
Как их обрабатывать - тоже непонятно.

С улицами более-менее понятно. Но реально можно только названия редактировать. Сегментацию трогать нельзя, т.к. индексация поменяется. Правильно?

Grafs
Активный участник форума
Сообщения: 270
Зарегистрирован: 22 дек 2007, 19:55
Откуда: Киев

#7 Сообщение Grafs » 13 мар 2008, 15:35

1. Да правильно
2. Если тоько были правки с проиндексированными блоками ( типа разделения на части, удаления и т.д) Если добавились блоки то нестрашно, они будут не индексированы и их утилита пропустит
3. ОК
OldMan писал(а):Непонятно что в полях label и address, как с этим работать?
141791-- 0x2800-- 1-- id127432-- id139852-- [POI]
Это когда адреса домов даны как ПОИ
А вот адреса домов как атрибуты полигона:
11098-- 0xe-- 1-- id11019-- id2651-- [POLYGON]
11099-- 0xe-- 1-- 130-- id3475-- [POLYGON]
Как их обрабатывать - тоже непонятно.
141791-- 0x2800-- 1-- id127432-- id139852-- [POI]
141791-это номер проиндексированного блока и id строки в базе
0x2800 - это TYP
1- это принадлежность к населенному пункту указанный в CityIdx в блоке
id127432-это означает что label с таким названием уже есть в базе
и сдесь дана ссылка на блок и строку в базе под номером 127432.
Это сделано для того чтобы не править повторно один и тотже текст. Изменил текст в строе 127432 и он поменяется везде где есть ссылка на него, автоматом.
id139852-это тоже самое только для адресов
[POI]-это говорит о том что эта информация взята из блока POI
OldMan писал(а):Сегментацию трогать нельзя, т.к. индексация поменяется. Правильно?
Непонял вопроса.

Можно сортировать по любым колонкам, главное ненарушать целостность строки!
Ничего невозможного нет!
Nokia n95, iBlue 747, GarminMobileXT

OldMan
ВЕДУЩИЙ
Сообщения: 2342
Зарегистрирован: 24 июл 2006, 15:43
Откуда: Донецк, Украина
Контактная информация:

#8 Сообщение OldMan » 13 мар 2008, 22:15

Grafs писал(а): 141791-- 0x2800-- 1-- id127432-- id139852-- [POI]
141791-это номер проиндексированного блока и id строки в базе
0x2800 - это TYP
1- это принадлежность к населенному пункту указанный в CityIdx в блоке
id127432-это означает что label с таким названием уже есть в базе
и сдесь дана ссылка на блок и строку в базе под номером 127432.
Это сделано для того чтобы не править повторно один и тотже текст. Изменил текст в строе 127432 и он поменяется везде где есть ссылка на него, автоматом.
id139852-это тоже самое только для адресов
[POI]-это говорит о том что эта информация взята из блока POI
Я это понял. Но если в случае с улицами (полилиниями) ситуация понятна, то ПОИ (а это адреса домов) 90 процентов именно такой информации. Кроме ПОИ (лабелов) домов на карте никаких других поитнов нет.
Посмотри:

Код: Выделить всё

137363	0x2800	1	59б	id6491	[POI]
137364	0x2800	1	59а	id6491	[POI]
137365	0x2800	1	id137211	id6491	[POI]
137366	0x2800	1	id117636	id942	[POI]
137367	0x2800	1	id54245	id942	[POI]
137368	0x2800	1	id54243	id942	[POI]
137369	0x2800	1	id19279	id942	[POI]
137370	0x2800	1	id19276	id942	[POI]
137371	0x2800	1	id19272	id942	[POI]
137372	0x2800	1	id54241	id942	[POI]
137373	0x2800	1	id54239	id942	[POI]
137374	0x2800	1	id114341	id942	[POI]
137375	0x2800	1	id76311	id942	[POI]
137376	0x2800	1	id114291	id942	[POI]
137377	0x2800	1	id117631	id942	[POI]
137378	0x2800	1	id114288	id942	[POI]
137379	0x2800	1	id137240	id942	[POI]
137380	0x2800	1	id117632	id942	[POI]
137381	0x2800	1	id117633	id942	[POI]
137382	0x2800	1	id114276	id942	[POI]
137383	0x2800	1	id137221	id942	[POI]
137384	0x2800	1	id137081	id942	[POI]
137385	0x2800	1	id127351	id942	[POI]
137386	0x2800	1	id114278	id942	[POI]
137387	0x2800	1	id137200	id942	[POI]
137388	0x2800	1	id137049	id942	[POI]
137389	0x2800	1	id137044	id942	[POI]
137390	0x2800	1	id137041	id942	[POI]
137391	0x2800	1	id127994	id942	[POI]
137392	0x2800	1	53а	id942	[POI]
В варианте, где адреса домов идут не как ПОИ (лабелы), а как адресный атрибут полигона (поля Number b Street), картина такая же непонятная.

Код: Выделить всё

83726	0xe	1	id5488	Билибина	[POLYGON]
83727	0xe	1	id13390	id3710	[POLYGON]
83728	0xe	1	id10679	id83726	[POLYGON]
83729	0xe	1	id10615	id3710	[POLYGON]
83730	0xe	1	id10679	id3710	[POLYGON]
83731	0xe	1	id10633	id83726	[POLYGON]
83732	0xe	1	id10677	id3710	[POLYGON]
83733	0xe	1	id10708	id3710	[POLYGON]
83734	0xe	1	id5488	id3710	[POLYGON]
83735	0xe	1	id10633	id3710	[POLYGON]
83736	0xe	1	id10969	id3593	[POLYGON]
83737	0xe	1	id10968	id3593	[POLYGON]
83738	0xe	1	id10649	id3593	[POLYGON]
83750	0xe	1	id10614	id1195	[POLYGON]
83751	0xe	1	id10616	id1195	[POLYGON]
83752	0xe	1	id10633	Специалистов	[POLYGON]
83753	0xe	1	id10615	id83752	[POLYGON]
83754	0xe	1	id10679	id83752	[POLYGON]
83755	0xe	1	id10615	Павла Корчагина	[POLYGON]
83756	0xe	1	id10677	id83755	[POLYGON]
83757	0xe	1	id10708	id83755	[POLYGON]
83758	0xe	1	id10676	id83755	[POLYGON]
83760	0xe	1	id10633	id83755	[POLYGON]
 
Grafs писал(а):
OldMan писал(а):Сегментацию трогать нельзя, т.к. индексация поменяется. Правильно?
Не понял вопроса.

Можно сортировать по любым колонкам, главное ненарушать целостность строки!
Я имею ввиду, что если я увидел, что улица сегментирована, то я не могу править эту улицу (мержить сегменты) в проиндексированном файле. Только менять названия. А потом, втянув новые названия, опять проиндексировать, посмотреть какие и смержить полилинии.

Grafs
Активный участник форума
Сообщения: 270
Зарегистрирован: 22 дек 2007, 19:55
Откуда: Киев

#9 Сообщение Grafs » 13 мар 2008, 23:58

Все правильно.
К примеру ПОИ:
1. В блоке [POI] № 111 присутствует Название (Label) 54а и Адрес (StreetDesc) Попова ул.
2. А в блоке [POI] № 1435 тоже есть пои с Названием (Label) 54а но улица (StreetDesc) Иванова ул.

Так вот в базе в строке 1435 в ячейке (Label) вместо 54а будет стоять ссылка id111 на ячейку (Label) в строке 111.
Если хочешь чтобы в ячейке была другая инфа то впиши вместо id111 что хочешь. Проблема будет если ты захочешь поменять только в данной ПОИ в строке 111 54а то они поменяются везде.

Я надеюсь таких ПОИ немного, поэтому выхода три:
1. Поиском ищешь кто ссылается на данную ячейку и сначала там меняешь ячейки а потом ее.
2. Менять в самой карте инфу в данной ПОИ и потом переиндексировать, я завтра доделаю чтобы показывало координату
3. Можно сделать чтобы утилита не делала ссылок на ячейки а тупо вынимала из карты то что есть, но тогда будет куча дублей которые прийдется править одно и тоже по несколько раз в разных местах.
Таких будет намного больше чем единичных ПОИ

Эта утилита лучше работает не для того чтобы менять а для того чтобы редактировать.

Я делаю так:
1. Открыл базу
2. Выделил все
3. Отсортировал по колонке Адрес
4. Поправил адреса
Дальше сортируем по другим колонкам, правим, и потом заливаем в карту


Если есть предложение как данную проблему обойти проще, или другой алгоритм генерации базы, предлагайте! Вместе доделаем как лучше.
Ничего невозможного нет!
Nokia n95, iBlue 747, GarminMobileXT

OldMan
ВЕДУЩИЙ
Сообщения: 2342
Зарегистрирован: 24 июл 2006, 15:43
Откуда: Донецк, Украина
Контактная информация:

#10 Сообщение OldMan » 14 мар 2008, 01:14

Grafs писал(а):Все правильно.
К примеру ПОИ:
1. В блоке [POI] № 111 присутствует Название (Label) 54а и Адрес (StreetDesc) Попова ул.
2. А в блоке [POI] № 1435 тоже есть пои с Названием (Label) 54а но улица (StreetDesc) Иванова ул.
Йо, въехал.
Тогда надо сделать вывод координат для поиска на карте интересующего объекта
И прикрутить чекбоксы для выбора чего индексировать. Полилинии, ПОИ или полигоны. Например начать с улиц - проиндексировать только полилинии, вылизать всё в названиях полилиний, а потом уже ловить ошибки в адресах домов или ПОИ.

bonza2
Активный участник форума
Сообщения: 181
Зарегистрирован: 30 авг 2007, 09:06
Откуда: Беларусь, Жодино.
Контактная информация:

#11 Сообщение bonza2 » 14 мар 2008, 08:39

Grafs, поддерживаю идею OldMan:
И прикрутить чекбоксы для выбора чего индексировать. Полилинии, ПОИ или полигоны. Например начать с улиц - проиндексировать только полилинии, вылизать всё в названиях полилиний, а потом уже ловить ошибки в адресах домов или ПОИ.
garmin Legend 16 mb :) - был.
сча NOKIA E90.

Grafs
Активный участник форума
Сообщения: 270
Зарегистрирован: 22 дек 2007, 19:55
Откуда: Киев

#12 Сообщение Grafs » 14 мар 2008, 11:03

Согласен, я тоже уже думал об этом. :)
Сегодня или завтра постараюсь сделать
Ничего невозможного нет!
Nokia n95, iBlue 747, GarminMobileXT

Grafs
Активный участник форума
Сообщения: 270
Зарегистрирован: 22 дек 2007, 19:55
Откуда: Киев

#13 Сообщение Grafs » 14 мар 2008, 13:42

Вот новая версия пока без описания.
Добавил віборочную индексацию и 1ю координату
http://rapidshare.com/files/99449200/mp ... 1.zip.html
Потестите пока, вроде ошибок не заметил
Ничего невозможного нет!
Nokia n95, iBlue 747, GarminMobileXT

Grafs
Активный участник форума
Сообщения: 270
Зарегистрирован: 22 дек 2007, 19:55
Откуда: Киев

#14 Сообщение Grafs » 16 мар 2008, 18:05

Все, обновил утилиту до v1_0_4_8.zip.
http://travelgps.com.ua/forum/viewtopic.php?t=757

Добавил еще утилиту по решению проблемы
WARNING!
Each city which is planned to be use as a search criteria
Must have a corresponding RGN20 element (geographic location)
Возникающую при конвертации в cGPSmapper.
Вкладка "Города"
Ничего невозможного нет!
Nokia n95, iBlue 747, GarminMobileXT

olavin
Ведущий по г. Ивано-Франковск
Сообщения: 151
Зарегистрирован: 30 ноя 2007, 10:10
Откуда: Ивано-Франковск
Контактная информация:

#15 Сообщение olavin » 07 авг 2008, 22:18

Пробую использовать утилиту для приведенияв порядок адресных данных - в первую очередь названий улиц.
У меня названия улиц у линий, домов и POI могут отличаться по написанию или даже по названию (где-то старое название), так как взяты из разных источников.

Столкнулся с некоторыми неудобствами:
1. Для домов и POI название улицы указывается в поле адреса, а для линий - в поле Label. Соответственно в CSV они оказываются в разных колонках, что неудобно для сортировки. Пока нашел решение - копировать в Excel названия улиц из колонки label в address. Но если так и сохранить, то это не очень удобно при поиске в навигаторе (navitel будет показывать название по два раза).

2. При индексации программа видимо действует очень просто: в каком объекте метка была найдена первой, в том она и сохраняется, а в остальных ставится ссылка на первый объект.
Часто получается так что название улицы пишется для POI или дома, а для полилинии самой улицы ставится ссылка.
Я думаю правильнее будет отдавать приоритет полилиниям, потому что они являются источником первичных названий, да и удобнее сравнивать название в полях label и address если они в одной строчке.

3. Для дома (полигона) в поле label принято указывать его номер, для домов с одинаковыми номерами в файле CSV истинный номер сохраняется только для одного из них, а для остальных указывается ссылка. Но это не только неудобно, но даже и опасно - при изменении номера дома в одном месте - он изменится везде.

4. Для удобства редактирования хотелось бы чтобы ID объектам присваивались по типам: сначала всем полилиниям, потом POI, потом полигонам.

Догадываюсь что для внедрения таких изменений прийдется делать несколько проходов по исходному файлу, увеличится время работы, однако думаю оно того стоит.

Ответить

Вернуться в «Создание и редактирование любительских карт.»