skill/SKILL.md
Initialize my-openlayer maps, add points/lines/polygons, configure Vue overlays, switch base layers, and handle measurement tools. Use when the user asks about my-openlayer setup, OpenLayers map initialization, adding map markers, pulse points, static or animated flow lines, polygon drawing, map overlay components, layer switching, feature selection, measurement, custom projections, projection registration, or EPSG transform errors.
npx skillsauth add cuteyuchen/my-openlayer my-openlayer-helperInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
MyOl constructor with a container ID and options.getPoint(), getLine(), getPolygon(), getTools()).destroy() or event-manager dispose functions on unmount.import { MyOl } from 'my-openlayer';
// 1. Initialize map (container element must exist in DOM)
const map = new MyOl('map-container', {
center: [120.155, 30.274],
zoom: 12,
token: 'YOUR_TIANDITU_TOKEN'
});
// 2. Add point markers
const pointModule = map.getPoint();
pointModule.addPoint(
[{ lgtd: 120.15, lttd: 30.27, name: 'Hangzhou HQ' }],
{ layerName: 'offices', img: '/icons/marker.png', textKey: 'name', scale: 0.8 }
);
// 3. Add many animated warning markers without per-point DOM animations
pointModule.addPulsePointLayer(
[{ lgtd: 120.16, lttd: 30.28, name: 'Warning Village', lev: 0 }],
{
layerName: 'warnings',
levelKey: 'lev',
img: '/icons/village.svg',
scale: 0.8,
textKey: 'name',
textVisible: true,
pulse: { radius: [8, 28], duration: 2400 }
}
);
// 4. Listen for map ready
const eventMgr = map.getEventManager();
const unsub = eventMgr.on('rendercomplete', () => console.log('Map ready'));
// 5. Cleanup on unmount
onUnmounted(() => {
unsub(); // remove listener
map.destroy(); // release resources
});
new MyOl(...). In Vue, initialize inside onMounted, never in setup.[longitude, latitude] in EPSG:4326. EPSG:3857 projected values will misplace features.MyOl owns projection setup and explicitly registers EPSG:4326, EPSG:4490, and EPSG:4549 before OpenLayers proj4 registration. Do not ask app code to manually register EPSG:4326 for production builds.MyOl.createView() can be called directly and must initialize projections internally. If production reports No transform available between EPSG:4326 and EPSG:4490, check that the package version includes this static initialization path.projection.def contains +units=m, let proj4/OpenLayers infer the unit. Only pass projection.units when explicitly overriding the inferred unit.addPulsePointLayer over addDomPoint when rendering large warning/village pulse point lists.EventManager.on() when the component unmounts.tools
Initialize my-openlayer maps, add points/lines/polygons, configure Vue overlays, switch base layers, handle measurement tools, register custom projections, and manage runtime config. Use when the user asks about my-openlayer setup, OpenLayers map initialization, adding map markers, pulse points, static or animated flow lines, polygon drawing, map overlay components, layer switching, feature selection, measurement, custom projections, projection registration, EPSG transform errors, map clipping, or runtime default configuration.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------