У меня есть два слоя шейп-файлов в проекте Qgis, у которых есть проблемы с масштабированием. Одна - это линия, которую я скопировал / вставил в новый слой из набора контуров высоты, а другая - это слой многоугольника, который я создал путем растворения всех элементов в другом слое.
В обоих случаях слои не будут отображаться, если весь слой не отображается на холсте. Когда я увеличиваю или перетаскиваю вид, как только часть слоя выходит за пределы холста, весь слой исчезает.
В случае слоя многоугольника, если я удаляю его и генерирую снова, он работает правильно, но когда я начинаю заполнять кольца, он достигает точки, когда он перестает работать хорошо (я хочу в итоге создать один многоугольник, охватывающий все объекты в оригинальный слой). Я думаю, это должно быть связано с геометрией слоя, но я не нашел причину.
Ранее оба слоя работали хорошо, и их удаление / добавление снова не решает проблему.
Все остальные слои в проекте работают хорошо (включая набор контуров высоты и слой многоугольников, который я использовал для создания проблемных слоев).
Эта проблема показана в Qgis 2.4 и 2.6
Что-то я делаю не так?
Ответы:
У меня и моих коллег возникла эта проблема в версиях QGIS, начиная с 2.6.1 и заканчивая новой 2.14. Решение, которое мы разработали, заключается в запуске:
Vector> Инструменты геометрии> Multiparts to Singlepart ...
Новый созданный шейп-файл теперь будет отображаться на всех уровнях масштабирования. Я полагаю, что проблема заключается в том, что старый шейп-файл имел неправильный порядок колец (предполагая, что в вашем файле были внутренние кольца), и поэтому исправление похоже на запуск "Восстановить геометрию" в ArcMap.
источник
У меня была такая же проблема. Для меня это решило то, что сказал РикОрт и Винс.
В меню «Слой»> «Свойства»> «Основные» задайте систему координат «От пользователя»: правильную систему. Затем нажмите Создать пространственный индекс.
источник
Предполагая, что в окне свойств не установлена масштабируемая видимость ...
Я использую GRASS для очистки данных, если вам нужно заполнить дыры и провести другую топологическую работу, v.clean - отличное место для начала.
источник
Проверьте, правильно ли задано системное значение координат в разделе Свойства слоя. Я видел, что шейп-файлы с действительными файлами prj сбрасывают это значение в сгенерированный пользователь CRS (...): 10000x. Этот сгенерированный CRS может вызвать исчезновение данных таким же образом, как и данные без установленного CRS.
источник
Я пошел в Свойства -> CRS - Создать пространственный индекс
Работает сейчас Не уверен, что именно это имел в виду @Vince, но это сработало.
-- РЕДАКТИРОВАТЬ --
Я говорил слишком рано. Моя проблема заключалась в том, что я импортировал .csv, который имел некоторые NaNs в Eastings / Northings. Они были заменены на 1 с. Как только я избавился от тех, у меня не было проблем.
источник
У меня такая же проблема. В моем случае проблемный шейп-файл был создан ArcGIS. Я исправил это, удалив ненужные дополнительные файлы, добавленные ESRI в шейп-файлы (.cpg, .qpj, .sbx и .shp.xml), оставив только полезные (.dbf, .shp, .prj, .shx). И вуаля!
источник
У меня была эта проблема и раньше, особенно при импорте файлов .shp в базу данных SpatialLite. Я обнаружил, что очень простой способ исправить это - выбрать каждую функцию, включить редактор, использовать инструмент перемещения объекта, а затем просто щелкнуть и отпустить. Вы фактически не перемещаете какие-либо объекты, но это заставляет программу перезаписывать каждую вершину, и каким-то образом, после этого геометрия фиксируется. Для больших файлов это может занять некоторое время, но для меня это был пожар.
источник
Я попробовал все решения, представленные здесь, для аналогичной проблемы, которая была у меня с частью многоугольника, которая исчезла, когда я увеличил масштаб. Единственное, что мне помогло, это использовать v.clean из набора инструментов обработки с опцией rmdupl и набором допусков. до 0. Это удаляет все дубликаты узлов и дает топологически правильный файл.
источник