location-picker — скилл
Скилл учит агента вставлять в форму выбор точки на карте: веб-компонент, координаты в поле, OpenStreetMap без ключа.
- 82 ★ репозитория
- Последний коммит
Минимальный доступ
Почему такой уровень
- Скилл только описывает интеграцию, а компонент в браузере может запросить геолокацию после нажатия и ходит к сервисам карт.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/location-pickerОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Скилл только описывает интеграцию, а компонент в браузере может запросить геолокацию после нажатия и ходит к сервисам карт.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
location-picker — npm-пакет с веб-компонентом `<location-picker>` и классом `LocationPicker`, вместе с которыми идет Agent Skill. Пользователь двигает карту под неподвижной меткой, ищет место, вставляет координаты или нажимает кнопку геолокации, а форма отправляет значение вида `location=48.85837,2.294481`. Скилл ведет агента по задаче: подключить компонент к простой HTML-форме, к React, Vue, Angular, Svelte, Solid и Preact, к скрытым полям `lat` и `lng` в Laravel, Django, Rails, jQuery, Livewire, Alpine и htmx. Он охватывает провайдеры карт (OpenStreetMap по умолчанию, Google Maps, MapLibre), поиск адреса, обратное геокодирование, разбор координат из текста и ссылок, правила CSP, серверный рендеринг и миграцию с версий 1.x и 2.x. Есть и ссылка выбора точки для человека без установки.
Для кого. Веб-разработчикам, которым в форме нужна одна точная точка на карте: филиал, пункт выдачи, место события или адрес в профиле.
Подходит, если
- В админке магазина нужно выбрать координаты филиала и отправить их вместе с формой.
- На оформлении заказа клиент ставит метку доставки на телефоне, и значение меняется только после подтверждения.
- Агент должен вставить выбор точки в проект на React, Vue или Laravel и не ошибиться с привязкой значения.
- Бот или агент просит человека указать место и получает точку ссылкой выбора без установки.
Не подходит, если
- Нужно рисовать маршруты, области или несколько меток: компонент выбирает одну точку.
- Требуются офлайн-карты или нативное приложение на React Native.
- Нужен только текстовый автокомплит адреса без карты.
Пример запроса к агенту
Добавь в форму заказа выбор точки доставки на карте через location-picker, отправляй координаты полем `location` и проверь привязку в React.Ограничения
Бесплатные тайлы OpenStreetMap и поиск Photon не имеют SLA, поэтому для рабочей нагрузки нужны собственные тайлы и геокодер. Скрипт на CDN нужно закреплять версией `@3`. Если на странице нет Leaflet, он подгружается с jsDelivr, а правила CSP придется открыть под нужные адреса. Кнопка геолокации запрашивает разрешение браузера только после нажатия. Пакет без зависимостей на этапе выполнения: Leaflet, MapLibre и типы Google Maps остаются необязательными. Скилл помогает с кодом интеграции, но качество карты, тайлов и адресного поиска определяют выбранные провайдеры.
Как отключить. Удалите папку `skills/location-picker` из каталога скиллов агента. В проекте уберите тег `script` или пакет командой `npm uninstall location-picker`.
Частые вопросы
Как подключить скилл к агенту?
Выполните `npx skills add cyphercodes/location-picker`. Тот же файл лежит в пакете npm по пути `node_modules/location-picker/skills/location-picker/SKILL.md`.
Нужен ли ключ карты?
Нет, по умолчанию работает OpenStreetMap через Leaflet. Google Maps и MapLibre подключаются по выбору.
В каком виде форма отправляет координаты?
Одним полем `lat,lng` (атрибут `name`), двумя полями (`lat-name` и `lng-name`) или в уже существующие скрытые поля через `lat-input` и `lng-input`.
Как попросить точку у человека без установки?
Отправьте ссылку выбора точки: человек отмечает место на карте, а вы получаете его текстом, переадресацией `https://` или через `postMessage` на свой адрес.
Есть ли помощь для миграции со старых версий?
Да. Скилл знает версии 1.x и 2.x (`locationPicker`, `getMarkerPosition`, `setCurrentPosition`), а `location-picker/v1` сохраняет старый вызов.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл по Яндекс Картам JS API v3
yandex-maps-v3
Справочник и рецепты для Яндекс Карт JS API v3: маркеры, кластеризация, поиск, геокодер и React/Next.js паттерн без ошибок с порядком координат
MapLibre Agent Skills дает агенту инструкции по источникам карт, подписям, значкам, рельефу и миграциям приложений MapLibre.
Скилл Nuxt UI v4: агент строит интерфейсы на Vue и Nuxt, подбирает компоненты, настраивает тему и верстает формы и дашборды
Скилл для Codex: создает запускаемые проекты Vue с трехмерной Землей, картами областей, наложениями MapLibre и рельефом
Скилл подсказывает агенту готовые composable-функции VueUse для Vue 3 и Nuxt и дает справку по использованию и типам каждой функции
Скиллы Next.js
Next.js skills
Официальный плагин Claude Code из репозитория Next.js: переход на Cache Components, Partial Prefetching и проверка изменений на живом dev-сервере
Коротко о README
README начинается с минимального примера в одну строку, показывает установку, интеграции, провайдеры, полевой режим для телефона, ссылку выбора точки, коды ошибок и раздел для агентов с llms.txt, WebMCP и скиллом.
Бейдж для README
Исходный SKILL.md
---
name: location-picker
description: >-
Add a map location picker to a web form or web app with the location-picker npm package (the
<location-picker> web component and the LocationPicker JavaScript class). Use it when a user must choose one
precise latitude/longitude point on a map, such as a store, branch or sensor location, a delivery or pickup pin,
an event venue, the place of a report or a home address, and the point must be submitted with a form, bound in
React, Vue, Angular, Svelte, Solid or Preact, or written into hidden lat/lng inputs (Laravel, Django, Rails,
jQuery, Livewire, Alpine, htmx). Covers the keyless OpenStreetMap default, Google Maps and MapLibre providers,
address search, reverse geocoding, a locate-me button, parsing coordinates from text or map URLs, Content
Security Policy, SSR and hydration, a phone-first field mode, the hosted pick link that asks a person for a
location by URL, and upgrading location-picker 1.x or 2.x code (global locationPicker, getMarkerPosition,
setCurrentPosition).
license: MIT
metadata:
homepage: https://cyphercodes.github.io/location-picker/
repository: https://github.com/cyphercodes/location-picker
---
# location-picker
`location-picker` captures one precise point: the user pans a map under a fixed centre pin (or searches, pastes coordinates, or taps "Use my location"), and the page gets `"lat,lng"`. It ships a form-associated custom element, `<location-picker>`, and an imperative class, `LocationPicker`. The default map is OpenStreetMap through Leaflet, with no API key.
Do not use it for drawing shapes or routes, several markers, a full mapping application, or text-only address autocomplete.
## Steps
1. **Pick the entry point.**
- No bundler: `<script src="https://cdn.jsdelivr.net/npm/location-picker@3"></script>` (keep the `@3`). It defines `<location-picker>` and `window.LocationPicker`.
- Bundler: `npm i location-picker`, then `import 'location-picker'` once in client code. It defines the element and is a no-op on the server.
- Need the engine map synchronously, or no custom element: `import { LocationPicker } from 'location-picker/core'`.
2. **Wire the value.** In a form, use `name` (one `"lat,lng"` field), `lat-name` + `lng-name` (two fields), or `lat-input` + `lng-input` (fill inputs the page already has). In a framework, bind `value` and update state from `change` (committed); use `input` only to display live updates, and never write the value back from an `input` listener (in 3.0 that stops a pan in progress). Use the per-framework event names below.
3. **Choose the provider.** Leave it out for OpenStreetMap. For Google Maps add `provider="google" api-key="YOUR_BROWSER_KEY"`. For MapLibre, the project must provide `maplibre-gl` and its CSS.
4. **Choose the presentation.** Default inline (the map in the page). For checkout, delivery or sign-up forms that people fill in on phones, use `presentation="auto"`: a compact field with a "Choose on map" button on phones, the inline map elsewhere. In field mode `ready` resolves at the first open, so never gate the form on `el.ready`.
5. **Add features only when asked:** `search`, `reverse-geocode` (with `address-name` or `addresschange`), `locate="button"`, `required`, `center` and `zoom`.
6. **Check the result against "Common mistakes"** before you finish.
If the user has no code at all (WordPress, Webflow, Squarespace, Shopify, a Formspree or Netlify form), point them to the snippet generator at https://cyphercodes.github.io/location-picker/embed/ and the platform guide https://github.com/cyphercodes/location-picker/blob/master/docs/embed.md. If an agent or a bot only needs to ask a person for a location, use the pick link (below) instead of building a page.
## Plain HTML
<!-- prettier-ignore-start -->
```html
<!doctype html>
<html lang="en">