前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iData批量将图形打印成png图片

iData批量将图形打印成png图片

作者头像
陈南GISer
发布2021-08-18 11:12:30
9190
发布2021-08-18 11:12:30
举报
文章被收录于专栏:点点GIS

iData数据工厂是南方数码研发的一个集测绘数据采编成图、数据入库、产品制作和生产任务管理于一体的拥有自主产权的一体化地理信息数据处理平台。新一代一体化测绘数据生产平台,能够实现数据采集、数据编辑、数据入库、数据质检、生产任务管理,3D测图等多种功能。支持对 CAD 系统( AutoCAD 、 MicroStation )数据的直接编辑和转换分发和打开,数据处理平台以ArcGIS 的原生空间数据库 Geodatabase PersonalGeodatabase ,文件后缀.mdb )为存储格式,直接面向 ArcGIS 及空间数据库,生产的数据无需转换,直接入库,进一步保证了数据的一致性和完整性。生产还能实现与现有GIS 系统之间的无缝数据交换和入库更新一体化,并且真正实现了图库一体化、图属一体化。并且支持C#、C++、lua、Java、Python语言进行二次开发。

在学习这个软件和软件的C#二次开发接口时,看到有个把图形打印到图片上的功能,后来就尝试做了一个程序,把所有的分幅图自动循环进行打开、调用程序内部接口,把图形打印成png图片。下面就用C#语言做的应用程序。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows.Forms;
using System.Timers;

using Southgis.iData;

namespace CSiData
{

    public class iDataMain : iDataRunnerInterface
    {
        public void AddCommand()
        {
            //添加要执行的命令
            iDataInterface.AddCommand("CSiData.Class1", "ExportPng", "图形导出图片");
        }
        public void InitApplication()
        {
            //模块加载后第一个执行
        }

        public void UnloadApplication()
        {
            //模块卸载时执行
        }
    }

    public class Class1
    {
        public static void ExportPng()
        {
            iDataInterface iDataIntFac = new iDataInterface();
            string sourcePath = iDataIntFac.sourcePath();
            string[] templesfileNames = File.ReadAllLines(sourcePath + "\\" + "TEMPLESETFILE.txt", Encoding.UTF8);
            string templesfileName = templesfileNames[0];

            FolderBrowserDialog fderBrowDlg = new FolderBrowserDialog();
            fderBrowDlg.Description = "请选择数据文件夹";
            if (fderBrowDlg.ShowDialog() == DialogResult.OK)
            {
                string dbPath = fderBrowDlg.SelectedPath;
                List<string> strFilePaths = Tools.GetFilesPath(dbPath);
                for (int i = 0; i < strFilePaths.Count; i++)
                {
                    string strFilePath = strFilePaths[i];
                    string extion = Path.GetExtension(strFilePath);
                    string dic = Path.GetDirectoryName(strFilePath);
                    string fileName = Path.GetFileNameWithoutExtension(strFilePath);
                    if (extion == ".mdb")
                    {
                        DbBase db = iDataIntFac.GetCurBase();
                        iDataIntFac.OpenDoc(strFilePath, false, templesfileName, 2);
                        List<iDataEntity> listEnts = new List<iDataEntity>();
                        //选择图上全部实体
                        iDataIntFac.iDataSSGetX(out listEnts, null, false, SelectMode.selAll);
                        iDataIntFac.saveEntitysToImage(dic + "\\" + fileName + ".png", 1600, 1600, listEnts, null, -1, null, null);
                    }
                }
            }

        }
    }
}

程序加载:

数据文件

单个数据打开:

程序批量处理后结果图片

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点点GIS 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档