乐于分享
好东西不私藏

碎碎念:聊聊GIS插件开发这件事

碎碎念:聊聊GIS插件开发这件事

最近后台收到很多粉丝留言,问的都是同一个问题:"老杨,ArcGIS插件怎么做?"

说实在的,网上这类教程一搜一大把,我一开始没打算写。无奈问的人实在太多了,想想干脆就聊聊这个话题,算是给各位一个交代。

先说说工具

想用AI来辅助写代码,你得先了解现在AI发展成什么样了。

从最开始的LLM(大语言模型),到现在的多模态模型,AI的进步确实很大。它不仅能帮你写代码,还能帮你分析问题、解释报错、甚至直接给你解决方案。

我用的是 Claude Code,通过 CC Switch 接入国内的智谱清言大模型。说实话,论智能程度确实不如GPT-4,但胜在便宜、能用、响应快,对于我们这种个人开发者来说,足够了。

关于怎么安装配置这部分,网上教程一搜一大把,这里就不赘述了,各位自行搜索就行。

真正难的不是写代码

做第一个插件的时候,我整整花了一周时间。

从环境配置开始,到点击按钮能正常弹出窗口,再到实现"按属性选择"这个功能——每一步都是坎。

你得去了解底层逻辑。

我一直以为,写插件就是直接调用ArcGIS现成的功能。实际做下来才发现:你以为的和实际做到的,完全是两码事。

因为是非科班出身,很多基础概念别人可能几分钟就理解,我得花半天查资料、看文档、问AI。没办法,欠下的基础债,迟早要还。

这里必须吐槽一下:Claude Code 它不能自己联网搜索啊!(虽然能使用MCP工具,勉强能用,但是还有很多限制

很多问题它也会骗你,你得自己去找官方文档、逛论坛、看博客。有时候一个bug卡半天,真的挺崩溃的。

那些踩过的坑

做插件这几个月里,踩过的坑太多了,简单挑几个说说:

1. 属性遍历,花了一周

就一个简单的"遍历要素属性并输出"功能,我搞了整整一周。

  • 环境配置问题
  • 按钮事件绑定失败
  • COM对象生命周期管理
  • 中文字符编码问题
  • 等等...

每一个坑都是眼泪。

2. 地块分割助手的"沿画线分割"

这个功能折磨了我最久。

  • 各种Cut方式都试过了,不行
  • 分析节点逻辑,不行
  • 分割后面积对不上,不行
  • 查各种几何算法,不行

印象最深的就是方向计算,按0度、90度来判断方向,跟实际需求完全对不上。后来查了很多资料,才搞明白GIS里的方位角和数学里的角度不完全一样。

那段时间真的学到很多东西。

AI不是万能的

必须说一句:AI它也有解决不了问题的时候。

有时候它会"骗"你。

它会给出一个看起来很对的代码,你跑一遍,嘿,没报错。结果一测试,功能完全不对。

后来我才明白,问题出在我描述问题的时候不够清晰。你给AI的输入越模糊,它的输出偏差越大。

它能替你写代码,但是不会替你想办法。所以该查资料还得查,该看文档还得看。AI是很好的助手,但你不能完全依赖它。

还想说一句

如果你也想尝试自己写插件,我的建议是:

从小处着手。

比如先做个Excel插件、或者一个小工具exe。这类的测试成本低,AI能帮你从计划开发到测试验证一次性跑通。

但ArcGIS插件不一样——

  • 每次修改完需要重新编译、部署
  • 测试需要你手动操作、等待
  • 经常要守在电脑前,等它跑完、报错了、再改

这个过程很枯燥,但也是最能学到东西的过程。

最后想说:有想法就去做,遇到问题就解决,解决不了就查资料。

虽然过程曲折,但当你看到自己写的工具真正能帮到自己的时候,那种成就感,值得。

今天的碎碎念完毕,各位有问题后台继续聊。

如果觉得内容对你有帮助,记得点个 【】和 【在看】支持老杨哦~

💡也欢迎在评论区留言交流你的想法或遇到的GIS问题,老杨会尽力为大家解答!

📌关注GIS老杨,让我们走一条快捷的数据处理之路。