• 倾斜影像三维模型根据范围界线提取分割的方法


    准备数据:

    界线数据dwg、倾斜影像模型 osgb

    准备软件:

    CAD、3DMapper、Excel(vba)

    一、导出瓦片范围线

    1、打开模型数据

    使用3DMapperViewer加载Data下的所有osgb,或者元数据metadata.xml。

    2、导出瓦片范围

    在3DMapper viewer的右侧OSG工程框里,瓦片范围图上右键→导出范围线,导出结果为DWG数据。

    3、对范围线数据进行移动Move处理

    导出的dwg范围线数据需要改变原点坐标,通过平移移动到其所在投影坐标系下应该在的位置。

    操作:使用CAD的move命令,加上(移动)元数据metadata.xml里面空间参考信息中SRSOrigin标签的xyz数据。

    4、叠加范围界线,提取需要的瓦片范围

    CAD中根据范围将需要的瓦片信息(瓦片文件夹名)搞到Excel

    二、复制需要的瓦片文件夹,制作新的模型文件包

    1、拼接瓦片路径

    新建一个目标文件夹,在下面新建一个Data文件夹。

    在Excel的B列与C列分别拼接出瓦片文件夹的原路径与需要复制到的路径。

    下图仅作列位置示例说明,路径并不正确。

    2、复制瓦片到目标文件夹

    使用下面的VBA代码,粘贴到工作表下,复制B列路径指向的文件夹到C列路径

    注意前期引用,需要先引用scrrun.dll库,不明白的百度“vba引用库”。

    Sub CopyFolder()
        Dim fso As Object '务必先引用scrrun.dll库
        Dim rowCount As Integer
        Set fso = New FileSystemObject
        rowCount = Range("B65536").End(xlUp).Row
        For i = 1 To rowCount Step 1
            fso.CopyFolder Cells(i, 2).Text, Cells(i, 3).Text '复制B列路径指向的文件夹到C列路径
        Next i
    End Sub

    3、复制其他文件到目标文件夹下

    与Data同层级的metadata.xml与Data下使用时已经生产的Data.dsm都可以复制过去,这样就完成了数据包的提取。

    三、结果

    在eps等的软件中操作加载,就可以看到效果了。

  • 相关阅读:
    用js实现广告图片后加载
    Sql server存储过程和C#分页类简化你的代码
    SQL Server 1069 错误(由于登录失败而无法启动服务)解决方法
    ASP.NET编程中的十大技巧
    ASP.NET通用分页程序
    asp.net中使用SPLIT这个函数把一个字符串分成数组
    win2003+iis6服务器设置问题集
    一个较优雅的GridView隐藏列取值解决方案
    ACCESS的iif语句转到SQL语句!!!
    SCOPE_IDENTITY 和 @@IDENTITY
  • 原文地址:https://www.cnblogs.com/yzhyingcool/p/13565527.html
Copyright © 2020-2023  润新知