除非我缩小地图,否则QGIS中的Shapefile图层不会显示


15

我在Qgis项目中有两个shapefile图层,它们在缩放时遇到问题。一个是我从一组高度轮廓中复制/粘贴到新图层中的线,另一个是我通过将另一要素溶解在另一个图层中而创建的多边形图层。

在这两种情况下,除非整个图层都显示在画布中,否则不会显示图层。当我放大或拖动视图时,一旦图层的一部分离开画布,整个图层就会消失。

对于多边形图层,如果我删除它并再次生成它,则它可以正常工作,但是当我开始填充圆环时,它会到达一个点,直到它无法正常工作为止(我想最后得到一个包含所有要素的多边形原始图层)。我想这一定与图层的几何形状有关,但我还没有找到原因。

这两层以前都运行良好,并且删除/重新添加它们并不能解决问题。

项目中的所有其他层都可以正常工作(包括高度轮廓集和我用来生成麻烦层的多边形层)。

Qgis 2.4和2.6中都显示了此问题

我做错了什么吗?


我在一些shapefile中遇到了这个问题,但不确定是什么原因引起的...
DPSSpatial 2015年

5
尝试重建空间索引。
文斯

2
我想知道形状损坏或无效的形状是否有问题。还是空间索引问题。
SaultDon

我重新生成了两个图层的空间索引,但它们仍然没有显示。我认为这一定是几何问题,因为在多边形图层中,当我编辑顶点以删除圆环时会出现问题。我正在仔细编辑图层,以查看是否可以解决问题。
JPH

Answers:


4

我的同事和我在从2.6.1到新的2.14的QGIS版本中都遇到了这个问题。我们得出的解决方案是运行:

向量>几何工具>多部分到单部分...

现在,生成的新shapefile将在所有缩放级别上渲染。我认为问题在于旧的shapefile的环顺序不正确(假定您的文件具有内部环),因此修复方法类似于在ArcMap中运行“修复几何”。


我尝试了一个多部分线层,它起作用了。现在,我想避免在多边形图层中输入多个线,这是多部分要素的关键所在。我不知道为什么会这样,以避免将来出现问题。任何意见?
R'n'E

3

我遇到了同样的问题。为我解决的是使用RickOrth所说的和Vince所说的。

从“图层”>“属性”>“常规”中将USER:的坐标参考系统设置为正确的系统。然后单击创建空间索引。


2

假设您没有在属性窗口中设置与比例相关的可见性...

如果需要填补空白并进行其他拓扑工作,我会使用GRASS进行数据清理。vclean是一个很好的起点。


1
今天遇到这个问题。在QGIS 3.6.2中运行v.clean效果很好。
Pooneil

1

检查是否正确设置了“图层属性”下的“坐标参考系”值。我见过带有有效prj文件的shapefile将此值重置为Generated CRS(...)USER:10000x。生成的CRS可以导致数据消失,其方式与未设置CRS的数据相同。


1

我去了属性-> CRS-创建空间索引

现在工作!不知道这是@Vince的意思,但是它起作用了。

-编辑-

我说得太早了。我的问题是我导入的.csv在Eastings / Northings中包含一些NaN。这些被替换为1。一旦我摆脱了那些,我就没问题了。


@Vince打算对其进行重建,但听起来您根本没有一个,但实际上是一样的。没有空间指标,性能糟糕。
John Powell

1

我有同样的问题。就我而言,有问题的shapefile是由ArcGIS创建的。我通过删除ESRI添加到shapefile(.cpg,.qpj,.sbx和.shp.xml)中的无用的多余文件来修复它,仅保留了有用的文件(.dbf,.shp,.prj,.shx)。等等!


伟大的解决!我当时处在同一情况下;使用在Arc中创建的同事的.shp。我将.dbf,.shp和.shx文件移动到另一个文件夹(没有.prj,但似乎无关紧要),在QGIS中将其打开,然后另存为另一层。似乎工作正常。谢谢!
EcologyTom,

0

我以前也遇到过这个问题,尤其是在将.shp文件导入SpatialLite数据库时。我发现一种非常简单的解决方法是选择每个功能,打开编辑器,使用“移动功能”工具,然后单击并释放。您实际上并没有移动任何特征,但会迫使程序重写每个顶点,并且在此之后以某种方式固定了几何形状。大文件可能要花一点时间,但对我来说肯定是火。


0

我尝试了此处介绍的所有解决方案,以解决一个类似的问题,即我的多边形在放大时消失了。为0。这将删除所有重复的节点,并提供拓扑正确的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.