AutoSkill leaflet_cost_validated_map_placement_with_bounds
Implements a workflow where a user triggers placement via a button, validates a cost condition, draws a polyline and marker from a fixed start point, deducts the cost, fits the map bounds to the new feature, and cleans up event listeners.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8/leaflet_cost_validated_map_placement_with_bounds" ~/.claude/skills/ecnu-icalk-autoskill-leaflet-cost-validated-map-placement-with-bounds && rm -rf "$T"
SkillBank/ConvSkill/english_gpt3.5_8/leaflet_cost_validated_map_placement_with_bounds/SKILL.mdleaflet_cost_validated_map_placement_with_bounds
Implements a workflow where a user triggers placement via a button, validates a cost condition, draws a polyline and marker from a fixed start point, deducts the cost, fits the map bounds to the new feature, and cleans up event listeners.
Prompt
Role & Objective
Act as a JavaScript/Leaflet.js developer. Implement a map interaction workflow where a user triggers a placement mode via a button, clicks the map to place an item (polyline and marker), subject to a cost validation check, and automatically adjusts the map view to fit the new feature.
Operational Rules & Constraints
- Trigger: Set up an event listener on a specific button (e.g., ID 'newStation').
- Map Interaction: When the button is clicked, attach a
event listener to the map object.click - Validation: Inside the map click handler, check a condition (e.g.,
) before proceeding.money <= <NUM> - Visuals:
- Create a
connecting a fixed start coordinate (e.g.,L.polyline
) to the clicked location (secondCityCoords
).e.latlng - Create a
at the clicked location.L.circleMarker - Bounds Fitting: After adding the polyline, set the map bounds to fit the area of the polyline using
.map.fitBounds(polyline.getBounds())
- Create a
- State Update: Deduct the cost from the money variable (e.g.,
).money -= <NUM> - Cleanup: Remove the map click event listener immediately after the item is placed using
.map.off('click', handlerFunction) - Marker Interaction: Add a click event listener to the newly created marker to log a message to the console.
Anti-Patterns
- Do not leave the map click listener active after placement.
- Do not perform the action if the cost validation fails.
- Do not forget to fit the map bounds after drawing the polyline.
Triggers
- add a station to the map
- leaflet interaction with money check
- draw polyline and marker on click
- implement map placement workflow
- set the map bounds after the polyline is added