Quantcast
Channel: DotSpatial
Viewing all articles
Browse latest Browse all 3973

New Post: M Values for points or lines

$
0
0
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
    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.

Viewing all articles
Browse latest Browse all 3973

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>