private static void WriteLaz() { // --- Write Example var point = new Point3D(); var points = new List <Point3D>(); point.X = 1000.0; point.Y = 2000.0; point.Z = 100.0; points.Add(point); point.X = 5000.0; point.Y = 6000.0; point.Z = 200.0; points.Add(point); var lazWriter = new laszip_dll(); var err = lazWriter.laszip_clean(); if (err == 0) { // Number of point records needs to be set lazWriter.header.number_of_point_records = (uint)points.Count; // Header Min/Max needs to be set to extents of points lazWriter.header.min_x = points[0].X; // LL Point lazWriter.header.min_y = points[0].Y; lazWriter.header.min_z = points[0].Z; lazWriter.header.max_x = points[1].X; // UR Point lazWriter.header.max_y = points[1].Y; lazWriter.header.max_z = points[1].Z; // Open the writer and test for errors err = lazWriter.laszip_open_writer(FileName, true); if (err == 0) { double[] coordArray = new double[3]; foreach (var p in points) { coordArray[0] = p.X; coordArray[1] = p.Y; coordArray[2] = p.Z; // Set the coordinates in the lazWriter object lazWriter.laszip_set_coordinates(coordArray); // Set the classification to ground lazWriter.point.classification = 2; // Write the point to the file err = lazWriter.laszip_write_point(); if (err != 0) { break; } } // Close the writer to release the file (OS lock) err = lazWriter.laszip_close_writer(); lazWriter = null; } } if (err != 0) { // Show last error that occurred Debug.WriteLine(lazWriter.laszip_get_error()); } // --- Upon completion, file should be 389 bytes }