【ArcGIS Pro二次开发】(58):数据的本地化存储

这篇具有很好参考价值的文章主要介绍了【ArcGIS Pro二次开发】(58):数据的本地化存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在做村规工具的过程中,需要设置一些参数,比如说导图的DPI,需要导出的图名等等。

每次导图前都需要设置参数,虽然有默认值,但还是需要不时的修改。

在使用的过程中,可能会有一些常用的参数,希望能够保存下来,而不是每次都去修改默认值。

于是,想到可以将这些参数保存到本地文件,然后下次打开的时候就可以自动读取本地文件上的数据。这样就会方便一些。


一、实现方法

至于要怎么实现,首先想到的是要保存的时候,将已经设置的参数写到一个txt文件里,然后需要的时候读取,应该是比较容易实现的。

做到一半,发现要保存各种格式的数据还挺麻烦的。

于是去网上搜索了一圈,发现了一个好东西:

C# 对象存储_c#对象存储_猿长大人的博客-CSDN博客

这位博主很专业,用的是【ApeFree.DataStore】,是一个开源工具,上面的文章介绍的很详细,想深入了解的可以去看看。

当然,我业余的,用不到这么多内容,只需要简单的保存和读取即可。

以村规参数设置为例:

【ArcGIS Pro二次开发】(58):数据的本地化存储,ArcGIS,ArcGIS Pro SDK,arcgis,arcgis pro二次开发,arcgis pro sdk,c#,数据本地化

这是初始数据参数。修改一下DPI和图纸列表,并点击确定关闭窗口:

【ArcGIS Pro二次开发】(58):数据的本地化存储,ArcGIS,ArcGIS Pro SDK,arcgis,arcgis pro二次开发,arcgis pro sdk,c#,数据本地化

然后,再重新打开设置窗口:

【ArcGIS Pro二次开发】(58):数据的本地化存储,ArcGIS,ArcGIS Pro SDK,arcgis,arcgis pro二次开发,arcgis pro sdk,c#,数据本地化

可以看到,上次保存的参数都在,没有被重置。因为这些数据都被保存在本地,保存文件是一个txt文件:

【ArcGIS Pro二次开发】(58):数据的本地化存储,ArcGIS,ArcGIS Pro SDK,arcgis,arcgis pro二次开发,arcgis pro sdk,c#,数据本地化


二、实现流程

首先,需要安装【ApeFree.DataStore】。

【ArcGIS Pro二次开发】(58):数据的本地化存储,ArcGIS,ArcGIS Pro SDK,arcgis,arcgis pro二次开发,arcgis pro sdk,c#,数据本地化

【ArcGIS Pro二次开发】(58):数据的本地化存储,ArcGIS,ArcGIS Pro SDK,arcgis,arcgis pro二次开发,arcgis pro sdk,c#,数据本地化

安装好后,先创建一个【Settings】,可以设置初始值。

public class Settings
{
    /// 参数设置
    // 导出图纸的DPI
    public int dpi { get; set; } = 300;
    // 导出图纸列表
    public List<string> listPic { get; set; } = new List<string>() { };
}

在初始化阶段创建一个store:

public partial class VgSetting : ArcGIS.Desktop.Framework.Controls.ProWindow
{
    // 设置一个store
    private LocalStore<Settings> store;
    .........
}
public VgSetting()
{
    InitializeComponent();

    combox_pic.Items.Add("现状用地图");
    combox_pic.Items.Add("规划用地图");
    combox_pic.Items.Add("管制边界图");

    // 创建数据存储文件
    string savePath = @"C:\ProSDKSettings\Settings.txt";
    store = StoreFactory.Factory.CreateLocalStore<Settings>(new ApeFree.DataStore.Local.LocalStoreAccessSettings(savePath));
}

在窗体加载的时候,读取store里的数据:

private void Form_Load(object sender, EventArgs e)
{
    try
    {
        // 加载store
        store.Load();
        // 参数获取
        textDPI.Text = store.Value.dpi.ToString();

        listBox.Items.Clear();
        foreach (var item in store.Value.listPic)
        {
            listBox.Items.Add(item.ToString());
        }
    }
    catch (Exception ee)
    {
        MessageBox.Show(ee.Message + ee.StackTrace);
        return;
    }
}

在窗体关闭的时候,把store里的数据存入本地txt文件即可:

// 窗体关闭
private void Form_Closed(object sender, EventArgs e)
{
    try
    {
        // 保存参数
        store.Value.dpi = int.Parse(textDPI.Text);
        store.Value.listPic = listBox.Items.Cast<string>().ToList();
        // 保存store
        store.Save();
    }
    catch (Exception ee)
    {
        MessageBox.Show(ee.Message + ee.StackTrace);
        return;
    }
}

以上即可实现工具的功能,【ApeFree.DataStore】还有不少东西,后面再慢慢学习吧。


三、工具文件分享

我把工具都集合成工具箱,不再单独放单个工具,可以到这里下载完整工具箱,会不断更新:

【ArcGIS Pro二次开发】:CC工具箱https://blog.csdn.net/xcc34452366/article/details/131506345PS:可以直接点击...bin\Debug\net6.0-windows\下的.esriAddinX文件直接安装。文章来源地址https://www.toymoban.com/news/detail-633330.html

到了这里,关于【ArcGIS Pro二次开发】(58):数据的本地化存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【架构安全】Web本地化中数据安全和隐私保护

    文化敏感性 调整内容以反映目标受众的文化规范和信仰至关重要。这可能需要修改图像、符号、颜色,甚至整体语气和信息,以避免文化误解或不敏感。 地理相关性 Web本地化的另一个组成部分是使信息适应某些地理区域。例如,可以通过显示本地地址、电话号码或相关本地

    2024年04月17日
    浏览(37)
  • 10 使用Vue+axios+Vuex实现登录后前端数据本地化存储实战

    这已经是《 Vue + SpringBoot前后端分离项目实战 》专栏的前端部分第8篇博客了, 服务端部分 由天哥(天哥主页)负责,目前专栏目录如下: Vue + SpringBoot前后端分离项目实战 - 前端部分 1. 手把手带你做一套毕业设计-征程开启 2. 我应该把毕业设计做到什么程度才能过关? 3

    2024年02月16日
    浏览(41)
  • Vue成绩案例实现添加、删除、显示无数据、添加日期、总分均分以及数据本地化等功能

    ✅✅✅通过本次案例实现 添加、删除、显示无数据、添加日期、总分均分以及数据本地化等功能。 准备成绩案例模板,我们需要在这些模板上面进行功能操作。 🍻🍻🍻 添加添加思路: ①、获取科目 和 分数 ②、给添加按钮注册点击事件 ③、给list数组添加一个对象 ④、

    2024年02月16日
    浏览(61)
  • 【ArcGIS Pro二次开发】(57):地图系列

    在ArcGIS Pro中,有一个地图系列,可以在一个布局中导出多个地图。 在SDK中为ArcGIS.Desktop.layout.MapSeries类和映射系列导出选项,可以以支持多页导出。 MapSeries类提供了一个静态CreateSpatialMapSeries方法,该方法使用指定的索引层(作为参数传递)为给定布局生成空间地图系列。 使

    2024年02月14日
    浏览(48)
  • 【ArcGIS Pro二次开发】(64):多分式标注

    在ArcGIS中有时会遇到需要二分式标注的情况,有时甚至是三分式、四分式。 通过输入标注表达式,可以做出如下的效果,但是代码不短,每次都要输一遍也挺麻烦。 网上也有一些分式标注的python工具,但不够直观,于是做了这个一键式的工具。 如上图所示,在待处理的要素

    2024年02月10日
    浏览(50)
  • 详解dedecms织梦远程图片本地化https链接图片无法本地化怎么解决

    最近有朋友遇到发布文章时候文章里面带https的站外图片无法本地化,以下是解决办法: 找到  dede//inc/inc_archives_functions.php文件里面GetCurContent($body)这个函数,里面 这一段改为: 第二步: 这一段改为: 搞定,这样发文章就可以把https的远程图片也本地化了 以上就是本文的全

    2024年02月02日
    浏览(43)
  • 【ArcGIS Pro二次开发】(63):批量更改字段别名

    在我工作中遇到的大多数图斑,字段名称一般是英文,字段别名是中文,使用起来是比较方便的。 但有时候也会遇到一些不一样的情况,不知是经过了怎样的处理,图斑的字段别名被修改成了和字段名称一样的英文,这样就很理解字段名称的意思,特别是其它专业、不熟悉的

    2024年02月11日
    浏览(81)
  • 【ArcGIS Pro二次开发】(52):布局导出图片(批量)

    在ArcGIS Pro中设定好布局后,可以直接导出为各种类型的图片。 这是很基本的功能,但是如果你的布局很多,一张一张导图就有点费劲。 之前有网友提出希望可以批量导图,要实现起来并不难,于是就做了这个工具。 如上图所示,点击【制图相关】面板下【导出布局(批量)

    2024年02月16日
    浏览(54)
  • 【ArcGIS Pro二次开发】(59):Editing(编辑)模块

    ArcGIS Pro SDK中的\\\"Editing\\\"(编辑)模块提供了一系列API和工具,允许开发人员在ArcGIS Pro中实现各种地图数据编辑操作,从简单的要素绘制到复杂的数据集编辑。 下面列举一些常用编辑工具的实现方法。 1、获取所选要素的属性及赋值 2、通过【inspector】获取字段属性 3、裁剪面

    2024年02月13日
    浏览(40)
  • 【ArcGIS Pro二次开发】(80):标注_CIMLabelClass

    CIMLabelClass(Cartographic Information Model Label Class)是ArcGIS Pro SDK中的一个类。 它主要用于定义标签的样式和属性,如字体、大小、颜色、对齐方式等,以及标签的排列和布局规则。 1、获取当前地图的标签引擎 2、修改当前地图的标签引擎 3、将文字符号TextSymbol应用到要素图层

    2024年02月19日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包