GIS二次开发之全图
全图是个不需要和地图进行交互的命令类功能,在实现自定义功能的时候只要重写OnClick事件即可,在自带的类中,也只有ControlsMapFullExtentCommand这个Command类。哈哈,这个功能几句话就解决了,看看代码吧。

public MapFullExtent()
{
string[] res = GetType().Assembly.GetManifestResourceNames();
base.m_bitmap = new System.Drawing.Bitmap(GetType().Assembly.GetManifestResourceStream("Commands.fullExtent.bmp"));
base.m_caption = "全图";
base.m_category = "ToolBar";
base.m_message = "全图";
base.m_name = "ToolBar_MapPan";
base.m_toolTip = "全图";
}
public override void OnCreate(object hook)
{
try
{
m_HookHelper.Hook = hook;
m_pActiveView = m_HookHelper.ActiveView as IActiveView;
}
catch { m_pActiveView = null; }
}
public override void OnClick()
{
if (null == m_pActiveView) return;
m_pActiveView.Extent = m_pActiveView.FullExtent;
m_pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
}
{
string[] res = GetType().Assembly.GetManifestResourceNames();
base.m_bitmap = new System.Drawing.Bitmap(GetType().Assembly.GetManifestResourceStream("Commands.fullExtent.bmp"));
base.m_caption = "全图";
base.m_category = "ToolBar";
base.m_message = "全图";
base.m_name = "ToolBar_MapPan";
base.m_toolTip = "全图";
}
public override void OnCreate(object hook)
{
try
{
m_HookHelper.Hook = hook;
m_pActiveView = m_HookHelper.ActiveView as IActiveView;
}
catch { m_pActiveView = null; }
}
public override void OnClick()
{
if (null == m_pActiveView) return;
m_pActiveView.Extent = m_pActiveView.FullExtent;
m_pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
}
相当的简单啊,哈哈。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】AI 的力量,开发者的翅膀:欢迎使用 AI 原生开发工具 TRAE
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
· 《C#高级GDI+实战:从零开发一个流程图》增加贝塞尔曲线
· AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
· InnoDB为什么不用跳表,Redis为什么不用B+树?
· 记一次 C# 平台调用中因非托管 union 类型导致的内存访问越界
· [EF Core]聊聊“复合”属性
· 博客园众包:再次诚征3D影像景深延拓实时处理方案(预算8-15万,需求有调整)
· 扣子(Coze),开源了!Dify 天塌了
· 精选 5 款 .NET 开源、功能强大的工作流系统,告别重复造轮子!
· 爆肝2月,我的 AI 代码生成平台上线了!
· 从经典产品看大模型方向