Слои шейп-файлов в QGIS не отображаются, пока я не уменьшу

15

У меня есть два слоя шейп-файлов в проекте Qgis, у которых есть проблемы с масштабированием. Одна - это линия, которую я скопировал / вставил в новый слой из набора контуров высоты, а другая - это слой многоугольника, который я создал путем растворения всех элементов в другом слое.

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

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

Ранее оба слоя работали хорошо, и их удаление / добавление снова не решает проблему.

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

Эта проблема показана в Qgis 2.4 и 2.6

Что-то я делаю не так?

JPH
источник
У меня была эта проблема с несколькими шейп-файлами, но я не уверен, что ее вызывает ...
DPSSpatial
5
Попробуйте восстановить пространственный индекс.
Винс
2
Интересно, что-то не так с формами, такими как поврежденная или неправильная геометрия? Или проблема пространственного индекса.
SaultDon
Я восстановил пространственный индекс для обоих слоев, и они все еще не отображаются. Я думаю, что это должно быть проблемой геометрии, так как в слое многоугольника проблема появляется, когда я редактирую вершины, чтобы удалить кольца. Я тщательно редактирую слой, чтобы посмотреть, смогу ли я выделить проблему.
JPH

Ответы:

4

У меня и моих коллег возникла эта проблема в версиях QGIS, начиная с 2.6.1 и заканчивая новой 2.14. Решение, которое мы разработали, заключается в запуске:

Vector> Инструменты геометрии> Multiparts to Singlepart ...

Новый созданный шейп-файл теперь будет отображаться на всех уровнях масштабирования. Я полагаю, что проблема заключается в том, что старый шейп-файл имел неправильный порядок колец (предполагая, что в вашем файле были внутренние кольца), и поэтому исправление похоже на запуск "Восстановить геометрию" в ArcMap.

Бенджамин Гаппа
источник
Я попробовал это со слоем из нескольких частей, и это сработало. Теперь в моем слое многоугольника есть несколько строчных записей, которых я хотел избежать - в этом и состоит многокомпонентный объект. Интересно, почему это произошло, чтобы избежать проблемы в будущем. Любые комментарии?
R'n'E
3

У меня была такая же проблема. Для меня это решило то, что сказал РикОрт и Винс.

В меню «Слой»> «Свойства»> «Основные» задайте систему координат «От пользователя»: правильную систему. Затем нажмите Создать пространственный индекс.

Клейтон Харрисон
источник
2

Предполагая, что в окне свойств не установлена ​​масштабируемая видимость ...

Я использую GRASS для очистки данных, если вам нужно заполнить дыры и провести другую топологическую работу, v.clean - отличное место для начала.

MikeRSpencer
источник
1
Столкнулся с этой проблемой сегодня. Запуск v.clean очень хорошо работал в QGIS 3.6.2.
Pooneil
1

Проверьте, правильно ли задано системное значение координат в разделе Свойства слоя. Я видел, что шейп-файлы с действительными файлами prj сбрасывают это значение в сгенерированный пользователь CRS (...): 10000x. Этот сгенерированный CRS может вызвать исчезновение данных таким же образом, как и данные без установленного CRS.

RickOrth
источник
1

Я пошел в Свойства -> CRS - Создать пространственный индекс

Работает сейчас Не уверен, что именно это имел в виду @Vince, но это сработало.

-- РЕДАКТИРОВАТЬ --

Я говорил слишком рано. Моя проблема заключалась в том, что я импортировал .csv, который имел некоторые NaNs в Eastings / Northings. Они были заменены на 1 с. Как только я избавился от тех, у меня не было проблем.

Кэти W
источник
@Vince хотел восстановить его, хотя, похоже, у вас его совсем не было, но это одно и то же. Нет пространственного индекса, ужасная производительность.
Джон Пауэлл
1

У меня такая же проблема. В моем случае проблемный шейп-файл был создан ArcGIS. Я исправил это, удалив ненужные дополнительные файлы, добавленные ESRI в шейп-файлы (.cpg, .qpj, .sbx и .shp.xml), оставив только полезные (.dbf, .shp, .prj, .shx). И вуаля!

Бастьен
источник
Отличное решение! Я был в той же ситуации; используя .shp от коллеги, который был создан в Arc. Я переместил файлы .dbf, .shp и .shx в другую папку (нет .prj, но, кажется, это не имеет значения), открыл ее в QGIS и затем сохранил как другой слой. Кажется, работает нормально. Благодарность!
EcologyTom
0

У меня была эта проблема и раньше, особенно при импорте файлов .shp в базу данных SpatialLite. Я обнаружил, что очень простой способ исправить это - выбрать каждую функцию, включить редактор, использовать инструмент перемещения объекта, а затем просто щелкнуть и отпустить. Вы фактически не перемещаете какие-либо объекты, но это заставляет программу перезаписывать каждую вершину, и каким-то образом, после этого геометрия фиксируется. Для больших файлов это может занять некоторое время, но для меня это был пожар.

nsm91
источник
0

Я попробовал все решения, представленные здесь, для аналогичной проблемы, которая была у меня с частью многоугольника, которая исчезла, когда я увеличил масштаб. Единственное, что мне помогло, это использовать v.clean из набора инструментов обработки с опцией rmdupl и набором допусков. до 0. Это удаляет все дубликаты узлов и дает топологически правильный файл.

geotyr
источник