Author Topic: current geocoordinatesystem  (Read 1946 times)

0 Members and 1 Guest are viewing this topic.

sybold

  • Newt
  • Posts: 62
current geocoordinatesystem
« 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
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
« Last Edit: November 06, 2014, 08:05:20 AM by sybold »

sybold

  • Newt
  • Posts: 62
Re: current geocoordinatesystem
« Reply #1 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

twdotson

  • Mosquito
  • Posts: 17
Re: current geocoordinatesystem
« Reply #2 on: December 01, 2014, 04:14:48 PM »
How about this?

Application.GetSystemVariable("CGEOCS")