робота с KMZ-файлами
-
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -4
- Откуда: Lviv
- Контактная информация:
робота с KMZ-файлами
Всем привет.
Подскажите советом.
У меня есть KMZ-файлы. Названия каждого из файлов состоит из 8-значного числа. Когда я открываю их в Google Earth они выглядят так как на рисунке 1. Когда я открываю их в QGIS они выглядят так как на
рисунке 2.
Мне нужно чтобы в поле Name (в Google Earth) было название файла (состоит из 8-значного числа).
Я могу это сделать самостоятельно, но это занимает очень много времени, так как файлов kmz очень много.
Хочу как то автоматизировать этот процесс.
Помогите кто-нибудь советом.
Заранее благодарю
Подскажите советом.
У меня есть KMZ-файлы. Названия каждого из файлов состоит из 8-значного числа. Когда я открываю их в Google Earth они выглядят так как на рисунке 1. Когда я открываю их в QGIS они выглядят так как на
рисунке 2.
Мне нужно чтобы в поле Name (в Google Earth) было название файла (состоит из 8-значного числа).
Я могу это сделать самостоятельно, но это занимает очень много времени, так как файлов kmz очень много.
Хочу как то автоматизировать этот процесс.
Помогите кто-нибудь советом.
Заранее благодарю
- Вложения
-
- рисунок_1_.png (33.83 КБ) 6166 просмотров
-
- рисунок_2.png (6.48 КБ) 6166 просмотров
-
- рисунок 1
- рисунок_1_.png (33.83 КБ) 6169 просмотров
-
- рисунок 2
- рисунок_2.png (6.48 КБ) 6169 просмотров
-
- kmz-файл.7z
- (3.02 КБ) 242 скачивания
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: робота с KMZ-файлами
тебе поможет любой язык программирования
кстати, если использовать kml - можно обойтись блокнотом...
только я не понял - что нужно изменить...<name>402</name>
кстати, если использовать kml - можно обойтись блокнотом...
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: робота с KMZ-файлами
C# и SharpKml
Код: Выделить всё
public void fun()
{
string path = @"C:\work\kmz-файл";
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] fArr = di.GetFiles("*.kmz");
foreach (FileInfo fi in fArr)
{
KmzFile f = KmzFile.Open(fi.FullName);
KmlFile fkml = f.GetDefaultKmlFile();
Kml rkml = (Kml)fkml.Root;
Document doc = (SharpKml.Dom.Document)rkml.Feature;
doc.Name = fi.Name.Replace(".kmz", "");
MemoryStream ws = new MemoryStream();
fkml.Save(ws);
f.UpdateFile("doc.kml", ws.ToArray());
f.Save(fi.FullName);
}
}
-
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -4
- Откуда: Lviv
- Контактная информация:
Re: робота с KMZ-файлами
названия файлов (8 цифр) как на скриншоте из QGIS. Мне нужно чтобы это названия файлов (8 цифр) било в поле Name (в Google Earth) (например: вместо 402 нужно чтобы было 00000001).
Подскажите поподробнее как ето сделать. в блокноте думаю будет лучше, так как не имею опыта работы с программированием.
Подскажите поподробнее как ето сделать. в блокноте думаю будет лучше, так как не имею опыта работы с программированием.
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: робота с KMZ-файлами
402 это имя Placemark, а их может быть несколько в файле
-
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -4
- Откуда: Lviv
- Контактная информация:
Re: робота с KMZ-файлами
мне нужно чтоби имя Placemark било как имя файла (в данном случае оно должно состоять из 8 цифр)
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: робота с KMZ-файлами
В notepad++ есть find in files, но там нельзя получить имя текущего файла. Так что только програмирование
-
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -4
- Откуда: Lviv
- Контактная информация:
Re: робота с KMZ-файлами
а можете помочь с програмированием?
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -4
- Откуда: Lviv
- Контактная информация:
Re: робота с KMZ-файлами
помогите пожалуйста
-
- Завсегдатай
- Сообщения: 455
- Зарегистрирован: 17 фев 2016, 14:02
- Репутация: -4
- Откуда: Lviv
- Контактная информация:
Re: робота с KMZ-файлами
помогите пожалуйста кто может, могу заплатить
- Игорь Белов
- Гуру
- Сообщения: 2230
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1503
- Откуда: Казань
Re: робота с KMZ-файлами
Скрипт для bash и соответствующего окружения:
Файл скрипта f2n.sh помещаем в ту же папку, где лежат данные, и запускаем:
Алгоритм примитивный, для конкретного случая, заменяет 11. строку, не анализируя содержимого. С регулярными выражениями можно сделать что-то более универсальное.
Исходные файлы бэкапятся. Новые пишутся на их место.
Код: Выделить всё
#!/bin/bash
for f in *.kmz
do
unzip ${f}
mv ${f} ${f}~
mv doc.kml doc.kml~
awk -v fn=${f%.*} '{ if (FNR == 11) printf " <name>%s</name>\n", fn; else print $0 }' doc.kml~ > doc.kml
zip ${f} doc.kml
rm doc.kml*
done
Код: Выделить всё
$ . f2n.sh
Исходные файлы бэкапятся. Новые пишутся на их место.
- Вложения
-
- kmz-file-2.7z
- (3.24 КБ) 238 скачиваний
The purpose of computing is insight, not numbers
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей