我有一个二进制文件“geo.bin”,它代表一些几何(我认为是 OGR WKB)。二进制文件有一个组成多边形的点列表。我想读取二进制数据并在我的 VBScript 脚本中创建一个点数组。
是否有我可以利用的现有解决方案?也许像 DbGeometry 这样的 .NET 类?如果是这样,我将如何实例化这样的类?我尝试了以下方法,但收到错误“ActiveX 组件无法创建对象:'GetObject'”:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim logfile
Set logfile = fso.CreateTextFile("A:\Atoll\geotest.log")
'read binary geometry into byte array
Dim stream, bytes
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 1
stream.LoadFromFile("A:\Atoll\geo.bin")
bytes = stream.Read
stream.Close
Dim dbgeo: Set dbgeo = GetObject("C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Data.Entity.dll", "DbGeometry")
logfile.Write(TypeName(dbgeo) & vbCrLf)
Dim poly: Set poly = dbgeo.FromBinary(bytes)
我也尝试过使用:
Dim dbgeo: Set dbgeo = CreateObject("System.Data.Spatial.DbGeometry")
但得到一个类似的错误。