nextgis / android_gisapp

:dart: GIS application for Android
http://nextgis.com/nextgis-mobile
GNU General Public License v3.0
129 stars 107 forks source link

пропадает векторный слой из списка слоев, восстановление данных ? #611

Closed ABiatov closed 3 years ago

ABiatov commented 6 years ago

Несколько раз, на разных планшета пропадали слои с собранными данными из списка слоев. При этом в данных слоях содержится довольно много собранных данных. Прикрепляемые к точкам сбора фотографии сохранились в папке "Внутреняя память/DCIM/NextGIS/" Есть ли возможность где-то в системной папке "Внутреняя память/Android/data/com.nextgis.mobile/files/map/" найти файлы относящиеся к пропавшему слою и восстановить данные?

ABiatov commented 6 years ago

в SQlite файле layers.db таблиц атрибутивных таблиц эти слоев тоже нет. Есть атрибутивные таблицы к каким-то другим 2-м векторным слоям, а в списке слоев в NGM подключено 8 векторных слоев.

ABiatov commented 6 years ago

Пропавший векторный слой был создан из формы созданной при помощи NGFB на основании точечного слоя из nextgis.com

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

Вероятно при попытке синхронизации слоя с неподходящим паролем сам слой в месте с данными в нем и пропали.

simgislab commented 6 years ago

надо попытаться воспроизвести эту ситуацию на каком-нибудь синтетическом наборе данных

BishopGIS commented 6 years ago

По переданным данным ситуация следующая:

  1. В базе данных есть ряд слоев (в дополнение к стандартным)
  2. В файле проекта default.ngm в составе карты есть эти слои
  3. А вот папок с вложениями, с пространсвенным индексом и описанием слоев - нет.

Из-за п3 и не видны эти слои. Есть еще оригинальные фотки в папке DCIM.NextGIS и DCIM/NextGIS.

Отсутсвие папок приводит к потере связи фото с записями слоя и описаний фото (если они были).

В НГМ необходимо добавить возможность экспорта в GeoJSON не только слоев из default.ngm но и из БД напрямую. Ищатся все слои с именем вида layer_ - и складываются в geojson с такимиже именами. Назовем это "Dump corrupted DB" или "Экспорт поврежденной БД"

ABiatov commented 4 years ago

Проблема повторилась. На этот раз пропавший слой присутствует в базе данных layers.db

Если базу данных подключить в QGIS через Менеджер БД, то видна таблица слоя и его атрибуты.

но в QGIS как векторный слой не добавляется.

Геометрия записана как BLOB в полях "_geom", "_geom_2", "_geom_4", "_geom_6", "_geom_8", "_geom_10", "_geom_12", "_geom_14", "_geom_16", "_geom_18".

При этом у разных записей есть данные не во всех geom-полях.

Как информацию про геометрию получить в текстовом виде, и при этом не потерять данные из других полей?

ABiatov commented 4 years ago

пробовал добавить запросом через DB Manager: SELECT _id, field_63672, field_68602, field_75369, field_82068, GeometryType(GeomFromWKB(_geom )) FROM layer_202004301521234941

не получилось.

А через "Data Source Manager" -> Браузер добавился как таблица без геометрии.

изображение

Я верно понял, что в поле _geom геометрия в формате WKB?

simgislab commented 3 years ago

Новый инструмент Настройки - Карта - Восстановить потерянные слои