码迷,mamicode.com
首页 > 其他好文 > 详细

geoserver 自动发布shp与正射影像

时间:2019-12-07 16:10:05      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:space   body   字符集设置   ring   坐标   syn   creat   映射   head   

Geoserver REST API 网址:https://docs.geoserver.org/stable/en/user/rest/index.html#rest

一, 发布shp

1.1 新增数据存储

技术图片
该API的参数说明(建议选择external,直接引用本地文件,避免打包上传):

技术图片
代码调用方式:

/**
 * @method 新建数据存储
 * @param {string} workspace_name 工作区名称
 * @param {stirng} store_name 数据源名称
 * @param {string} file_path 文件路径
 * @returns
 */
async function create_datastore(workspace_name, store_name, file_path) {
    try{
        // const request = require('request-promise');
        let result = await request({
            method: 'PUT',
            uri: config.geoserver_url + `/rest/workspaces/${workspace_name}/datastores/${store_name}/external.shp`,
            headers: {
                'Content-Type': 'text/plain',
                'Authorization': config.geoserver_auth
            },
            body: file_path,
            // json: true       //不能加这个,否则会报500
        });
        return result;
    }catch(err) {
        if(err) throw err;
    }
}

1.2 数据源设置

技术图片
注意:connectionParameters里的参数,会把之前已存在的配置,如url等完全覆盖,如需增加配置,注意先获取entry,然后进行push,最后调用更新接口。
部分参数所对应项:

entry.push({"@key":"charset","$":"UTF-8"});         //字符集设置
entry.push({"@key":"create spatial index","$":"true"});     //如果缺少空间索引或者空间索引过时,重新建立空间索引
entry.push({"@key":"memory mapped buffer","$":"true"});     //使用内存映射的缓冲区
entry.push({"@key":"cache and reuse memory maps","$":"true"});  //高速缓存和重用内存映射

1.3 发布图层

技术图片
featureName一般是文件名,body设置坐标系即可(注意是featureType,不是FeatureTypeInfo)
技术图片

二, 发布Geotiff

2.1 直接发布

发布georiff时,创建coveragestores即可,新版geoserver会自动进行发布
技术图片
代码调用方式:

/**
 * @method 新建数据存储
 * @param {string} workspace_name 工作区名称
 * @param {stirng} store_name 数据源名称
 * @param {string} file_path 文件路径
 * @returns null
 */
async function create_datastore(workspace_name, store_name, file_path) {
    try{
        // 获取工作区
        let workspace = await get_workspace(workspace_name);
        if(!workspace) {
            await request({
                method: 'POST',
                uri: config.geoserver_url + `/rest/workspaces`,
                headers: {
                    'Content-Type': 'application/json',
                    'Authorization': config.geoserver_auth
                },
                body: {
                    name: workspace_name
                }
            });
        }
        await request({
            method: 'PUT',
            uri: config.geoserver_url + `/rest/workspaces/${workspace_name}/coveragestores/${store_name}/external.geotiff?charset=UTF-8`,
            headers: {
                'Content-Type': 'text/plain',
                'Authorization': config.geoserver_auth
            },
            body: file_path,
            // json: true       //不能加这个,否则会报500
        });
        return;
    }catch(err) {
        // console.log('创建资源错误')
        if(err) throw err;
    }
}

geoserver 自动发布shp与正射影像

标签:space   body   字符集设置   ring   坐标   syn   creat   映射   head   

原文地址:https://www.cnblogs.com/Mr-Kahn/p/12001821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!