高德地图与CAD图叠加显示方法汇总及优缺点分析

本文介绍了三种在高德地图上叠加显示CAD图的方法,包括高德SDK加载WMS图层、唯杰地图SDK加载CAD图以及CAD图上加载高德地图。详细阐述了每种方法的实现原理、代码示例及其优缺点。方法一利用高德SDK,适用于已有高德SDK基础的项目,但CAD功能受限;方法二通过唯杰地图SDK,允许更多CAD功能开发,但地图数据质量可能不如高德SDK;方法三以CAD为底图,解决了级别限制问题,适合CAD数据业务。

前言

​ 高德地图应用在许多领域,平常我们用的地图导航,除过正常的地图导航指引功能之外,其实还有很多实用的功能。如高德影像地图应用在包括地理、土地测量、水文学、生态学、气象学以及海洋学等方面。AutoCAD在行业中常用于城市规划、平面设计、建筑师等,这其中也要用到高德地图。最常见的是CAD图与高德地图叠加使用,通过两者叠加直观显示,助力行业提高工作效率。那如何将高德地图与CAD图叠加显示呢?下面听小编把方法一一介绍下以及各种方法的优缺点。

方法一:高德SDK加载CAD的WMS图层

原理

高德SDK

高德SDK提供了行业标准图层符合 OGC 标准或者行业通行规范的的图层类型

AMap.TileLayer.WMS

用于加载OGC标准的WMS地图服务的一种图层类,仅支持EPSG3857坐标系统的WMS图层。
查看 WMS的OGC标准

new AMap.TileLayer.WMS(opts: WMSLayerOptions)

参数说明:

opts (WMSLayerOptions) 默认图层参数

Name Description
opts.url String wmts服务的url地址,如:’ https://services.arcgisonline.com/arcgis/rest/services/'+ ‘Demographics/USA_Population_Density/MapServer/WMTS/’
opts.blend Boolean 地图级别切换时,不同级别的图片是否进行混合,如图层的图像内容为部分透明请设置为false
opts.params Object OGC标准的WMS地图服务的GetMap接口的参数,包括VERSION、LAYERS、STYLES、FORMAT、TRANSPARENT等, CRS、BBOX、REQUEST、WIDTH、HEIGHT等参数请勿添加,例如: { LAYERS: ‘topp:states’, VERSION:‘1.3.0’, FORMAT:‘image/png’ }
opts.zooms [Number, Number] (default [2,30]) 支持的缩放级别范围,默认范围 [2-30]
opts.opacity Number (default 1) 透明度,默认 1
opts.visible Boolean (default true) 是否显示,默认 true
opts.zIndex Number (default 4) 图层叠加的顺序值,1 表示最底层。默认 zIndex:4

CAD的WMS图层

唯杰地图VJMAPCAD图或自定义地图格式WebGIS可视化显示开发提供的一站式解决方案,支持的格式如常用的AutoCADDWG格式文件、GeoJSON等常用GIS文件格式,它使用WebGL矢量图块自定义样式呈现交互式地图, 提供了全新的大数据可视化实时流数据可视化功能。

唯杰地图https://vjmap.com/无需转换可直接打开CAD的DWG格式的图形,并提供了WMS服务接口。

其接口文档为:


/**
 * wms服务url地址接口
 */
export  interface IWmsTileUrl {
   
   
    /** 地图ID(为空时采用当前打开的mapid), 为数组时表时同时请求多个. */
    mapid?: string | string[];
    /** 地图版本(为空时采用当前打开的地图版本). */
    version?: string | string[];
    /** 图层名称(为空时采用当前打开的地图图层名称). */
    layers?: string | string[];
    /** 范围,缺省{bbox-epsg-3857}. (如果要获取地图cad一个范围的wms数据无需任何坐标转换,将此范围填cad范围,srs,crs,mapbounds填为空).*/
    bbox?: string;
    /** 当前坐标系,缺省(EPSG:3857). */
    srs?: string;
    /** cad图的坐标系,为空的时候由元数据坐标系决定. */
    crs?: string | string[];
    /** 地理真实范围,如有值时,srs将不起作用 */
    mapbounds?: string;
    /** 宽. */
    width?: number;
    /** 高. */
    height?: number;
    /** 是否透明. */
    transparent?: boolean;
    /** 四参数(x偏移,y偏移,缩放,旋转弧度),可选,对坐标最后进行修正*/
    fourParameter?: string | string[];
    /** 是否是矢量瓦片. */
    mvt?: boolean;
    /** 是否考虑旋转,在不同坐标系中转换是需要考虑。默认自动考虑是否需要旋转. */
    useImageRotate?: boolean;
    /** 旋转时图像处理算法. 1或2,默认自动选择(旋转时有用)*/
    imageProcessAlg?: number;
    /** 当前互联网底图地图类型 WGS84(84坐标,如天地图,osm), GCJ02(火星坐标,如高德,腾讯地图), BD09LL(百度经纬度坐标,如百度地图), BD09MC(百度墨卡托米制坐标,如百度地图)*/
    webMapType?: "WGS84" | "GCJ02" | "BD09LL" | "BD09MC";
}

实现

参考高德提拱的WMS的示例代码 https://developer.amap.com/demo/jsapi-v2/example/thirdlayer/wms-layer ,实现代码如下

let map = new AMap.Map('map', {
   
   
    zoom: 15,
    center: [106.166187, 29.44102]
});
// 调用唯杰地图服务对象
let svc = new vjmap.Service(env<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值