编写、调试与调优 Playwright 测试,涵盖定位器策略、追踪诊断与 CI 友好的超时配置。
编程
Leaflet Maps
试用Build, debug, and integrate Leaflet web maps, including map setup, tile layers, markers, popups, GeoJSON overlays, bounds fitting, event handling, and plugin...
它能做什么
Use this skill for practical 2D web map work with Leaflet.
技能文档
Leaflet
Use this skill for practical 2D web map work with Leaflet.
Leaflet is best for lightweight interactive maps that need simple setup, raster or XYZ tile layers, GeoJSON overlays, and straightforward custom controls. It is usually the right choice when the user wants a dependable browser map without the heavier rendering model of WebGL-first stacks.
Workflow
- Confirm the runtime first:
- plain HTML
- Vite
- React
- Next.js or another SPA framework
- Confirm the actual map job:
- base map only
- markers and popups
- GeoJSON overlay
- choropleth or feature styling
- draw/edit interaction
- bug fixing or migration
- Start from the smallest visible map before adding controls, overlays, clustering, or plugins.
- Check container size and CSS before debugging data or tile logic.
- Keep data CRS assumptions explicit; Leaflet usually expects WGS84 longitude/latitude input for GeoJSON-style work.
Implementation Guardrails
- Ensure the map container has a real height before initializing the map.
- Use
L.map(...)once per container and clean it up in SPA teardown paths. - Fit bounds from real data instead of hardcoding zoom/center when the dataset is dynamic.
- Prefer
L.geoJSON(...)for lightweight vector overlays and feature-level styling. - Keep tile URLs configurable and attribute them correctly.
- Use clustering or canvas-based rendering when marker counts grow large.
- Treat plugins as optional dependencies; verify maintenance status and compatibility before adopting them.
Common Failure Checks
- Blank map: verify container height, CSS import, tile URL, and network access.
- Tiles not loading: verify URL template, attribution requirements, CORS behavior, and rate limits.
- Features in the wrong place: verify coordinate order and whether the source data is really WGS84 lon/lat.
- Map rendering oddly after resize or tab switch: call
map.invalidateSize()after the container becomes visible. - Memory leaks in React or SPA routes: remove the map instance and detach listeners on teardown.
- Slow interaction with many points: cluster points, simplify GeoJSON, or switch from DOM-heavy markers to canvas-friendly rendering.
Practical Patterns
Minimal map
- Create the map only after the container exists.
- Add one tile layer with attribution.
- Set a sane initial center/zoom or fit to bounds from data.
GeoJSON overlay
- Use
L.geoJSONwith explicit style andonEachFeature. - Keep popup content deterministic and escape or sanitize user-provided text.
- Fit to the resulting layer bounds when the overlay is the main subject.
Interactive app integration
- Store the map instance outside repeated render loops.
- Update layers incrementally instead of recreating the entire map on every state change.
- Separate base layer setup from data overlay updates.
Drawing and editing
- Use a maintained drawing plugin only when the user explicitly needs editing.
- Confirm output format, CRS assumptions, and persistence flow before wiring edit tools.
Task Boundaries
- Use this skill for Leaflet-specific implementation, debugging, and integration patterns.
- For CRS and reprojection decisions, use
projectorwgs84. - For China-specific CGCS2000 reasoning, use
cgcs2000. - For file-based GIS conversion or batch reprojection, use
qgis. - For Mapbox GL JS or vector-tile style expressions, use
mapbox. - For CesiumJS globe rendering, use
cesium.
What To Return
- A minimal working Leaflet setup or a targeted fix.
- The likely root cause when debugging a broken map.
- Clear notes on tile source assumptions, coordinate order, and CRS constraints.
- Any required cleanup or lifecycle handling for the framework in use.
- A smaller reproducible example first if the original integration is too noisy.
OpenClaw + ClawHub Notes
- Keep examples generic, portable, and safe to paste into local projects.
- Do not hardcode private tile servers, private tokens, or machine-specific paths.
- Prefer maintained public dependencies and standards-based examples.
- For clawhub.ai publication, keep examples reproducible and version/changelog updates semver-driven.
Reference Docs In This Skill
- Read
{baseDir}/references/patterns.mdwhen generating or fixing Leaflet code for vanilla HTML, Vite, React, or GeoJSON-heavy pages.
相关技能
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。
在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
jvy 的更多技能
浏览全部技能面向中文办公场景的 WPS 文档、表格与演示处理及格式兼容。
Create Apache ECharts option JSON, standalone HTML chart pages, and export-ready chart artifacts from CSV, TSV, JSON tables, or existing option configs. Use...
Gitee operations via OpenAPI and git: repositories, pull requests, issues, comments, and file contents. Use when: (1) inspecting or creating Gitee pull reque...
Write, explain, adapt, and debug practical shader code for GLSL, WebGL, Three.js ShaderMaterial, React Three Fiber, postprocess-style full-screen effects, an...
Build, debug, and integrate OpenLayers web maps, including map/view setup, XYZ and OSM base layers, vector sources, GeoJSON overlays, Web Mercator and WGS84...
Research public holidays, bank holidays, observed days, school breaks, and make-up workdays for any country or region. Use when the user asks whether a speci...