最近后台收到很多粉丝留言,问的都是同一个问题:"老杨,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老杨,让我们走一条快捷的数据处理之路。
夜雨聆风