I am using the latest 1.9
Here is the code
Private Function CreateShapeFile(ShapeType As FeatureType, columns As ObservableCollection(Of PointColumns), ShapeFileName As String) As FeatureSet
Here is the code
Private Function CreateShapeFile(ShapeType As FeatureType, columns As ObservableCollection(Of PointColumns), ShapeFileName As String) As FeatureSet
Try
Dim returnval As DotSpatial.Data.FeatureSet = New FeatureSet(ShapeType)
returnval.Projection = DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984
returnval.CoordinateType = CoordinateType.Z
For i = 0 To columns.Count - 1
Dim column As DataColumn = New DataColumn(columns(i).ColumnName)
Select Case columns(i).ColumnType
Case Is = "String"
returnval.DataTable.Columns.Add(New DataColumn(columns(i).ColumnName, GetType(System.String)))
Case Is = "Date"
returnval.DataTable.Columns.Add(New DataColumn(columns(i).ColumnName, GetType(System.DateTime)))
Case Is = "Double"
returnval.DataTable.Columns.Add(New DataColumn(columns(i).ColumnName, GetType(System.Double)))
End Select
Next
returnval.SaveAs(String.Format("{0}", ShapeFileName), True)
Return returnval
Catch ex As Exception
WriteToFile(ex.Message & ex.StackTrace)
Return Nothing
End Try
End Function
Private Function AddPointFeatureToShape(coords As List(Of Coordinate), columns As ObservableCollection(Of PointColumns), Optional lineF As FeatureSet = Nothing) As DotSpatial.Data.FeatureSet Dim pointF As New FeatureSet(FeatureType.Point)
Try
pointF.Projection = DotSpatial.Projections.KnownCoordinateSystems.Geographic.World.WGS1984
pointF.CoordinateType = CoordinateType.Z
For i = 0 To columns.Count - 1
Dim column As DataColumn = New DataColumn(columns(i).ColumnName)
Select Case columns(i).ColumnType
Case Is = "String"
pointF.DataTable.Columns.Add(New DataColumn(columns(i).ColumnName, GetType(System.String)))
Case Is = "Date"
pointF.DataTable.Columns.Add(New DataColumn(columns(i).ColumnName, GetType(System.DateTime)))
Case Is = "Double"
pointF.DataTable.Columns.Add(New DataColumn(columns(i).ColumnName, GetType(System.Double)))
End Select
Next
Catch
End Try
Try
For i = 0 To coords.Count - 1
Dim coord As Coordinate = New Coordinate(coords(i).X, coords(i).Y, coords(i).Z)
Dim newpoint As DotSpatial.Topology.Point = New DotSpatial.Topology.Point(coord.X, coord.Y, coord.Z)
Dim currentFeature As DotSpatial.Data.IFeature = pointF.AddFeature(newpoint)
currentFeature.DataRow("Owner") = "THE OWNER " & i.ToString
currentFeature.DataRow("OwnedSince") = Now.ToShortDateString
Next
Return pointF
Catch ex As Exception
WriteToFile(ex.Message & ex.StackTrace)
Return Nothing
End Try
End Function
When using the addpointoshape Fuinction and saving the returned featureset as the ShapeFile I get the NaN result.