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

类型

说明

key Integer 从dwg图纸中提取的数据,所属类型。 比如1,表示多段线数据
descr String 对上面key的描述。 比如 “lwpolyline” 表示多段线
value Array
value.layerId String 图层id
value.layeName String 图层名称
value.id String 每一个建筑外框线的id

value.points

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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐