dwg图纸识别,提取建筑外轮廓坐标数据

1.业务流程说明

目的是通过dwg图纸,在网页端绘制出一个包括建筑外轮了的白模。为了达到这个目的,我们需要dwg图纸识别,提取到图纸中的建筑外轮廓的坐标数据。

2. 实施步骤

1.1 根据dwg图纸,转换成dxf文件,通过对dxf文件进行图纸数据的识别,我们可以提取到某个图层的建筑外轮廓坐标数据,这样获取到 xy坐标。

1.2 第二步通过提取dwg图纸上的层高,楼栋高数据 (目前这里有难点,还无法直接提取到层高信息),这样获取到Z坐标。

1.3 考虑到上面第二步层高无法直接提取,目前我们先人为手动设置层高、楼栋高的数据,手动设置z坐标数据。

1.4 根据一个目前给定的经纬度坐标,计算上面提取到的(x,y,z)坐标对应的 经纬度坐标。

1.5 将以上的 经纬度坐标数据组织成JSON数据格式,输出。

3. 提取建筑外轮廓坐标数据 

服务端api接口如下:

1. URL

URL :  http://10.4.36.18:8080/dwg/info/point

Method: GET

2. 请求(Request)

2.1 Header Parameter

key

value

示例

2.2 request body

 

3 响应(Response Body)

{
    code: "success",
    message: null,
    data: [{
        key: 1,
        descr: "lwpolyline",
        value: [
        {
            layerId: null,
            layerName: "建筑外框线",
            id: "72",
            points: [{
                x: 2258872.461915106,
                y: 377838.6027036026,
                z: 0
            },
            {
                x: 2259574.279442868,
                y: 378321.4390936333,
                z: 0
            },
            {
                x: 2232878.39412605,
                y: 377857.5367418375,
                z: 0
            },
            {
                x: 2242284.052615609,
                y: 377850.6856749441,
                z: 0
            },
            {
                x: 2242285.847562862,
                y: 380314.9238285401,
                z: 0
            },
            {
                x: 2248475.845920768,
                y: 380310.4150433933,
                z: 0
            },
            {
                x: 2248474.050973515,
                y: 377846.1768897974,
                z: 0
            },
            {
                x: 2258934.910048937,
                y: 377838.5572164111,
                z: 0
            }],
            blockName: null
        },
        {
            layerId: null,
            layerName: "建筑外框线",
            id: "56",
            points: [  
            {
                x: 2242285.847562862,
                y: 380314.9238285401,
                z: 0
            },
            {
                x: 2248475.845920768,
                y: 380310.4150433933,
                z: 0
            },
            {
                x: 2248474.050973515,
                y: 377846.1768897974,
                z: 0
            },
            {
                x: 2258934.910048937,
                y: 377838.5572164111,
                z: 0
            }],
            blockName: null
        }]
    }],
    traceId: null
}  

3.1 Response Body 说明, data数据说明

property

类型

说明

keyInteger从dwg图纸中提取的数据,所属类型。 比如1,表示多段线数据
descrString对上面key的描述。 比如 “lwpolyline” 表示多段线
valueArray
value.layerIdString图层id
value.layeNameString图层名称
value.idString每一个建筑外框线的id

value.points

Array组成多段线的坐标, xyz坐标数据

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值