Открытый конвертер XML Росреестра в GeoJSON для web
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Открытый конвертер XML Росреестра в GeoJSON для web
Надо использовать потоковый парсер. А загрузим всё в память потом разберемся - плохой метод, когда объёмы Гб-ты.
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Открытый конвертер XML Росреестра в GeoJSON для web
но файл-то для начала нужно открыть.
а там уж по разному обрабатывать можно
а там уж по разному обрабатывать можно
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Открытый конвертер XML Росреестра в GeoJSON для web
В том то и дело, что его не открывают целиком, а читают, грубо говоря построчно. В xml это будет наверное от тега, до тега.
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Открытый конвертер XML Росреестра в GeoJSON для web
Я на нём не пишу, но вот первая ссылка в гугле - https://github.com/assistunion/xml-streamФилиппов Владислав писал(а):ну чем это делать в NodeJS?
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Открытый конвертер XML Росреестра в GeoJSON для web
второй открытый мной пример содержит
это как раз тот самый NodeJS
и проблема не в том как обрабатывать полученные данные, а в том чтобы открыть их - var stream = fs.createReadStream
и проблема именно в этом fs, правда я использую не поток, а fs.readFile
Код: Выделить всё
var stream = fs.createReadStream(path.join(__dirname, 'collect-preserve.xml'));
и проблема не в том как обрабатывать полученные данные, а в том чтобы открыть их - var stream = fs.createReadStream
и проблема именно в этом fs, правда я использую не поток, а fs.readFile
Последний раз редактировалось Филиппов Владислав 14 фев 2017, 10:22, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Открытый конвертер XML Росреестра в GeoJSON для web
Тогда я видимо чего-то не понимая, причём тут ограничения браузера и серверная сторона открывающая файл?
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Открытый конвертер XML Росреестра в GeoJSON для web
А что находится в string, что там больше 200Мб, весь xml одной строкой?
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Открытый конвертер XML Росреестра в GeoJSON для web
если кратко, то суть происходящего такая:
я написал библиотеку на JavaScript по принципу CommonJS. Чтобы она заработала в браузерах, я использовал Browserify.
А потом написал это с использованием Electron(NodeJS), тут модульность CommonJS родная и файлы от первого проекта применяются во втором легко и без каких-либо изменений.
Проблемы возникают при открытии больших, более 500 мб, файлов.
а они бывают и 1,2 Гб
код такой (я и асинхронный тоже метод использовал)
я написал библиотеку на JavaScript по принципу CommonJS. Чтобы она заработала в браузерах, я использовал Browserify.
А потом написал это с использованием Electron(NodeJS), тут модульность CommonJS родная и файлы от первого проекта применяются во втором легко и без каких-либо изменений.
Проблемы возникают при открытии больших, более 500 мб, файлов.
а они бывают и 1,2 Гб
код такой (я и асинхронный тоже метод использовал)
Код: Выделить всё
function loadXml() {
dialog.showOpenDialog(function (fileNames) {
if (fileNames === undefined) {
console.log("No file selected");
// https://github.com/nodejs/node/pull/4394
} else {
fs.readFileSync(fileNames[0], 'utf-8', function (err, data) {
if (err) {
alert("An error ocurred reading the file :" + err.message);
return;
}
parsedData = Converter.GeoJSON(data, false);
console.log(parsedData);
$('#save-geo').toggleClass('hidden');
});
}
});
}
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Открытый конвертер XML Росреестра в GeoJSON для web
да, там всё в одну строку, хоть 6 Мб, хоть 600 Мб
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Открытый конвертер XML Росреестра в GeoJSON для web
Ну всё таки я был прав. Надо менять подход, считывать по-элементам. И в json отдавать по ним же.
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Открытый конвертер XML Росреестра в GeoJSON для web
в общем, мне понятнее и удобнее DOM-подход и на Java всё отлично работает (мой LandProcessor), вот только РР так часто меняет версии схем, что для Явы, с её строгой типизацией, нужно генирить все классы каждый раз, да всё бы ничего, но они ещё и с задержкой выкладывают новые схемы на своём сайте. Это меня и подтолкнуло к использованию языка с динамической типизацией и так как я тогда (да и сейчас) много пишу на JavaScript, то выбор пал на него. А тут...
а если всё-таки использовать SAX-подход, то вы согласны начать работать вместе? Язык?
а если всё-таки использовать SAX-подход, то вы согласны начать работать вместе? Язык?
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Открытый конвертер XML Росреестра в GeoJSON для web
дело тут не в строгой типизации, мой конвертер от этого не страдаетвот только РР так часто меняет версии схем, что для Явы, с её строгой типизацией, нужно генирить все классы каждый раз, да всё бы ничего, но они ещё и с задержкой выкладывают новые схемы на своём сайте. Это меня и подтолкнуло к использованию языка с динамической типизацией
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: Открытый конвертер XML Росреестра в GeoJSON для web
Модель JavaScript можно же заменить на Dictonary<string, object> куда вкладывать аналогичные объекты, получится не строгая типизация.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость