ArcGIS Pro二次开发地图MapSeries序列设置
/* | |
Copyright 2019 Esri | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
*/ | |
using ArcGIS.Core.Data; | |
using ArcGIS.Desktop.Framework.Dialogs; | |
using System; | |
using System.Collections.Generic; | |
using System.Collections.ObjectModel; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace LayoutMapSeries.LayoutSettings | |
{ | |
public class MapSeriesDefinition | |
{ | |
public string FeatureClassName { get; set; } | |
public IList<MapSeriesItem> MapSeriesItems = new List<MapSeriesItem>(); | |
public void LoadFromFeatureClass(string layoutName, FeatureClass featureClass, string fieldList) | |
{ | |
MapSeriesItems.Clear(); | |
var oidName = featureClass.GetDefinition().GetObjectIDField(); | |
QueryFilter getQf = new QueryFilter | |
{ | |
SubFields = $@"{oidName},{fieldList}" | |
}; | |
var fields = fieldList.Split(new char []{ ',' }); | |
if (fields.Length < 2) | |
{ | |
throw new Exception($@"List of fields {fieldList} needs to contain at least ID and Name"); | |
} | |
// For Selecting all matching entries. | |
using (var rowCursor = featureClass.Search(getQf)) | |
{ | |
var oidIdx = rowCursor.FindField(oidName); | |
var idIdx = rowCursor.FindField(fields[0]); | |
var nameIdx = rowCursor.FindField(fields[1]); | |
while (rowCursor.MoveNext()) | |
{ | |
using (var row = rowCursor.Current) | |
{ | |
var oid = Convert.ToInt64(row[oidIdx]); | |
var id = Convert.ToInt32(row[idIdx]); | |
var name = row[nameIdx].ToString(); | |
if (string.IsNullOrEmpty(layoutName)) MessageBox.Show("test"); | |
MapSeriesItems.Add(new MapSeriesItem { Oid = oid, Id = id, Name = name, LayoutName = layoutName }); | |
} | |
} | |
} | |
} | |
} | |
public class MapSeriesItem | |
{ | |
public long Oid { get; set; } | |
public int Id { get; set; } | |
public string Name { get; set; } | |
public string LayoutName { get; set; } | |
} | |
} |
分类:
C#
, ArcGIS Pro二次开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2012-03-16 一些名言