Antv L7
antvis/L7
Comprehensive guide for AntV L7 geospatial visualization library.
Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction.
$ npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Raidriar7170/hermes-skilleval geospatial-routing-data --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Raidriar7170/hermes-skilleval.git skills-src && mkdir -p .claude/skills && cp -r skills-src/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data .claude/skills/geospatial-routing-data && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "geospatial-routing-data" agent skill from https://github.com/Raidriar7170/hermes-skilleval/tree/main/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data into .claude/skills/geospatial-routing-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geospatial-routing-data", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Raidriar7170/hermes-skilleval/tree/main/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-dataType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Raidriar7170/hermes-skilleval geospatial-routing-data --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Raidriar7170/hermes-skilleval.git skills-src && mkdir -p .agents/skills && cp -r skills-src/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data .agents/skills/geospatial-routing-data && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "geospatial-routing-data" agent skill from https://github.com/Raidriar7170/hermes-skilleval/tree/main/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data into .agents/skills/geospatial-routing-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geospatial-routing-data", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Raidriar7170/hermes-skilleval geospatial-routing-data --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Raidriar7170/hermes-skilleval.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data .cursor/skills/geospatial-routing-data && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "geospatial-routing-data" agent skill from https://github.com/Raidriar7170/hermes-skilleval/tree/main/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data into .cursor/skills/geospatial-routing-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geospatial-routing-data", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Raidriar7170/hermes-skilleval.git --path artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Raidriar7170/hermes-skilleval geospatial-routing-data --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Raidriar7170/hermes-skilleval.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data .gemini/skills/geospatial-routing-data && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "geospatial-routing-data" agent skill from https://github.com/Raidriar7170/hermes-skilleval/tree/main/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data into .gemini/skills/geospatial-routing-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geospatial-routing-data", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Raidriar7170/hermes-skilleval geospatial-routing-dataInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Raidriar7170/hermes-skilleval.git skills-src && mkdir -p .github/skills && cp -r skills-src/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data .github/skills/geospatial-routing-data && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "geospatial-routing-data" agent skill from https://github.com/Raidriar7170/hermes-skilleval/tree/main/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data into .github/skills/geospatial-routing-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geospatial-routing-data", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Raidriar7170/hermes-skilleval geospatial-routing-data --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Raidriar7170/hermes-skilleval.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data .opencode/skills/geospatial-routing-data && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "geospatial-routing-data" agent skill from https://github.com/Raidriar7170/hermes-skilleval/tree/main/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data into .opencode/skills/geospatial-routing-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geospatial-routing-data", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
geospatial-routing-dataGeospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction.
Geospatial Routing Data is an agent skill from Raidriar7170/hermes-skilleval. Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction. Use when optimization or reporting tasks involve latitude/longitude, station IDs, depots, distance metrics, vehicle routes, or validating travel distance from reported paths.
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Geospatial analysis. The repository describes itself as: Verification-gated skill routing and self-improvement harness for Hermes-style agent skills. The licence is MIT.
Read from SKILL.md and the folder at commit 8f6a21e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Geospatial Routing Data loads about 1.5k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 313 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Raidriar7170/hermes-skilleval at commit 8f6a21e, republished under its MIT licence (© Raidriar7170). 313 words, ~1,470 tokens.
.claude/skills/geospatial-routing-data/SKILL.md (or your agent's skills folder).Use this skill before building a routing model or validating a routing report that contains coordinates, depots, station IDs, and route sequences.
The main risk is mixing user-facing IDs with internal array indices or using a different distance metric from the task.
Load structured data with a parser and build explicit mappings:
import json
from pathlib import Path
data = json.loads(Path("/root/data.json").read_text())
stations_data = data["stations"]
station_ids = [int(s["id"]) for s in stations_data]
if len(station_ids) != len(set(station_ids)):
raise ValueError("duplicate station ids")
id_to_idx = {sid: idx for idx, sid in enumerate(station_ids)}
idx_to_id = {idx: sid for sid, idx in id_to_idx.items()}Use internal indices in optimization variables. Use original station IDs in final reports.
Check coordinates before building distances:
def parse_location(record, label):
lat = float(record["latitude"])
lon = float(record["longitude"])
if not (-90.0 <= lat <= 90.0):
raise ValueError(f"{label} latitude out of range: {lat}")
if not (-180.0 <= lon <= 180.0):
raise ValueError(f"{label} longitude out of range: {lon}")
return {"latitude": lat, "longitude": lon}
depot = parse_location(data["depot"], "depot")
station_locations = [parse_location(s, f"station {s['id']}") for s in stations_data]Latitude and longitude are degrees. Convert to radians only inside the distance function.
Match the task's declared distance metric. If the task specifies an Earth radius, use that exact value.
For great-circle miles with Earth radius 3960.0, use:
import math
def great_circle_miles(a, b, radius=3960.0):
lat1 = float(a["latitude"])
lon1 = float(a["longitude"])
lat2 = float(b["latitude"])
lon2 = float(b["longitude"])
deg_to_rad = math.pi / 180.0
phi1 = (90.0 - lat1) * deg_to_rad
phi2 = (90.0 - lat2) * deg_to_rad
theta1 = lon1 * deg_to_rad
theta2 = lon2 * deg_to_rad
cos_arc = (
math.sin(phi1) * math.sin(phi2) * math.cos(theta1 - theta2)
+ math.cos(phi1) * math.cos(phi2)
)
cos_arc = max(-1.0, min(1.0, cos_arc))
return math.acos(cos_arc) * radiusClamp cos_arc into [-1, 1] to avoid floating-point domain errors.
Do not mix:
Use separate depot labels when the route output must show a start and end depot:
START = "depot_start"
END = "depot_end"
stations = range(len(stations_data))
from_nodes = [START, *stations]
to_nodes = [*stations, END]
def node_location(node):
if node in (START, END):
return depot
return station_locations[int(node)]Build distances over the same arc set used by the optimization model:
distances = {}
for i in from_nodes:
for j in to_nodes:
if i == j:
continue
if i == START and j == END:
continue # omit if vehicles must visit at least one station
distances[i, j] = great_circle_miles(node_location(i), node_location(j))If direct depot-to-depot travel is allowed, keep the (START, END) arc.
Optimization route using internal indices:
route_nodes = [START, 3, 7, 2, END]Report route using original station IDs:
report_route = [
node if isinstance(node, str) else idx_to_id[int(node)]
for node in route_nodes
]Parse a reported route back to internal indices:
def parse_report_route(route):
if route[0] != START or route[-1] != END:
raise ValueError("route must start at depot_start and end at depot_end")
parsed = [START]
for raw in route[1:-1]:
sid = int(raw)
if sid not in id_to_idx:
raise ValueError(f"unknown station id {sid}")
parsed.append(id_to_idx[sid])
parsed.append(END)
return parsedNever assume station IDs are 0..n-1.
Recompute reported travel distance from route sequences:
def pairwise(items):
return list(zip(items, items[1:]))
def route_distance_internal(route_nodes):
total = 0.0
for i, j in pairwise(route_nodes):
total += distances[i, j]
return total
def route_distance_reported_ids(route):
internal = parse_report_route(route)
return route_distance_internal(internal)For multiple vehicles:
travel_distance = sum(
route_distance_reported_ids(vehicle["route"])
for vehicle in report["vehicles"]
)Compare with tolerance, not exact string equality:
def assert_close(actual, expected, tol=1e-6):
if abs(actual - expected) > max(tol, tol * max(1.0, abs(expected))):
raise AssertionError(f"{actual} != {expected}")Before trusting a route:
© Raidriar7170, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data of Raidriar7170/hermes-skilleval.
Open the folder on GitHubat commit 8f6a21e
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in Raidriar7170/hermes-skilleval, which our catalogue first saw on October 7, 2026.
Geospatial Routing Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Geospatial Routing Data this skillRaidriar7170/hermes-skilleval | 125 | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Antv L7antvis/L7 | 4.1k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Geo SleuthOldcircle/geo-sleuth | 1.3k | — | ~6.1k | Automated safety check: Pass | MIT | |
| Portaljs Add Geodatopian/portaljs | 2.4k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Thematic Mapzzhonglei/GeoCode-Release | 187 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Rs Paper Pipelinethinson/RS-PaperClaw | 227 | — | ~319 | Automated safety check: Pass | MIT |
antvis/L7
Comprehensive guide for AntV L7 geospatial visualization library.
Oldcircle/geo-sleuth
Geolocate or chronolocate a photo with tool-verified reasoning (where was this taken / when was it taken / photo geolocation / geo-guessing).
datopian/portaljs
Auto-ingest a geospatial file (GeoJSON, Shapefile, GeoPackage, KML/KMZ, FlatGeobuf, CSV-with-geometry) into a PortalJS portal on the user's own machine, with no server.
zzhonglei/GeoCode-Release
Create well-designed maps that follow standard cartographic conventions.
thinson/RS-PaperClaw
A skill your agent uses when operating or maintaining the RS-PaperClaw pipeline that fetches remote-sensing arXiv papers, creates per-paper issues, builds daily digests, reconciles issue sets, and…
limi124/remote-sensing-research-radar
Track, retrieve, screen, and synthesize research frontiers for geospatial AI, remote sensing big data, and transferable computer vision methods.
Raidriar7170/hermes-skilleval
World-class data science skill for statistical modeling, experimentation, causal inference, and advanced analytics.
Raidriar7170/hermes-skilleval
A library for building, validating, visualizing, and serializing dialogue graphs.
Raidriar7170/hermes-skilleval
Translate logistics and operations rules into optimization variables and constraints.
Raidriar7170/hermes-skilleval
Subtour-elimination methods for TSP, VRP, pickup/dropoff routing, and routing MIPs with binary arc variables.
Raidriar7170/hermes-skilleval
SCIP optimization with PySCIPOpt. An agent skill from Raidriar7170/hermes-skilleval.
Raidriar7170/hermes-skilleval
Word document manipulation with python-docx - handling split placeholders, headers/footers, nested tables
Categories
Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction. Geospatial Routing Data is an agent skill from Raidriar7170/hermes-skilleval. Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction.
Geospatial Routing Data fits situations like: reporting tasks involve latitude/longitude; distance metrics; validating travel distance from reported paths.
Run `npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a claude-code`. Or copy the skill folder (artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data in Raidriar7170/hermes-skilleval) into .claude/skills/geospatial-routing-data in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a codex`. Or copy the skill folder (artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data in Raidriar7170/hermes-skilleval) into .agents/skills/geospatial-routing-data in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/geospatial-routing-data, .gemini/skills/geospatial-routing-data, .github/skills/geospatial-routing-data and .opencode/skills/geospatial-routing-data in your project.
SKILL.md names no scripts, command-line tools or credentials: Geospatial Routing Data is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Geospatial Routing Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Geospatial Routing Data: Antv L7 (antvis/L7, 4.1k stars), Geo Sleuth (Oldcircle/geo-sleuth, 1.3k stars), Portaljs Add Geo (datopian/portaljs, 2.4k stars) and Thematic Map (zzhonglei/GeoCode-Release, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Raidriar7170 (a GitHub user) maintains it in Raidriar7170/hermes-skilleval, which has 125 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on September 26, 2026.
Source: Raidriar7170/hermes-skilleval on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.