Ähnlich wie bei Fragen, die bereits zu DBF-Dateien gestellt wurden, versuche ich, CSV-Dateien mit einer GDB- oder Shapefile-Abdeckung in QGIS zu verknüpfen. Die Tabellen, die vor dem Join zu QGIS hinzugefügt wurden, sehen gut aus. Nach Abschluss des Joins enthält die zusammengeführte Tabelle jedoch NULL-Werte für alle verknüpften Felder. Das gleiche passiert mit einer Vielzahl unterschiedlicher Tabellen und unabhängig davon, ob ich einer Shapefile- oder einer GDB-Datei beitrete.
Ich verwende QGIS 2.0.1 unter OSX 10.8.5. Die ursprünglichen Tabellendateien sind im MDB-Format enthalten, daher habe ich den MDB ACCDB Viewer gekauft und verwendet, um sie in CSV zu exportieren. Die Tatsache, dass sie bei separater Anzeige in Ordnung sind, lässt mich glauben, dass das Problem beim Join-Verfahren liegt, nicht beim Tabellen selbst.
Vorschläge?
trim(oldField)
Funktionalität ein neues Feld erstellt wurde .Antworten:
CSV-Dateien in QGIS importieren standardmäßig alle Daten als Zeichenfolgen. Sie müssen eine CSVT-Textdatei erstellen, die QGIS mitteilt, welche Spalten als welche Datentypen angegeben werden sollen.
Zitiert von: http://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/
Dann sind Ihre Daten vom gleichen Typ und der Join sollte funktionieren.
quelle
Am besten stellen Sie sicher, dass die beiden Felder denselben Datentyp haben.
Der Feldtyp kann für Shapefiles nicht geändert werden . Es ist jedoch einfach, ein neues leeres Textfeld zu erstellen und dieses dem Ganzzahlfeld gleichzusetzen.
Sie können einen Feldrechnerausdruck verwenden, der ungefähr so aussieht:
tostring( "INT_FIELD" )
und einfach durchINT_FIELD
den Namen des tatsächlichen Ganzzahlfelds ersetzen .Sie können einen CSV-Layer-Attributwert auch einfach aus der Textnummer <-> ändern .
AKTUALISIEREN
Wenn Sie Nullwerte erhalten, können Sie versuchen, den Join beizubehalten, aber diese Attributtabelle einfach schließen und erneut öffnen, um festzustellen, ob die verknüpften Werte vorhanden sind (oder sogar QGIS schließen / erneut öffnen).
Ich konnte eine CSV erfolgreich mit einem Shapefile mit einer Mischung von Feldtypen verknüpfen, sodass String vs. Integer nicht das Problem sein sollte.
UPDATE 2
Um die Nullwerte zu entfernen, müssen sie tatsächlich einen übereinstimmenden Datensatz in der entsprechenden Tabelle haben, aus der Verknüpfungen erstellt werden. Aber im Bild unten können Sie sehen, dass einige einen passenden Datensatz haben:
quelle