Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add znlgis/opengis-skills --skill jtsgit clone --depth 1 https://github.com/znlgis/opengis-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/znlgis/opengis-skills/jts)<a href="https://agentmods.dev/skills/znlgis/opengis-skills/jts"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/jts/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/znlgis/opengis-skills/jts"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/jts.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00058 | $0.03549 |
| Opus 5 | $0.00029 | $0.01775 |
| Sonnet 5 | $0.00012 | $0.00710 |
| Haiku 4.5 | $0.00006 | $0.00355 |
Grade A, and why
jts scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 264 lines — stays where its author put it; the contents beside it link to each section on GitHub.
项目地址: https://github.com/locationtech/jts
Maven Central:
org.locationtech.jts:jts-core许可证: Eclipse Public License 2.0 / Eclipse Distribution License 1.0(BSD 风格)
概述
JTS Topology Suite(简称 JTS)是 LocationTech 项目组下的开源 Java 二维矢量几何库,是 GeoTools、GeoServer 等众多开源 GIS 项目的几何计算核心。它提供:
- 几何对象模型:Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection
- 空间关系判断:equals、contains、within、intersects、touches、crosses、overlaps、disjoint、relate(DE-9IM)
- 集合运算:intersection、union、difference、symDifference、buffer
- 几何分析:convexHull、centroid、area、length、distance、isValid、simplify
- 线性参考:沿线距离定位、线上插值
- 空间索引:STRtree、Quadtree,加速批量空间查询
- 格式读写:WKT、WKB、GeoJSON
环境要求: JDK 8+
快速集成
Maven
<properties>
<jts.version><!-- 请查看 Maven Central 获取最新版:https://central.sonatype.com/artifact/org.locationtech.jts/jts-core --></jts.version>
</properties>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>${jts.version}</version>
</dependency>
如需 GeoJSON 等 I/O 支持:
<dependency>
<groupId>org.locationtech.jts.io</groupId>
<artifactId>jts-io-common</artifactId>
<version>${jts.version}</version>
</dependency>
Gradle
implementation 'org.locationtech.jts:jts-core:1.20.0'
implementation 'org.locationtech.jts.io:jts-io-common:1.20.0'
项目模块一览
| 模块 | artifactId | 用途 |
|---|---|---|
| jts-core | jts-core |
★ 核心——几何模型、算法、空间操作、索引 |
| jts-io-common | jts-io-common |
通用 I/O:WKT、WKB、GeoJSON 读写 |
| jts-io-ora | jts-io-ora |
Oracle Spatial SDO_GEOMETRY 读写 |
| jts-io-sde | jts-io-sde |
ArcSDE 几何读写 |
核心类一览
| 类 | 包 | 用途 |
|---|---|---|
GeometryFactory |
org.locationtech.jts.geom |
★ 推荐入口——创建所有几何对象的工厂 |
Geometry |
org.locationtech.jts.geom |
几何抽象基类,提供空间操作与关系判断方法 |
Point |
org.locationtech.jts.geom |
点(0 维) |
LineString |
org.locationtech.jts.geom |
线串(1 维) |
LinearRing |
org.locationtech.jts.geom |
闭合线环(用于构建 Polygon) |
Polygon |
org.locationtech.jts.geom |
面(2 维,含外环与可选内环) |
MultiPoint |
org.locationtech.jts.geom |
多点集合 |
MultiLineString |
org.locationtech.jts.geom |
多线集合 |
MultiPolygon |
org.locationtech.jts.geom |
多面集合 |
GeometryCollection |
org.locationtech.jts.geom |
任意几何集合 |
Coordinate |
org.locationtech.jts.geom |
坐标值(x, y, z) |
Envelope |
org.locationtech.jts.geom |
外接矩形(MBR) |
PrecisionModel |
org.locationtech.jts.geom |
坐标精度模型 |
WKTReader |
org.locationtech.jts.io |
WKT 格式解析 |
WKTWriter |
org.locationtech.jts.io |
WKT 格式输出 |
WKBReader |
org.locationtech.jts.io |
WKB 格式解析 |
WKBWriter |
org.locationtech.jts.io |
WKB 格式输出 |
GeoJsonReader |
org.locationtech.jts.io.geojson |
GeoJSON 解析 |
GeoJsonWriter |
org.locationtech.jts.io.geojson |
GeoJSON 输出 |
STRtree |
org.locationtech.jts.index.strtree |
R-tree 空间索引(批量加载,查询高效) |
Quadtree |
org.locationtech.jts.index.quadtree |
四叉树空间索引(支持动态插入删除) |
PreparedGeometry |
org.locationtech.jts.geom.prep |
预处理几何,加速重复空间关系判断 |
PreparedGeometryFactory |
org.locationtech.jts.geom.prep |
创建 PreparedGeometry 的工厂 |
BufferOp |
org.locationtech.jts.operation.buffer |
缓冲区运算(可精细控制端头、连接样式) |
OverlayNGRobust |
org.locationtech.jts.operation.overlayng |
鲁棒叠加运算(推荐使用的新一代叠加引擎) |
TopologyPreservingSimplifier |
org.locationtech.jts.simplify |
保持拓扑的几何简化 |
DouglasPeuckerSimplifier |
org.locationtech.jts.simplify |
Douglas-Peucker 几何简化 |
IsValidOp |
org.locationtech.jts.operation.valid |
几何有效性检测 |
LengthIndexedLine |
org.locationtech.jts.linearref |
按长度进行线性参考 |
LocationIndexedLine |
org.locationtech.jts.linearref |
按位置进行线性参考 |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed d56218db5b45
- 8d ago Changed · -295 lines 554ca240fdd2
- 12d ago First seen · 559 lines · 58 tokens per session scan A 53616f0b0024
jts is a skill published in the GitHub repository znlgis/opengis-skills (61 stars, last pushed today), licensed MIT. It adds 58 tokens to every session and 3,549 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
azure-security-keyvault-secrets-java
Azure Key Vault Secrets Java SDK for secret management. Use when storing, retrieving, or managing passwords, API keys, connection strings, or other sensitive configuration data.
azure-ai-anomalydetector-java
Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.
azure-communication-chat-java
Build real-time chat applications with Azure Communication Services Chat Java SDK. Use when implementing chat threads, messaging, participants, read receipts, typing notifications, or real-time chat features.
azure-communication-common-java
Azure Communication Services common utilities for Java. Use when working with CommunicationTokenCredential, user identifiers, token refresh, or shared authentication across ACS services.
azure-ai-agents-persistent-java
Azure AI Agents Persistent SDK for Java. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Triggers: "PersistentAgentsClient", "persistent agents java", "agent threads java", "agent runs java", "streaming agents java".
union-type-wrappers
Add typed getters and setters over BinaryData properties that represent TypeSpec union types in generated Java models. Use when generated classes expose BinaryData for union-typed fields and you need ergonomic, type-safe accessors instead.