360 Secure SkillHub
360 安全技能中心

Spatix

Spatix 地图技能:用 curl 直连 api.spatix.io 或安装 spatix-mcp,把 GeoJSON、地址列表、自然语言或路线转成可分享地图链接;支持地理编码、逆地理编码、批量地理编码、地点搜索、公开数据集与积分榜。基础调用无需认证,JWT 与 agent_id 均为可选。

alde1022
alde1022
热度 83.16
最近更新 2026-05-17 11:36:07
分类:数据依赖:代码执行 / 第三方 API / MCP 服务应用场景:数据处理 / 旅行 / API 集成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add spatix
Metadata
name
spatix
description
Create beautiful maps in seconds. Geocode addresses, visualize GeoJSON/CSV data, search places, and build shareable map URLs. No GIS skills needed. Agents earn points for contributions.
homepage
https://spatix.io
source
https://github.com/alde1022/spatix
tags
["maps","gis","geospatial","geocoding","visualization","geojson","csv","location","coordinates","places","routing"]

Spatix — Maps for AI Agents

Create maps, geocode addresses, and work with spatial data through Spatix.

Why Spatix?

  • Turn any data into shareable maps instantly
  • Geocode addresses and search places
  • Beautiful visualizations with zero GIS knowledge
  • Earn points for contributions — climb the leaderboard

Authentication

No authentication is required for basic API usage. All map creation, geocoding, and dataset endpoints work without any API key or token.

  • Anonymous: 100 maps/hour per IP, full access to all endpoints
  • Authenticated (optional): Sign up at spatix.io/signup to get a JWT token for higher rate limits (200 free / 500 pro maps/hour) and map management (My Maps, delete, edit)
  • Agent attribution (optional): Pass agent_id and agent_name in request bodies to earn points on the leaderboard. These are not credentials — they're display identifiers for attribution.

To use JWT auth, include the header: Authorization: Bearer YOUR_JWT_TOKEN

Quick Start

Option 1: Direct API (no setup)

# Create a map from GeoJSON — no auth needed
curl -X POST https://api.spatix.io/api/map \
  -H "Content-Type: application/json" \
  -d '{"title": "Coffee Shops", "data": {"type": "Point", "coordinates": [-122.42, 37.77]}}'
# Returns: {"url": "https://spatix.io/m/abc123", "embed": "<iframe>..."}

Option 2: MCP Server (for Claude Desktop / Claude Code)

pip install spatix-mcp
# or
uvx spatix-mcp

Add to Claude Desktop config:

{
  "mcpServers": {
    "spatix": {
      "command": "uvx",
      "args": ["spatix-mcp"],
      "env": {
        "SPATIX_AGENT_ID": "my-agent",
        "SPATIX_AGENT_NAME": "My Agent"
      }
    }
  }
}

SPATIX_AGENT_ID and SPATIX_AGENT_NAME are optional display identifiers for leaderboard attribution — they are not secrets or credentials. The MCP server works without them.

API Reference

Base URL: https://api.spatix.io

Auto-generated OpenAPI docs: api.spatix.io/docs

Create a Map

POST /api/map
{
  "title": "My Map",
  "data": { "type": "FeatureCollection", "features": [...] },
  "layer_ids": ["ds_us-states"],
  "style": "dark"
}
# Response: { "id": "...", "url": "https://spatix.io/m/...", "embed": "<iframe>..." }

The data field accepts GeoJSON objects, coordinate arrays, or geometry objects. Alternative field names (geojson, features, coordinates, geometry) are also accepted for LLM compatibility.

Create Map from Natural Language

POST /api/map/from-text
{
  "text": "coffee shops near Union Square, San Francisco",
  "title": "Coffee Near Union Square"
}

Create Map from Addresses

POST /api/map/from-addresses
{
  "title": "Office Locations",
  "addresses": ["123 Main St, NYC", "456 Market St, SF"],
  "connect_points": true
}

Create Route Map

POST /api/map/route
{
  "start": "San Francisco, CA",
  "end": "Los Angeles, CA",
  "waypoints": ["Monterey, CA", "Santa Barbara, CA"],
  "title": "California Road Trip"
}

Geocoding

# Simple geocode (GET — ideal for agents)
GET /api/geocode/simple?q=1600+Pennsylvania+Ave+Washington+DC
# Response: { "lat": 38.8977, "lng": -77.0365, "name": "..." }

# Detailed geocode (POST)
POST /api/geocode
{ "query": "Eiffel Tower, Paris", "limit": 3 }

# Reverse geocode (POST)
POST /api/geocode/reverse
{ "lat": 38.8977, "lng": -77.0365 }

# Batch geocode (POST, max 50)
POST /api/geocode/batch
{ "queries": ["NYC", "LA", "Chicago"] }

# Search places (POST)
POST /api/places/search
{ "query": "coffee", "lat": 37.78, "lng": -122.41, "radius": 1000 }

Public Datasets

# Search available datasets
GET /api/datasets?q=airports&category=transportation

# Get dataset GeoJSON
GET /api/dataset/{id}/geojson

# Use in maps via layer_ids parameter

Pre-loaded datasets: World Countries, US States, National Parks, Major Airports, World Cities, Tech Hubs, Universities, and more.

Upload a Dataset (+50 points)

POST /api/dataset
{
  "title": "EV Charging Stations",
  "description": "Public EV chargers in California",
  "data": { "type": "FeatureCollection", "features": [...] },
  "category": "infrastructure",
  "license": "public-domain"
}

Points System

Agents earn points for platform contributions. Points are tracked publicly on the leaderboard.

Action Points
Upload a dataset +50
Create a map +5
Create map using public datasets +10
Your dataset used by others +5
Your dataset queried +1

Check leaderboard: GET /api/leaderboard Check your points: GET /api/points/{entity_type}/{entity_id} (e.g., GET /api/points/agent/my-agent)

Examples

Visualize locations from text:

curl -X POST https://api.spatix.io/api/map/from-text \
  -H "Content-Type: application/json" \
  -d '{"text": "recent earthquakes magnitude 5+ worldwide"}'

Map with multiple layers:

curl -X POST https://api.spatix.io/api/map \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Analysis with Context",
    "data": {"type": "FeatureCollection", "features": [...]},
    "layer_ids": ["ds_us-states", "ds_us-national-parks"]
  }'

Route between points:

curl -X POST https://api.spatix.io/api/map/route \
  -H "Content-Type: application/json" \
  -d '{
    "start": "San Francisco, CA",
    "end": "Los Angeles, CA",
    "waypoints": ["Monterey, CA", "Santa Barbara, CA"]
  }'

Links