为了 Vibe Coding 地图更方便,我给 WeaveFox 造了一个轮子

简介: 开发者基于WeaveFox Vibe Coding打造合规高德地图React组件库amapcn,支持shadcn分发、NPM包及AI Skill集成,内置15+地图能力组件。同步开源并上架WeaveFox技能市场,3天快速构建全栈地图应用,免费部署上线。

最近在使用 WeaveFox Vibe Coding 一些应用和工具,效果还不错,能生成数据库,登录系统,还能有 LLM,OSS 免费使用。可以到我的主页看我的作品 https://www.weavefox.cn/@hustcc。

最近准备 Outing 想做一个路线地图,发现 AI 总是会生成 SVG 的示意地图糊弄我。

map1.png

调研之后发现大概率是应为国内地图只能高德、百度,但是他们又是需要 Key 的,所以 AI 生成大概率都是无法渲染出来,AI 只好退化之后用 SVG 兜底。

最近WeaveFox 有加入了自定义 Skill 的能力,所以想是否可以自己封装一个地图组件 + Skill,让 AI 能准确识别和生成地图应用。

skill.png

说干就干,初步打算就是开源项目的方式,然后上传 Skill 到 WeaveFox 还可以分享给其他人。

造一个高德地图组件 + Skill = amapcn

最近社区有一个比较火的地图项目:mapcn,不过因为是基于 MapLibre GL 封装,第一个大问题就是国内地图合规上就是不过关的,所以一定会需要使用高德地图、腾讯地图之类的。这个前提下,做了基本的技术设计和约束:

  1. 基于高德地图,感觉高德地图相对活跃,AI 时代下也有一些跟进。
  2. 封装支持 shadcn 方式的分发形式,且支持单独的 React 组件包使用。
  3. 需要提供 Skill,给 AI 作为项目参考。
  4. 基于 tailwind CSS 的形式,和他能进行无缝结合。
  5. 参考 mapcn 的组织方式,fork 他的官网样式,并加入致谢链接。

所以最终就是:满足国内地图合规的,支持 NPM 包、shadcn 分发、AI Skill 三种使用方式的,高德地图的 React 轻量级组件封装

有 AI 加持,造轮子已经很简单了,过程就不赘述了,大家可以去看代码, 有需求的可以用起来,觉得好用给个 Star!贴几张图先看看组件效果。

map2.png

map3.png

支持了:Map、MapMarker、MarkerContent、MarkerPopup、MarkerTooltip、MarkerLabel、MapPopup、MapControls、MapRoute、MapClusterLayer、MapPolygon、MapCircle、MapHeatmap、MapTrafficLayer、MapSatelliteLayer 这些组件和能力,基本满足了绝大多数的地图场景,当然也欢迎提交意见。 开源地址:https://github.com/hustcc/amapcn

增加地图 Skill

在 WeaveFox 平台上去新建 Skill,然后将开源的 amapcn 的技能 Skill 内容复制进行,等待信息安全审核通过之后,就可以使用了,一般几分钟就通过了(前提是内容合规合法,不然会被拒绝)。

skill-map.png

通过之后,就会在首页中显示出来。地址在这里:https://www.weavefox.cn/extensions/skills/yfLARjZhH,全网所有人都可以使用。

试着做一个地图应用

基于已经上传的 Skill + WeaveFox 内置的地图服务,就可以尝试做一个应用了,简单示意一下 航线迹 | WeaveFox

map4.png

如果需要更复杂,还可以结合使用以下服务:

  • Appwrite 服务:数据存储,用户鉴权
  • 地图服务:获取地点的经纬度
  • amapcn 组件:内置高德 KEY,绘制地图

最后

WeaveFox 是一个国内的创意应用生成工具,并且包含有很多的全栈应用需要的服务,也可以一键发布上线,全网可以访问,甚至还可以自定义域名,并且这些都是免费的。

我这个应用应该算是比较复杂的全栈应用,并且还造了一个开源轮子,整体大概 3 天吧,不过大部分时间都在 amapcn 上,毕竟是需要开源的代码,做的比较细致一些。

欢迎帮忙分享:https://github.com/hustcc/amapcn

目录
相关文章
|
2月前
|
Web App开发 iOS开发
苹果自带浏览器展示不了钉钉二维码
使用window.DTFrameLogin函数,在safari不展示二维码
284 122
|
2月前
|
人工智能 自然语言处理 API
【Azure AI Search】Index的字段使用默认Analyzer(standard.lucene) 和 en.microsoft 有什么不同?
Azure AI Search英文检索因词形差异(如brief/briefs)无法匹配,根源在于analyzer选择:默认standard.lucene不处理词形还原,而en.microsoft支持lemmatization,可将变体还原为基本形式。需通过新增字段并配置en.microsoft analyzer解决,兼顾检索质量与业务需求。
310 124
|
2月前
|
人工智能 自然语言处理 API
【Azure AI Search】 stopword 是什么,为什么它会影响搜索结果?
本文解析 Azure AI Search 中搜索 "in brief" 返回结果过多的问题,指出根源在于 analyzer 对停用词(如 "in")的处理差异:默认 `standard.lucene` 保留停用词导致泛匹配,而 `en.microsoft` 会过滤停用词,使结果更精准。关键在于根据业务语义选择合适 analyzer。
245 121
|
2月前
|
存储 弹性计算 负载均衡
阿里云巨型帧是什么?云服务器ECS支持规格、开启关闭及配置步骤问题解答FAQ
阿里云巨型帧(Jumbo Frames)支持8500字节超大以太网帧,突破传统1500字节限制,可显著减少数据包数量、降低CPU负载、提升网络吞吐与大块数据传输效率,适用于HPC、大数据、SAN等高带宽场景。详细参考云服务器ECS官网解读:https://t.aliyun.com/U/AZBUsA
421 123
|
3月前
|
JSON JavaScript 前端开发
在TypeScript和JavaScript如何使用MetaMessage?
MetaMessage 是一种跨语言数据交换协议,支持 TypeScript/JavaScript(通过装饰器自动类型转换)、JSONC 文本与紧凑二进制 wire 格式,兼顾可读性、精度(如 bigint 表示 int64)与性能,旨在替代 JSON、Protobuf 等传统序列化方案。
264 125
|
前端开发 Java 关系型数据库
IDEA+Java+SSM+Mysql+Layui实现Web学生成绩管理系统【建议收藏】(上)
IDEA+Java+SSM+Mysql+Layui实现Web学生成绩管理系统【建议收藏】
1185 121
IDEA+Java+SSM+Mysql+Layui实现Web学生成绩管理系统【建议收藏】(上)
|
缓存 Linux 调度
24小时学通Linux内核之电源开和关时都发生了什么
  说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自己制定的任务,不过总有几个读者给自己鼓励,很欣慰的事情,不多感慨了,加紧时间多多去探索吧,今天要去描述的是电源开和关时都发生了什么,一起去看看吧~~   bootloader引导装入程序将内核映像加载到内存并处理控制权传送到内核后在内核引导时每个子系统都必须要初始化,我们根据实际执行的线性顺序跟踪内核的初始化过程,下图说明了从系统加电到断电这一过程中所有事情发生的顺序,这个图不多加解释了,看图就知道其线性执行顺序,中间过程也是很简单的步骤啦。
|
移动开发
[LeetCode] Find the Duplicate Number
There are mainly two solutions to solve this problem. The first one is very clever, using the idea of cycle detection, and runs in O(n) time.
1171 120
|
Scala
Scala入门到精通——第三节 Array、List
本节主要内容 数组操作实战 列表List操作实战 数组操作实战 1 定长数组 //定义一个长度为10的数值数组 scala> val numberArray=new Array[Int](10) numberArray: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) //定义一个长度为10的String类
6459 119