TheSwamp

Code Red => .NET => Topic started by: sybold on November 06, 2014, 06:24:02 AM

Title: current geocoordinatesystem
Post by: sybold on November 06, 2014, 06:24:02 AM
using these examples,
http://through-the-interface.typepad.com/through_the_interface/2014/09/translating-between-autocad-drawing-points-and-geographic-locations-using-net-part-1.html (http://through-the-interface.typepad.com/through_the_interface/2014/09/translating-between-autocad-drawing-points-and-geographic-locations-using-net-part-1.html)
i got those working.

how can i get the current geocoordinatesystem to be used in a form, or to use it to search in the whole list.

Code: [Select]
        <CommandMethod("DCS")> _
        Public Sub DetectCoordinateSystems()
            Dim doc = Application.DocumentManager.MdiActiveDocument
            If doc Is Nothing Then
                Return
            End If
            Dim ed = doc.Editor
            '
            If HasGeoData(doc.Database) Then
                Using tr = doc.Database.TransactionManager.StartOpenCloseTransaction()
                    Dim gd = TryCast(tr.GetObject(doc.Database.GeoDataObject, OpenMode.ForRead), GeoLocationData)
                    ed.WriteMessage(vbLf & gd.CoordinateSystem)
                End Using
            Else
                ed.WriteMessage(vbLf & "niet gevonden")
            End If
        End Sub

i got this now, it outputs a xml string
Title: Re: current geocoordinatesystem
Post by: sybold on November 06, 2014, 08:36:24 AM
i got it!

Code: [Select]
        <CommandMethod("DCS")> _
        Public Sub DetectCoordinateSystems()
            Dim doc = Application.DocumentManager.MdiActiveDocument
            If doc Is Nothing Then
                Return
            End If
            Dim ed = doc.Editor
            '
            If HasGeoData(doc.Database) Then
                Using tr = doc.Database.TransactionManager.StartOpenCloseTransaction()
                    Dim gd = TryCast(tr.GetObject(doc.Database.GeoDataObject, OpenMode.ForRead), GeoLocationData)
                    Dim css = GeoCoordinateSystem.Create(gd.CoordinateSystem)
                    ed.WriteMessage(vbLf & css.ID)
                End Using
            Else
                ed.WriteMessage(vbLf & "niet gevonden")
            End If
        End Sub

        Private Shared Function HasGeoData(db As Database) As Boolean
            ' Check whether the drawing already has geolocation data

            Dim GeoData As Boolean = False
            Try
                Dim gdId = db.GeoDataObject
                GeoData = True
            Catch
            End Try
            Return GeoData
        End Function
Title: Re: current geocoordinatesystem
Post by: twdotson on December 01, 2014, 04:14:48 PM
How about this?

Application.GetSystemVariable("CGEOCS")