[GIS] Layers with the same CRS in QGIS do not line up

coordinate systemdxfkmlqgis

I am busy with a project where I have to layer a .dxf and a .kml file but the layers are not lining up. The .dxf file's coordinates are completely wrong and the scale also does not appear to math up with the .kml file's. I have tried separately saving each layer to a new CRS, enabled "On the Fly" and setting the project CRS. The layer's properties show that they are both in the same CRS.
The original CRS was undefined so it was automatically assigned WGS84. I later changed it to Hartebeeshoek 94.
It might be possible that the company who created the .dxf used a custom projection, is there any way to tell? Can anyone please help?

Best Answer

KML files use WGS84 LL by default, so yours should appear correctly positioned with respect to another dataset that you are confident is georeferenced (such a reference dataset is very useful when importing new data)

However if the DXF file has not been supplied with any description of the coordinate system used then you have a few options.

Ideally you should be able to go back to the supplier and get the coordinate system details from them. They may have used a standard coordinate system, or as is often the case with DXF files, the coordinates may be a local system defined for surveying a construction site.

  1. If you have been given the coordinate system used and it is a standard one, then you can assign it to the DXF dataset by changing the layer CRS in the General tab. If QGIS has OTF enabled, then the data will be reprojected and (hopefully) it will appear in the correct location. This method can also be used if you have a shortlist of possible coordinate systems that the dataset might be in.
  2. If you can't find a standard coordinate system that works with the data, or have been told that it uses a local coordinate system, then if you can identify features in the DXF and match them to the equivalent feature in a correctly georeferenced dataset you can use the Vector Bender plugin to adjust the DXF data to match the georeferenced dataset.

A useful first pass is to load the data in an unknown CRS (your DXF file) into QGIS with OFT disabled, and look at the magnitude of the coordinates reported for the data - if it is less than 180 in the X and 90 in the Y then it is likely that the data is in a geographic (Lat / Lon) system. If the coordinates' magnitude is larger then they are probably in a projected system. If the latter, check where the 0,0 coordinate position is, if it is close to the bottom left of the data then that might indicate a local coordinate system.