location-picker — скилл

Скилл учит агента вставлять в форму выбор точки на карте: веб-компонент, координаты в поле, OpenStreetMap без ключа.

  • 82 ★ репозитория
  • Последний коммит
Скилл

Минимальный доступ

Почему такой уровень

  • Скилл только описывает интеграцию, а компонент в браузере может запросить геолокацию после нажатия и ходит к сервисам карт.
Все причины и проверки

cyphercodes/location-picker

Установка

В терминале, через 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: маркеры, кластеризация, поиск, геокодер и React/Next.js паттерн без ошибок с порядком координат

СкиллМинимальный доступ1Звезды репозитория

MapLibre Agent Skills дает агенту инструкции по источникам карт, подписям, значкам, рельефу и миграциям приложений MapLibre.

СкиллМинимальный доступ161Звезды репозитория
Официальный

Скилл Nuxt UI v4: агент строит интерфейсы на Vue и Nuxt, подбирает компоненты, настраивает тему и верстает формы и дашборды

СкиллРасширенный доступ7,1 тыс.Звезды репозитория

Скилл для Codex: создает запускаемые проекты Vue с трехмерной Землей, картами областей, наложениями MapLibre и рельефом

СкиллМинимальный доступ657Звезды репозитория
Официальный

Скилл подсказывает агенту готовые composable-функции VueUse для Vue 3 и Nuxt и дает справку по использованию и типам каждой функции

СкиллМинимальный доступ408Звезды репозитория

Скиллы Next.js

Next.js skills

Выбор редакции

Официальный плагин Claude Code из репозитория Next.js: переход на Cache Components, Partial Prefetching и проверка изменений на живом dev-сервере

ПлагинРасширенный доступ143,5 тыс.Звезды репозитория

Коротко о 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">

Сообщить о проблеме