地籍数据属性质检功能设计与实现

QGIS基础:根据字段属性值或基于规则进行分类符号化显示 在【value】字段里选择合适的字段,本次为【ZDTZM】,在【符号】里选择合适的颜色,再点击分类即可。方法是打开【符号】,弹出【符号设置】对话框,找到【简单填充】,在【描边颜色】里选择【透明描边】。分类符号化之后的结果,如下所示,有黑色边框,影响美观,可以考虑去除掉。基于分类符号化的字段是如下所示(ZDTZM): A B C D。如下所示,选择【透明描边】,也即是不需要边框的设置。 阅读详情

要质检的数据包括使用权宗地、所有权宗地、自然幢,属性质检规则如下:

使用权宗地、所有权宗地属性质检项如下:

1.       必填项

区县代码(QXDM)、宗地特征码(ZDTZM)、坐落(ZL)、定着物特征码(DZWTZM)、权力人(QLR)、面积单位(MJDW)。

2.       字段限制

1)       要素代码(YSDM)为空,或不为空必须是10位数字组成;

2)       宗地代码(ZDDM)为空,或不为空必须是19位、数字或字母组成;

3)       不动产单元号(BDCDYH)为空,或不为空必须是28位、数字或字母组成;

4)       宗地特征码(ZDTZM),2个字母组成,如果第一个字母是G、第二个字母只能是BDEFSXY中的一个,第一个字母是J、第二字母是ABCDEFSXY中一个,第一个字母是Z、第二个字母只能是W,无其他组合;

5)       定着物特征码(DZWTZM),宗地只能是W。

自然幢属性质检项如下:

1.       字段限制

1)       区县代码(QXDM)为空,或不为空只能是6位数字;

2)       要素代码(YSDM)为空,或不为空必须是10位数字组成;

3)       宗地代码(ZDDM)为空,或不为空必须是19位、数字或字母组成;

4)       不动产单元号(BDCDYH)为空,或不为空必须是28位、数字或字母组成;

5)       自然幢号(ZRZH)为空,或不为空必须是24位、数字或字母组成;

宗地宗海特征码(ZDZHTZM)为空,或不为空由2个字母组成,如果第一个字母是G、第二个字母只能是BDEFSXY中的一个,第一个字母是J、第二字母是ABCDEFSXY中一个,第一个字母是Z、第二个字母只能是W,无其他组合。

设计时,考虑通用性和可复用性,设计了质检类CheckFieldValue,并在此基础上设计了一宗地数据的宗地特征码、自然幢数据的宗地宗海特征码检查类ParcelCheckFieldValue。

如下:

using GISWebService.HttpRequestContent;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;

namespace GISWebService.Common
{
    /// <summary>
    /// 属性质检
    /// </summary>
    public class CheckFieldValue
    {
        /// <summary>
        /// 要质检的属性与值
        /// </summary>
        private static Dictionary<string, object> _dictFieldValue { get; set; }

        /// <summary>
        /// 质检结果
        /// </summary>
        //private static List<CheckFieldResult> _listResult { get; set; }
        private static List<string> _listResult { get; set; }

        /// <summary>
        /// 属性质检
        /// </summary>
        /// <param name="name">字段名</param>
        /// <param name="value">字段值</param>
        public CheckFieldValue(string name, object value)
        {
            CheckInstance();
            object oValue = null;
            if (_dictFieldValue.TryGetValue(name, out oValue))
                _dictFieldValue[name] = value;
            else
                _dictFieldValue.Add(name, value);
        }

        /// <summary>
        /// 属性质检
        /// </summary>
        /// <param name="dictFieldValue">属性名与属性值集合</param>
        public CheckFieldValue(Dictionary<string, object> dictFieldValue)
        {
            CheckInstance();
            _dictFieldValue = dictFieldValue;
        }

        /// <summary>
        /// 
        /// </summary>
        private static void CheckInstance()
        {
            if (null == _dictFieldValue)
                _dictFieldValue = new Dictionary<string, object>() { };
            _dictFieldValue.Clear();
            if (null == _listResult)
                _listResult = new List<string>() { };
        }

        /// <summary>
        /// 正则表达式匹配检查
        /// </summary>
        /// <param name="sInput">检查参数</param>
        /// <param name="sPattern">正则表达式</param>
        /// <returns>是否匹配</returns>
        public static bool IsMatch(string sInput, string sPattern)
        {
            return IsMatch(sInput, sPattern, false, false);
        }

        /// <summary>
        /// 正则表达式匹配检查
        /// </summary>
        /// <param name="sInput">检查参数</param>
        /// <param name="sPattern">正则表达式</param>
        /// <param name="bIngnoreCase">忽略大小写</param>
        /// <param name="bIngnoreWhiteSpace">忽略空白</param>
        /// <returns>是否匹配</returns>
        public static bool IsMatch(string sInput, string sPattern, bool bIngnoreCase, bool bIngnoreWhiteSpace)
        {
            if (bIngnoreWhiteSpace && string.IsNullOrWhiteSpace(sInput))
                return false;
            return (bIngnoreCase ? new Regex(sPattern, RegexOptions.IgnoreCase) : new Regex(sPattern)).IsMatch(sInput);
        }

        /// <summary>
        /// 是否为纯数字的字符串
        /// </summary>
        /// <param name="sInput">检查参数</param>
        /// <param name="nMinLength">最小长度</param>
        /// <param name="nMaxLength">最大长度</param>
        /// <returns>是否匹配</returns>
        public static bool IsNumberString(string sInput, int nMinLength, int nMaxLength)
        {
            return IsMatch(sInput, @"^([0-9]{" + nMinLength + "," + nMaxLength + "})$");
        }

        /// <summary>
        /// 是否为指定长度的字符串(包含数字、英文字符)
        /// </summary>
        /// <param name="sInput">检查参数</param>
        /// <param name="nMinLength">最小长度</param>
        /// <param name="nMaxLength">最大长度</param>
        /// <returns>是否匹配</returns>
        public static bool IsNumberStringOrEnglishCharactor(string sInput, int nMinLength, int nMaxLength)
        {
            return IsMatch(sInput, @"^([0-9a-zA-Z]{" + nMinLength + "," + nMaxLength + "})$");
        }

        /// <summary>
        /// 非空检查(不允许为空)
        /// </summary>
        public void RuleNotNullable()
        {
            foreach (var _item in _dictFieldValue)
            {
                if (ValueConvert.IsNull(_item.Value))
                    _listResult.Add(string.Format("必填字段 {0} 为空", _item.Key));
            }
        }

        /// <summary>
        /// 固定长度检查(为空或为固定长度的字符串,可为数字或英文字符)
        /// </summary>
        /// <param name="nLength">固定长度</param>
        public void RuleNullOrFixedLength(int nLength)
        {
            foreach (var _item in _dictFieldValue)
            {
                if (!ValueConvert.IsNull(_item.Value) && !IsNumberStringOrEnglishCharactor(Convert.ToString(_item.Value), nLength, nLength))
                    _listResult.Add(string.Format("字段 {0} 长度不为 {1} 位", _item.Key, nLength));
            }
        }

        /// <summary>
        /// 固定长度检查(为空或为固定长度的数字字符串)
        /// </summary>
        /// <param name="nLength"></param>
        public void RuleNullOrFixedLengthDigit(int nLength)
        {
            foreach (var _item in _dictFieldValue)
            {
                if (!ValueConvert.IsNull(_item.Value) && !IsNumberString(Convert.ToString(_item.Value), nLength, nLength))
                    _listResult.Add(string.Format("字段 {0} 长度不为 {1} 位", _item.Key, nLength));
            }
        }

        /// <summary>
        /// 清空检查结果
        /// </summary>
        public void ClearResult()
        {
            if (null != _listResult && 0 < _listResult.Count)
                _listResult.Clear();
        }

        /// <summary>
        /// 获取质检结果
        /// </summary>
        /// <param name="bAutoClear">是否自动清空</param>
        /// <returns>质检结果</returns>
        public List<string> GetResult(bool bAutoClear = true)
        {
            List<string> ls = new List<string>(_listResult);
            if (bAutoClear)
                _listResult.Clear();
            return ls;
        }
    }

    /// <summary>
    /// 宗地属性检查
    /// </summary>
    public class ParcelCheckFieldValue
    {
        /// <summary>
        /// 检查宗地特征码
        /// </summary>
        /// <param name="field">字段名</param>
        /// <param name="value">字段值</param>
        /// <returns>质检结果</returns>
        public static string CheckParcelFeatureCode(string field, object value, bool allowNull = false)
        {
            bool bNull = ValueConvert.IsNull(value);
            if (!allowNull && bNull)
                return string.Format("字段{0}不允许为空", field);
            else if (allowNull && bNull)
                return null;
            return CheckFieldValue.IsMatch(System.Convert.ToString(value), @"^((G[BDEFSXY])|(J[ABCDEFSXY])|(ZW))$") ? null : string.Format("字段 {0} 不符合规范", field);
        }


        /// <summary>
        /// 检查宗地的定着物特征码
        /// </summary>
        /// <param name="field">字段名</param>
        /// <param name="value">字段值</param>
        /// <returns>质检结果</returns>
        public static string CheckFixedThingFeatureCode(string field ,object value)
        {
            return (!ValueConvert.IsNull(value) && 0 == string.Compare(Convert.ToString(value), "W", true)) ? null : string.Format("字段 {0} 不符合规范", field);
        }
    }
}

其中,接口传入参数与质检结果相关返回参数设计如下:

using GeoJSON.Net.Feature;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GISWebService.HttpRequestContent
{
    /// <summary>
    /// 属性质检的传入参数
    /// </summary>
    public class CheckFieldsRequestBody
    {
        /// <summary>
        /// 图层
        /// </summary>
        [JsonProperty("layer")]
        public string Layer { get; set; }
        /// <summary>
        /// 要素集合
        /// </summary>
        [JsonProperty("feature")]
        public List<Feature> Feature { get; set; }
    }


    /// <summary>
    /// 要素属性质检结果
    /// </summary>
    public class CheckPropertyResult
    {
        /// <summary>
        /// OBJECTID
        /// </summary>
        [JsonProperty("objectid")]
        public int ObjectID { get; set; }
        /// <summary>
        /// 字段检查结果
        /// </summary>
        [JsonProperty("fields")]
        public List<string> FieldInfo { get; set; }
    }

    /// <summary>
    /// 属性质检结果
    /// </summary>
    public class CheckFieldsResponseBody
    {
        /// <summary>
        /// 图层
        /// </summary>
        [JsonProperty("layer")]
        public string Layer { get; set; }
        /// <summary>
        /// 质检结果
        /// </summary>
        [JsonProperty("info")]
        public List<CheckPropertyResult> Information { get; set; }
    }
}

调用时,以宗地质检为例:

                            {
                                foreach (var aFeature in item.Feature)
                                {
                                    object oOid = null;
                                    if (!aFeature.Properties.TryGetValue("OBJECTID", out oOid))
                                        throw new Exception(string.Format("图层 {0} 存在OBJECTID有误的要素", item.Layer));
                                    int nOid = System.Convert.ToInt32(oOid);
                                    CheckPropertyResult aCheckPropResult = new CheckPropertyResult() { ObjectID = nOid, FieldInfo = new List<string>() { } };
                                    {
                                        List<string> lsNotNullFields = new List<string>() { "QXDM", "ZDTZM", "ZL", "DZWTZM", "QLR", "MJDW" };
                                        Dictionary<string, object> dict = new Dictionary<string, object>() { };
                                        foreach (var field in lsNotNullFields)
                                        {
                                            object oValue = null;
                                            if (!aFeature.Properties.TryGetValue(field, out oValue))
                                                throw new Exception(string.Format("未能获取图层 {0} 的OBJECTID为 {1} 的要素的 {2} 字段值", item.Layer, nOid, field));
                                            dict.Add(field, oValue);
                                        }
                                        CheckFieldValue aCheck = new CheckFieldValue(dict);
                                        aCheck.RuleNotNullable();
                                        aCheckPropResult.FieldInfo.AddRange(aCheck.GetResult());
                                    }
                                    {
                                        for (int n = 0; n < 3; n++)
                                        {
                                            string sFieldName = null;

                                            if (0 == n)
                                                sFieldName = "YSDM";
                                            else if (1 == n)
                                                sFieldName = "ZDDM";
                                            else
                                                sFieldName = "BDCDYH";
                                            object oValue = null;
                                            if (!aFeature.Properties.TryGetValue(sFieldName, out oValue))
                                                throw new Exception(string.Format("未能获取图层 {0} 的OBJECTID为 {1} 的要素的 {2} 字段值", item.Layer, nOid, sFieldName));
                                            CheckFieldValue aCheck = new CheckFieldValue(sFieldName, oValue);
                                            if (0 == n)
                                                aCheck.RuleNullOrFixedLengthDigit(10);
                                            else if (1 == n)
                                                aCheck.RuleNullOrFixedLength(19);
                                            else
                                                aCheck.RuleNullOrFixedLength(28);
                                            aCheckPropResult.FieldInfo.AddRange(aCheck.GetResult());
                                        }
                                    }

                                    {
                                        for (int n = 0; n < 2; n++)
                                        {
                                            string sFeatureCode = (0 == n) ? "ZDTZM" : "DZWTZM";
                                            object oValue = null;
                                            if (!aFeature.Properties.TryGetValue(sFeatureCode, out oValue))
                                                throw new Exception(string.Format("未能获取图层 {0} 的OBJECTID为 {1} 的要素的 {2} 字段值", item.Layer, nOid, sFeatureCode));
                                            string sResult = 0 == n ? ParcelCheckFieldValue.CheckParcelFeatureCode(sFeatureCode, oValue) : ParcelCheckFieldValue.CheckFixedThingFeatureCode(sFeatureCode, oValue);
                                            if (!string.IsNullOrEmpty(sResult))
                                                aCheckPropResult.FieldInfo.Add(sResult);
                                        }
                                    }

                                    aResponseBody.Information.Add(aCheckPropResult);
                                }
                            }

若传入的参数为如下结构的List<CheckFieldsRequestBody>类型的param对象,内容为:

[
    {
        "layer": "ZRZ",
        "feature": [
            {
                "type": "Feature",
                "geometry": {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [
                                38527161.51,
                                2564408.7410000004
                            ],
                            [
                                38527162.14,
                                2564389.3790000007
                            ],
                            [
                                38527096.8336,
                                2564387.3809999991
                            ],
                            [
                                38527096.8223,
                                2564387.7569999993
                            ],
                            [
                                38527088.323,
                                2564394.569
                            ],
                            [
                                38527087.9087,
                                2564394.6539999992
                            ],
                            [
                                38527087.5629,
                                2564406.4140000008
                            ],
                            [
                                38527161.51,
                                2564408.7410000004
                            ]
                        ]
                    ]
                },
                "properties": {
                    "OBJECTID": 1343,
                    "BSM": null,
                    "YSDM": null,
                    "BDCDYH": "441322001001GB08213F0005000",
                    "ZDDM": "441322001001GB082134",
                    "ZRZH": "441322001001GB08213F005",
                    "XMMC": null,
                    "JZWMC": null,
                    "JGRQ": null,
                    "JZWGD": null,
                    "ZZDMJ": 1387.1000000000001,
                    "ZYDMJ": null,
                    "YCJZMJ": null,
                    "SCJZMJ": null,
                    "ZCS": 3,
                    "DSCS": 3,
                    "DXCS": null,
                    "GHYT": null,
                    "FWJG": null,
                    "ZTS": null,
                    "JZWJBYT": null,
                    "DAH": null,
                    "BZ": null,
                    "ZT": null,
                    "GID": "E5078ADBDD8A49A0958762CE5106C9AF",
                    "RKSJ": null,
                    "SJZT": null,
                    "ISLOCK": null,
                    "ZDZHTZM": "GAB",
                    "ZBH": null,
                    "IMPORTFLAG": null,
                    "BMFBUILDID": null,
                    "BMFBUILDCODE": null,
                    "RKRQ": null,
                    "RKR": null,
                    "RKRID": null,
                    "RKID": null,
                    "ZTHYY": null,
                    "RKFS": null,
                    "DZWTZM": null,
                    "ZL": "BL县LY镇水西村委会望牛墩(土名)地段远望数码城8栋",
                    "ZDT": "ZDImage/E5078ADBDD8A49A0958762CE5106C9AF.jpg",
                    "DXSD": null,
                    "QXDM": null,
                    "YBDCDYH": null,
                    "HQZTBS": null,
                    "DOCUNID": null,
                    "QJSHBZ": null
                }
            },
            {
                "type": "Feature",
                "geometry": {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [
                                38527157.83,
                                2564265.0409999993
                            ],
                            [
                                38527158.08,
                                2564257.2640000004
                            ],
                            [
                                38527118.2,
                                2564245.0390000008
                            ],
                            [
                                38527118.269999996,
                                2564242.3949999996
                            ],
                            [
                                38527090.652,
                                2564241.6089999992
                            ],
                            [
                                38527090.0357,
                                2564262.9230000004
                            ],
                            [
                                38527157.83,
                                2564265.0409999993
                            ]
                        ]
                    ]
                },
                "properties": {
                    "OBJECTID": 813,
                    "BSM": null,
                    "YSDM": null,
                    "BDCDYH": "441322001001GB08213F00150000",
                    "ZDDM": "441322001001GB08213",
                    "ZRZH": "441322001001GB08213F0015",
                    "XMMC": null,
                    "JZWMC": null,
                    "JGRQ": null,
                    "JZWGD": null,
                    "ZZDMJ": 1123.8,
                    "ZYDMJ": null,
                    "YCJZMJ": null,
                    "SCJZMJ": null,
                    "ZCS": null,
                    "DSCS": null,
                    "DXCS": null,
                    "GHYT": null,
                    "FWJG": null,
                    "ZTS": null,
                    "JZWJBYT": null,
                    "DAH": null,
                    "BZ": null,
                    "ZT": null,
                    "GID": "07B5F49C731B4F9CACDF77DAEEE502BB",
                    "RKSJ": null,
                    "SJZT": null,
                    "ISLOCK": null,
                    "ZDZHTZM": "GB",
                    "ZBH": null,
                    "IMPORTFLAG": null,
                    "BMFBUILDID": null,
                    "BMFBUILDCODE": null,
                    "RKRQ": null,
                    "RKR": null,
                    "RKRID": null,
                    "RKID": null,
                    "ZTHYY": null,
                    "RKFS": null,
                    "DZWTZM": null,
                    "ZL": "BL县LY镇水西村委会望牛墩(土名)地段远望数码城15栋",
                    "ZDT": "ZDImage/07B5F49C731B4F9CACDF77DAEEE502BB.jpg",
                    "DXSD": null,
                    "QXDM": null,
                    "YBDCDYH": null,
                    "HQZTBS": null,
                    "DOCUNID": null,
                    "QJSHBZ": null
                }
            }
        ]
    },
    {
        "layer": "ZD_SHYQ",
        "feature": [
            {
                "type": "Feature",
                "geometry": {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [
                                38526926.715,
                                2564197.0757999998
                            ],
                            [
                                38526920.7464,
                                2564198.8359999992
                            ],
                            [
                                38526919.6978,
                                2564204.0397999994
                            ],
                            [
                                38526910.2842,
                                2564503.0131
                            ],
                            [
                                38526998.747,
                                2564504.4110000003
                            ],
                            [
                                38526998.7721,
                                2564521.7214
                            ],
                            [
                                38527175.1219,
                                2564521.6728000008
                            ],
                            [
                                38527175.582,
                                2564507.2051999997
                            ],
                            [
                                38527175.8705,
                                2564495.5077
                            ],
                            [
                                38527180.167899996,
                                2564363.0360000003
                            ],
                            [
                                38527183.1127,
                                2564270.4807999991
                            ],
                            [
                                38527178.6205,
                                2564255.3690000009
                            ],
                            [
                                38527165.8622,
                                2564245.9126999993
                            ],
                            [
                                38526952.1922,
                                2564176.4903999995
                            ],
                            [
                                38526941.2566,
                                2564175.5524000004
                            ],
                            [
                                38526934.5509,
                                2564178.1996999998
                            ],
                            [
                                38526930.5365,
                                2564179.7846000008
                            ],
                            [
                                38526925.1559,
                                2564185.8017999996
                            ],
                            [
                                38526922.8309,
                                2564188.4188
                            ],
                            [
                                38526920.355399996,
                                2564197.5955
                            ],
                            [
                                38526926.715,
                                2564197.0757999998
                            ]
                        ]
                    ]
                },
                "properties": {
                    "OBJECTID": 780,
                    "BSM": 2564,
                    "YSDM": "60201030110",
                    "ZDDM": null,
                    "BDCDYH": "441322001001444GB08213W00000000",
                    "ZDTZM": "ZpW",
                    "ZL": "BL县LY镇水西村望牛墩地段-远望数码城",
                    "ZDMJ": 81035,
                    "MJDW": "1",
                    "YT": "054",
                    "DJ": null,
                    "JG": null,
                    "QLLX": "3",
                    "QLXZ": "102",
                    "QLSDFS": "2",
                    "RJL": null,
                    "JZMD": null,
                    "JZXG": null,
                    "ZDSZD": "空地",
                    "ZDSZN": "空地",
                    "ZDSZX": "空地",
                    "ZDSZB": "空地",
                    "ZDT": "ZDImage/2CE6B4BA40584E7DAC9E2C14A84F2924.jpg",
                    "TFH": null,
                    "DJH": null,
                    "DAH": null,
                    "ZT": null,
                    "ZLDWDM": null,
                    "ZLDWMC": null,
                    "GID": "2CE6B4BA40584E7DAC9E2C14A84F2924",
                    "RKSJ": null,
                    "SJZT": 0,
                    "ISLOCK": null,
                    "RKFS": "0",
                    "DZWTZM": "A",
                    "JZDH": null,
                    "TDSYQSSJ": "2013-12-12T00:00:00",
                    "TDSYJSSJ": "2053-12-12T00:00:00",
                    "BZ": "本宗地土地证为:B府国用(2014)第010031号,B府国用(2013)第010198号,土地用途为商业用地,使用期限至2053年12月12日止,土地用途为商服用地,使用期限至2051年11月8日止",
                    "QLR": null,
                    "ZYYT": "054",
                    "QXDM": "441322",
                    "YBDCDYH": null,
                    "ZDH": null,
                    "HQZTBS": null,
                    "DOCUNID": null,
                    "QJSHBZ": null
                }
            }
        ]
    }
]

则质检返回结果为:

{
    "status": 0,
    "result": [
        {
            "layer": "ZRZ",
            "info": [
                {
                    "objectid": 1343,
                    "fields": [
                        "字段 ZDDM 长度不为 19 位",
                        "字段 BDCDYH 长度不为 28 位",
                        "字段 ZRZH 长度不为 24 位",
                        "字段 ZDZHTZM 不符合规范"
                    ]
                },
                {
                    "objectid": 813,
                    "fields": []
                }
            ]
        },
        {
            "layer": "ZD_SHYQ",
            "info": [
                {
                    "objectid": 780,
                    "fields": [
                        "必填字段 QLR 为空",
                        "字段 YSDM 长度不为 10 位",
                        "字段 BDCDYH 长度不为 28 位",
                        "字段 ZDTZM 不符合规范",
                        "字段 DZWTZM 不符合规范"
                    ]
                }
            ]
        }
    ]
}






【ArcGIS超级工具】基于ArcPy的矢量数据批量自动化入库工具 最近,有很多做规划的朋友私信我,想让我帮忙开发一款ArcGIS自动化脚本工具,实现点、线、面的自动化入库操作,帮他们在平时的内业数据处理工作中减少机械式重复性的工作,提高工作效率。 阅读详情

相关推荐

给GIS新手的保姆级教程:用ArcMap拓扑工具条,5步搞定地籍数据(界址点线面)的自动查错与修复

本文为GIS新手提供ArcMap拓扑工具条的保姆级教程,详细讲解如何5步完成地籍数据(界址点线面)的自动查错与修复。通过拓扑检查、错误定位和批量修复技巧,帮助用户高效处理宗地、地块等空间数据,特别适合国土调查和不动产登记场景。

weixin_30482181的博客 624

CC工具箱使用指南:【整库计算YSDM】

由于目前审核机制的原因,无法附上下载地址,可以扫下面的导游号加入群聊,在群公告中有下载链接。,如果包含有【YSDM】字段,则会按规则进行计算,如果没有【YSDM】字段,则直接跳过。一般的数据库要素或表格都有一个【YSDM】字段,用来标识要素类或表格。PS:工具同时支持要素名称和要素别名,可以根据需要修改Excel。右侧有一个按键可以下载Excel模板,最好按模板修改,避免错误。工具就这一个参数,就是上面整理好的Excel表格文件。有了上面的准备数据,就可以开始使用工具了。工具会遍历GDB数据库中的。

规划GIS会 1169

EPS在倾斜摄影“房地一体”项目中的应用及操作简介

前段时间,自然资源部印发《关于加快宅基地和集体建设用地使用权确权登记工作的通知》,相关方面的工作正如火如荼地进行着。 很早之前就有用户想看EPS软件相关的文章,今天我们就为大家介绍一款EPS农房不动产权籍调查测图软件——山维科技EPS地理信息工作站,希望在紧张的赶工阶段,能为用户们提供一些帮助或参考。 一、软件介绍 山维科技EPS地理信息工作站是一款功能强大的专业地理信息绘图工具。软件以通过倾斜摄影技术获取的实景三维模型为基础,生产出符合二三维房产一体化数据要求的房产地籍图,可助力农房不动产权调登记项目。

Rainpoo_的博客 9486

QGIS符号化进阶:用规则表达式实现多条件动态分类(附ZDTZM字段案例)

本文深入探讨了QGIS中基于规则的符号化高级应用,通过构建多条件规则表达式实现数据的动态智能分类。文章以环保监测数据为例,详细讲解了如何结合污染等级、土地类型等字段,利用逻辑运算符和表达式函数创建复杂的可视化规则,从而超越传统的单一字段分类,让地图精准呈现多维数据背后的故事。

q9r0s的博客 398

南方iData数据工厂:空间数据一体化生产与规则质检实践

空间数据生产与GIS数据建库的核心,在于将多源异构数据统一到一套数据模型、编码体系和质检规则中。其原理是通过模板定义要素类、属性结构与拓扑约束,让坐标系统、图层映射、属性字典在录入阶段即完成一致性校验,并以规则质检引擎和自动构面能力降低人工核对成本。技术价值在于减少格式转换、属性丢失与接边返工,提升基础测绘、地籍调查、不动产测绘、管线普查及自然资源调查监测的成果质量与汇交流转效率。围绕南方iData数据工厂的空间数据一体化生产实践,可进一步理解模板配置、拓扑构面、属性映射、脚本扩展与质检关口设置如何协同落地

weixin_33769125的博客 393

CASS11.0功能与生俱来:SouthMap2.0南方地理信息数据成图软件(超越经典,绘算俱佳)

南方地理信息数据成图软件SouthMap是通过南方测绘20余年软件研发经验,基于AutoCAD和国产CAD平台,集数据采集、编辑、成图、质检等功能于一体的成图软件。

地信网(地理信息网|测绘小站) 8235

地籍数据属性质检功能设计与实现(改进)

【需求】某单位不动产登记系统,在对不动产数据(包括:使用权宗地、所有权宗地、自然幢)进行入库前,要进行属性检查,判断某些属性字段是否满足规则要求。主要规则可抽象为以下几类:1.不允许为空值2.必须来自某一特定字典,可为一个或多个值,多个值时以指定的分隔符隔开3.位数固定,且全部为数字,或为数字与字母混合4.为固定的某个值5.一些位上的值会与其他位上的值有关系【设计】在进行该项功能设计时,为保证可扩...

a_dev的专栏 619

AutoLISP 地籍数据检查工具:界址线与房屋拓扑关系自动化校验方案

在不动产测绘与地籍管理工作中,数据的准确性和拓扑关系的正确性直接影响到后续确权、登记等一系列工作。本文将介绍一套基于 AutoLISP 开发的地籍数据自动化检查工具,该工具能够高效完成界址线与地物点匹配性检查、房屋交叉与裂缝检测等关键任务,极大提升地籍数据质量控制的效率。

Hzy1253145524的博客 989

iData数据工厂:空间数据一体化生产与质检入库实践

空间数据生产是测绘地理信息内业的核心环节,涉及几何图形、属性信息、拓扑关系与成果输出的统一组织。其原理在于用数据字典和模板约束要素类型、字段取值与符号规则,把属性录入、拓扑检查、编辑加工和成果入库放在同一数据模型中完成,从而减少格式转换与人工比对带来的误差。技术价值是提升数据一致性与可复用性,让质检前移、生产流程标准化。在不动产测绘、地籍调查、管线普查、实景三维加工等场景中,这种一体化模式能显著降低返工。iData数据工厂正是围绕“一个平台、一套数据、一体化生产”构建的基础空间数据生产平台,通过模板配置、属

weixin_33796177的博客 445

宗地四至批量填写自动化流程与踩坑实战,地籍调查效率翻倍

在GIS数据处理与地籍数据库建设中,宗地四至作为不动产登记与地籍调查的关键属性,直接关系到权属描述的规范性与成果质量。传统逐宗手工填写方式不仅效率低,且容易因数据分散、规则不一致而产生重复、遗漏甚至错误。借助界址线左右宗地关系、空间邻接分析与方向归类规则,可批量生成符合要求的四至描述,大幅提升地籍调查内业工作效率。数据清洗、共边合并、名称映射与对称校验等步骤,是保障自动生成结果可靠性的核心关节。本文从数据底盘、邻接判断到自动化流程与实战避坑,系统梳理了批量生成四至的完整工程路径,适合从事不动产数据整合与地籍

weixin_34098209的博客 220

宗地四至批量生成:基于地籍图空间分析的自动化处理方案

在不动产登记与土地确权工作中,宗地四至描述是权属调查成果的关键组成部分,其准确性与规范性直接影响登记质量和法律效力。传统人工填写方式依赖内业人员逐宗判读地籍图,工作量大且方向判断容易出错。借助地理信息系统中的空间分析技术,可以将相邻关系计算转化为自动化流程:通过要素转线提取边界、判断边界与宗地内部点的相对方位,再按规则聚合邻接对象名称,即可批量生成规范的四至文本和界线文件。该方案适用于地籍调查、集体土地确权、权籍建库等场景,能够显著提升内业效率,降低人为误差,同时为登记系统提供可追溯的数据成果。本文从地籍数

weixin_29040367的博客 248

广东南方地形地籍成图软件CASS10.1十大新亮点(资源下载在文尾)

地物绘制栏全新打造 结合传统地物绘制优势,提供文字说明显示和缩路图显示两种模式,便捷的模糊搜素功能,提供全新的地物绘制体验。 优化地籍数据处理流程成果高度可定制化 在快速成图编辑、属性录入继承、成果输出等环节,采用全新技术,整合提升用户体验。批量输出地籍成果达到“秒级”输出;地籍成果“开源”,用户可灵活定义宗地图、地籍调查表、界址点成果表等成果样式...

地信网(地理信息网|测绘小站) 9084

ArcGIS批量检查锐角:ArcPy脚本实现地类图斑质检

空间数据质量是地理信息系统建设的基石,而几何图形中的尖锐角是影响数据可靠性的高频隐患。在地类图斑、宗地等基础测绘成果中,微小夹角不仅破坏图形美观,更会导致拓扑分析异常、缓冲计算自相交和存储开销增加。通过向量点积与反余弦函数,可以精确计算每个顶点的内角度数,从而在ArcGIS环境中借助ArcPy实现全库范围的批量锐角检查。该方法能够高效遍历海量要素,输出问题点坐标与角度值,直接定位至具体图斑,为数据质检提供量化依据。同时,针对投影坐标系变形、重复节点干扰、多环要素漏检等工程常见陷阱,也需制定相应的预处理与容错

weixin_32288959的博客 223

智绘地籍“一张图”:开启土地管理的数字化新纪元‌

从“以图管地”到“以智治地”,地籍“一张图”既是自然资源管理的革命,也是数字中国建设的缩影。它用数据连接土地与城市,用技术赋能政府与民生,更用智慧描绘出高质量发展的未来图景。在这张不断延展的“数字地图”上,每一寸土地的价值都将被精准定义,每一份产权的故事都将被清晰记录——而这,正是数字时代赋予土地管理的新使命。

GIS数据转换器的博客 522

地籍管理系统源代码

地籍管理系统源代码.地籍管理系统源代码.地籍管理系统源代码.

正交试验minitab

1.创建正交试验 2.根据自己的实验选择水平数和因子数,并选定一个正交表 3.得到正交表 4.填写实验结果 5.进行正交分析 点击结果,点击分析 6.得到分析结果 7.方差分析 选择响应变量与因子,点击确定 得到方差分析的结果 ...

a999999123的博客 1万+

【免费下载】 南方地理信息数据成图软件SouthMap(CASS11.0):开启地理信息新时代

南方地理信息数据成图软件SouthMap(CASS11.0):开启地理信息新时代 【下载地址】南方地理信息数据成图软件SouthMapCASS11.0介绍 南方地理信息数据成图软件SouthMap(CASS11.0)是一款基于AutoCAD和国产CAD平台的软件,集数据采集、编辑、成图、质检等功能于一体。该软件不仅支持多...

gitblog_06556的博客 3065

超频玩家必看:TestMem5配置文件详解与内存稳定性测试实战(含黄金参数包)

本文详细解析了TestMem5(TM5)在内存超频稳定性测试中的核心价值与实战应用,特别针对DRAM颗粒特性提供黄金参数配置。通过anta777等专业配置的深度剖析,指导超频玩家精准定位内存故障,优化时序参数,实现性能与稳定性的完美平衡。涵盖从初级验证到极限压测的全流程方案,是硬件发烧友提升系统稳定性的必备指南。

weixin_29198045的博客 1827

【亲测免费】 SouthMap2.0:南方地理信息数据成图软件的革新之作

SouthMap2.0:南方地理信息数据成图软件的革新之作 【下载地址】SouthMap2.0南方地理信息数据成图软件介绍 SouthMap2.0 是一款集数据采集、编辑、成图、质检于一体的南方地理信息数据成图软件。该软件基于南方测绘20余年的软件研发经验,支持多种数据格式,无缝对接各类测绘设备,适用于地形成图、地籍测量...

gitblog_06557的博客 1343

5分钟搞定!用ZLMediaKit搭建GB28181视频监控系统(含避坑指南)

本文提供了一份基于ZLMediaKit搭建GB28181视频监控系统的实战指南。文章详细介绍了从环境准备、核心组件(ZLMediaKit与SIP服务器)部署、摄像头配置到内外网穿透的完整流程,并重点分享了设备ID配置、防火墙设置等关键避坑经验,帮助开发者快速构建稳定可控的监控平台。

apple5的专栏 1088

遇到问题--OpenClaw--API rate limit reached. Please try again later429 您的账户已达到速率限制,请您控制请求频率

OpenClaw调用glm-4.7-flash模型时触发智谱AI平台429速率限制错误。分析发现当前重试策略采用固定间隔(7-11秒)导致连续失败,且未记录关键响应头信息。解决方案分三步:1)开启响应头日志获取配额详情;2)将重试策略改为带抖动的指数退避(初始1秒,最大60秒);3)在网关层实现令牌桶限流主动控制请求频率。需特别注意令牌配额(TPM)可能比请求次数(RPM)更早触达限制。

直到世界的尽头 2629

【亲测免费】 SouthMap2.0 南方地理信息数据成图软件介绍

SouthMap2.0 南方地理信息数据成图软件介绍 【下载地址】SouthMap2.0南方地理信息数据成图软件介绍 SouthMap2.0 是一款集数据采集、编辑、成图、质检于一体的南方地理信息数据成图软件。该软件基于南方测绘20余年的软件研发经验,支持多种数据格式,无缝对接各类测绘设备,适用于地形成图、地籍测量、工程...

gitblog_06505的博客 1313

10|Git Diff 与增量代码识别:本次到底改了哪些代码?

本文介绍 Git Diff 和增量代码识别,帮助你理解精准测试如何先找到本次真正变化的代码。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 162
上一篇: C#将List<string>和string按逗号拼接
下一篇: ArcMap Add-in开发入门实例
acngiser
博客等级 码龄15年 118粉丝 214原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值