# 导出

# 导出pdf

导出pdf在线体验地址 (opens new window)

let mapid;  // 不填的话,用上面打开默认的
let version; // 不填的话,用上面打开默认的
let param; // 不填的话,用默认的
/*
param = {
    lineWeight: false, // 导出时是否包含线宽
    bIncludeOffLayers: false, // 是否包含关闭的图层
    bSearchableSHX: false, // 可搜索型文字
    bSearchableTTF: false, // 可搜索ttf文字
    pageWidth: 210, // 宽,单位mm
    pageHeight: 297, // 高,单位mm
    pageLeftMargin: 0, // 左页边距 (pageWidth, pageHeight有值时有效)
    pageRightMargin: 0, // 右页边距 (pageWidth, pageHeight有值时有效)
    pageTopMargin: 0, // 上页边距 (pageWidth, pageHeight有值时有效)
    pageBottomMargin: 0, // 下页边距 (pageWidth, pageHeight有值时有效)
    geomDPI: 600, // 矢量dpi
    colorImagesDPI: 400, //图像dpi
    isBlackWhiteMode: false, // 是否导出为黑白模式
    isGrayMode: false, // 是否导出为灰色模式
}*/
// 导出pdf
const exportPdf = async () => {
    message.info("正在导出pdf,请稍等...")
    const result = await svc.execCommand("exportPdf", param, mapid, version, true);
    if (result.error) {
        message.error(result.error)
    } else {
        let pdfUrl = svc.baseUrl() + result.path + "?token=" + svc.accessToken;
        window.open(pdfUrl, )
    }
}
// 也可以对图纸进行处理后,再导出如旋转90度后再导出
/*
// 导出pdf
const exportPdf = async () => {
    message.info("正在导出pdf,请稍等...")
    let composeRes = await svc.composeNewMap({
        mapid: 'cbf527ed3ad1',
        version: 'v1',
        fourParameter: [0, 0, 1, -Math.PI / 2]
    })
    let res = await svc.updateMap({
        // 获取一个临时的图id(临时图形只会用临时查看,过期会自动删除)
        mapid: vjmap.getTempMapId(1), // 临时图形不浏览情况下过期自动删除时间,单位分钟。默认30
        fileid: composeRes.fileid, // 生成的fileid
        mapopenway: vjmap.MapOpenWay.Memory,
        style: {
            backcolor: 0 // 如果div背景色是浅色,则设置为oxFFFFFF
        }
    })
    const result = await svc.execCommand("exportPdf", param, res.mapid, res.version, true);
    if (result.error) {
        message.error(result.error)
    } else {
        let pdfUrl = svc.baseUrl() + result.path + "?token=" + svc.accessToken;
        window.open(pdfUrl, )
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
显示代码
全屏显示


# 导出图片

导出图片可用地图服务的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图的坐标系,为空的时候由元数据坐标系决定. 也可直接输入proj4字符串*/
    crs?: string | string[];
    /** 地理真实范围,如有值时,srs将不起作用 */
    mapbounds?: string;
    /** 宽. */
    width?: number;
    /** 高. */
    height?: number;
    /** 是否透明. */
    transparent?: boolean;
    /** 不透明时的背景颜色,默认为白色。格式必须为rgb(r,g,b)或rgba(r,g,b,a),a不透明应该是255. */
    backgroundColor?: string;
    /** 四参数(x偏移,y偏移,缩放,旋转弧度),可选,对坐标最后进行修正*/
    fourParameter?: string | string[];
    /** 是否用上面的四参数进行反算,默认false*/
    isInverseFourParamter?: boolean | boolean[];
    /** 是否是矢量瓦片. */
    mvt?: boolean;
    /** 是否考虑旋转,在不同坐标系中转换是需要考虑。默认自动考虑是否需要旋转. */
    useImageRotate?: boolean;
    /** 旋转时图像处理算法. 1或2,默认自动选择(旋转时有用)*/
    imageProcessAlg?: number;
    /** 当前互联网底图地图类型 WGS84(84坐标,如天地图,osm), GCJ02(火星坐标,如高德,腾讯地图), BD09LL(百度经纬度坐标,如百度地图), BD09MC(百度墨卡托米制坐标,如百度地图)*/
    webMapType?: "WGS84" | "GCJ02" | "BD09LL" | "BD09MC";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

示例代码

const exportMapPngByBoundsUrl = points => {
    let bounds = vjmap.GeoBounds.fromDataExtent(points);
    bounds = map.fromLngLat(bounds);
    // bounds = bounds.square(); // 保证为正方形
    bounds = bounds.scale(1.01); // 稍大点,要不边框线有可能刚好看不见了
    let pictureWidth = 1024 ;// 要导出的图片宽高
    let wmsUrl = svc.wmsTileUrl({
        width: pictureWidth,
        height: Math.round(pictureWidth * bounds.height() / bounds.width()),
        srs: "",
        bbox: bounds.toString(),
        transparent: false,
        backgroundColor: 'rgb(0,0,0)'
    });
    window.open(wmsUrl);
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
显示代码
全屏显示


# 导出dxf

const result = await svc.execCommand("exportDxf", {}, mapid, version, true);
1

提示

只是由于数据安全的问题,试用版本不能下载导出的dxf文件。正式版本可以后台设置下载, 根据返回的fileid (位于mapfiles目录下面)和配置的下载地址去下载