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坐标数据 |