重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
distance-calculator by dkyazzentwatwa/chatgpt-skills
npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill distance-calculator使用多种方法计算地理距离并查找附近位置。
from distance_calc import DistanceCalculator
calc = DistanceCalculator()
# 简单距离计算
dist = calc.distance(
(40.7128, -74.0060), # 纽约
(34.0522, -118.2437) # 洛杉矶
)
print(f"Distance: {dist:.2f} km")
# 查找最近的点
nearest = calc.find_nearest(
origin=(40.7128, -74.0060),
points=store_locations,
n=5
)
# 两点间距离
python distance_calc.py --from "40.7128,-74.0060" --to "34.0522,-118.2437"
# 从 CSV 查找最近点
python distance_calc.py --origin "40.7128,-74.0060" --input stores.csv --nearest 5
# 半径内的点
python distance_calc.py --origin "40.7128,-74.0060" --input stores.csv --radius 50
# 距离矩阵
python distance_calc.py --input locations.csv --matrix --output distances.csv
# 不同单位
python distance_calc.py --from "40.7128,-74.0060" --to "34.0522,-118.2437" --unit miles
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
class DistanceCalculator:
def __init__(self, unit: str = "km", method: str = "haversine")
# 点对点
def distance(self, point1: tuple, point2: tuple) -> float
def distance_with_details(self, point1: tuple, point2: tuple) -> dict
# 批量操作
def distance_matrix(self, points: list) -> list
def distances_from_origin(self, origin: tuple, points: list) -> list
# 搜索
def find_nearest(self, origin: tuple, points: list, n: int = 1) -> list
def find_within_radius(self, origin: tuple, points: list, radius: float) -> list
# 文件操作
def from_csv(self, filepath: str, lat_col: str, lon_col: str) -> list
def matrix_to_csv(self, matrix: list, labels: list, output: str)
更精确,考虑了地球的椭球形状
速度稍慢
误差:约 0.5 毫米
calc = DistanceCalculator(method="vincenty")
| 单位 | 描述 |
|---|---|
km | 公里 (默认) |
miles | 英里 |
m | 米 |
nm | 海里 |
ft | 英尺 |
calc = DistanceCalculator(unit="miles")
# 或者之后转换
dist_km = calc.distance(p1, p2)
dist_miles = calc.convert(dist_km, "km", "miles")
calc = DistanceCalculator(unit="miles")
stores = calc.from_csv("stores.csv", "lat", "lon")
customer = (40.7128, -74.0060)
nearest = calc.find_nearest(customer, stores, n=3)
for store in nearest:
print(f"{store['name']}: {store['distance']:.1f} miles")
calc = DistanceCalculator(unit="km")
warehouse = (40.7128, -74.0060)
delivery_radius = 50 # km
customers = calc.from_csv("customers.csv", "lat", "lon")
in_zone = calc.find_within_radius(warehouse, customers, delivery_radius)
print(f"{len(in_zone)} customers in delivery zone")
calc = DistanceCalculator()
stops = [
(40.7128, -74.0060),
(40.7589, -73.9851),
(40.7484, -73.9857),
(40.7527, -73.9772)
]
matrix = calc.distance_matrix(stops)
calc.matrix_to_csv(matrix, ["HQ", "Store1", "Store2", "Store3"], "distances.csv")
{
"distance": 3935.75,
"unit": "km",
"from": {"lat": 40.7128, "lon": -74.0060},
"to": {"lat": 34.0522, "lon": -118.2437},
"method": "haversine"
}
[
{"point": (lat, lon), "distance": 5.2, "data": {...}},
{"point": (lat, lon), "distance": 8.1, "data": {...}},
]
每周安装量
47
代码仓库
GitHub 星标数
39
首次出现
2026 年 1 月 24 日
安全审计
安装于
gemini-cli37
opencode37
codex36
cursor36
github-copilot33
claude-code32
Calculate geographic distances and find nearby locations using various methods.
from distance_calc import DistanceCalculator
calc = DistanceCalculator()
# Simple distance
dist = calc.distance(
(40.7128, -74.0060), # New York
(34.0522, -118.2437) # Los Angeles
)
print(f"Distance: {dist:.2f} km")
# Find nearest points
nearest = calc.find_nearest(
origin=(40.7128, -74.0060),
points=store_locations,
n=5
)
# Distance between two points
python distance_calc.py --from "40.7128,-74.0060" --to "34.0522,-118.2437"
# Find nearest from CSV
python distance_calc.py --origin "40.7128,-74.0060" --input stores.csv --nearest 5
# Points within radius
python distance_calc.py --origin "40.7128,-74.0060" --input stores.csv --radius 50
# Distance matrix
python distance_calc.py --input locations.csv --matrix --output distances.csv
# Different units
python distance_calc.py --from "40.7128,-74.0060" --to "34.0522,-118.2437" --unit miles
class DistanceCalculator:
def __init__(self, unit: str = "km", method: str = "haversine")
# Point-to-point
def distance(self, point1: tuple, point2: tuple) -> float
def distance_with_details(self, point1: tuple, point2: tuple) -> dict
# Batch operations
def distance_matrix(self, points: list) -> list
def distances_from_origin(self, origin: tuple, points: list) -> list
# Search
def find_nearest(self, origin: tuple, points: list, n: int = 1) -> list
def find_within_radius(self, origin: tuple, points: list, radius: float) -> list
# File operations
def from_csv(self, filepath: str, lat_col: str, lon_col: str) -> list
def matrix_to_csv(self, matrix: list, labels: list, output: str)
More accurate, accounts for Earth's ellipsoid shape
Slightly slower
Error: ~0.5mm
calc = DistanceCalculator(method="vincenty")
| Unit | Description |
|---|---|
km | Kilometers (default) |
miles | Miles |
m | Meters |
nm | Nautical miles |
ft | Feet |
calc = DistanceCalculator(unit="miles")
# Or convert after
dist_km = calc.distance(p1, p2)
dist_miles = calc.convert(dist_km, "km", "miles")
calc = DistanceCalculator(unit="miles")
stores = calc.from_csv("stores.csv", "lat", "lon")
customer = (40.7128, -74.0060)
nearest = calc.find_nearest(customer, stores, n=3)
for store in nearest:
print(f"{store['name']}: {store['distance']:.1f} miles")
calc = DistanceCalculator(unit="km")
warehouse = (40.7128, -74.0060)
delivery_radius = 50 # km
customers = calc.from_csv("customers.csv", "lat", "lon")
in_zone = calc.find_within_radius(warehouse, customers, delivery_radius)
print(f"{len(in_zone)} customers in delivery zone")
calc = DistanceCalculator()
stops = [
(40.7128, -74.0060),
(40.7589, -73.9851),
(40.7484, -73.9857),
(40.7527, -73.9772)
]
matrix = calc.distance_matrix(stops)
calc.matrix_to_csv(matrix, ["HQ", "Store1", "Store2", "Store3"], "distances.csv")
{
"distance": 3935.75,
"unit": "km",
"from": {"lat": 40.7128, "lon": -74.0060},
"to": {"lat": 34.0522, "lon": -118.2437},
"method": "haversine"
}
[
{"point": (lat, lon), "distance": 5.2, "data": {...}},
{"point": (lat, lon), "distance": 8.1, "data": {...}},
]
Weekly Installs
47
Repository
GitHub Stars
39
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
gemini-cli37
opencode37
codex36
cursor36
github-copilot33
claude-code32
FastAPI官方技能:Python Web开发最佳实践与CLI工具使用指南
1,300 周安装
飞书任务API管理工具 - 高效创建、更新、完成任务,提升团队协作效率
67 周安装
AI辅助图书写作工作空间 | 自动化Markdown转Re:VIEW/PDF技术文档写作工具
68 周安装
Qwen Image - 阿里云通义万相AI图像生成工具,支持中英文提示词与多种尺寸
67 周安装
DaisyUI 主题定制指南:Williamstown SC 品牌 UI 组件库配置教程
54 周安装
专业报告生成器 | 一键生成Markdown/HTML/PDF数据分析报告,含图表可视化
90 周安装
Next.js 最佳实践指南:文件约定、RSC边界、异步模式与性能优化
59 周安装