讲师中心 微信公众号
AI工具推荐 视频效率加速

计算多边形最远坐标并以海里为单位计算距离

酷杰吖_4084

酷杰吖_4084

发布时间:2025-11-10 09:29:01

|

783人浏览过

|

来源于php中文网

原创

计算多边形最远坐标并以海里为单位计算距离

本文旨在提供一种使用 Python Shapely 库和 geopy 库计算多边形上两个最远坐标点之间距离的方法,结果以海里为单位。文章详细解释了代码实现,包括坐标点的选取、距离计算函数的正确使用以及最终结果的展示。通过本文,读者可以掌握计算多边形最大线性范围并测量距离的有效方法。

在处理地理空间数据时,经常需要计算多边形上两个最远点之间的距离,这也被称为最大线性范围。本教程将引导你如何使用 Python 的 shapely 和 geopy 库来实现这个目标,并以海里为单位计算距离。

准备工作

首先,确保你已经安装了必要的库:

pip install shapely geopy

代码实现

git摸鱼周报自动化
git摸鱼周报自动化

生成周报:读取本机 Git 仓库最近一周的提交记录,按项目分类提炼总结,生成标准周报格式,通过微信推送并返回给用户。触发词:周报、weekly report、git总结、提交记录总结、工作周报。

下载

以下代码展示了如何计算多边形最远坐标并计算它们之间的距离(以海里为单位):

import shapely.geometry as sg
from geopy.distance import distance

# 创建多边形对象
t1 = sg.Polygon([(-74.418225663382, 39.36239030236737), # Further Point 1: Atlantic City, NJ
                 (-74.27880733397238, 39.71055595453288),
                 (-74.75681303480502, 40.219387193292164),
                 (-75.4705021020208, 40.60356289498688),
                 (-76.88460230031765, 40.264996135212186), # Further Point 2: Harrisburg, PA
                 (-74.418225663382, 39.36239030236737)])

# 初始化变量以存储最远坐标
furthest_pair = None
max_distance = 0

# 遍历多边形中的所有坐标对
for i, p1 in enumerate(t1.exterior.coords):
    for j, p2 in enumerate(t1.exterior.coords[i+1:]):
        dist = distance(p1, p2).nm  # 计算点之间的距离(以海里为单位)
        if dist > max_distance:
            max_distance = dist
            furthest_pair = (p1, p2)

# 打印最远坐标及其距离
print("最远坐标:", furthest_pair)  # 应该打印 2 个最远的坐标对
print("它们之间的距离:", max_distance, "NM") # 以海里为单位的距离
print("应该大约为: 126.0 NM")

代码解释

  1. 导入必要的库: shapely.geometry 用于创建和操作几何对象,geopy.distance 用于计算地理坐标之间的距离。
  2. 创建多边形对象: 使用 shapely.geometry.Polygon 类,将一系列坐标点作为参数传入,创建一个多边形对象。
  3. 初始化变量: furthest_pair 用于存储最远的坐标点对,max_distance 用于存储它们之间的距离。
  4. 遍历坐标点对: 使用嵌套循环遍历多边形的所有坐标点对。t1.exterior.coords 返回多边形外部环的坐标列表。
  5. 计算距离: 使用 geopy.distance.distance(p1, p2).nm 计算两个坐标点之间的距离,.nm 属性返回以海里为单位的距离。
  6. 更新最远坐标: 如果当前坐标点对的距离大于 max_distance,则更新 max_distance 和 furthest_pair。
  7. 打印结果: 打印最远坐标点对和它们之间的距离。

注意事项

  • 确保 geopy.distance 的正确导入方式是 from geopy.distance import distance,而不是 import geopy.distance as distance。后者导入的是整个模块,而不是 distance 函数。
  • geopy.distance.distance() 函数的参数是两个坐标点的元组 (latitude, longitude)。
  • 结果的精度可能受到坐标点精度的影响。

总结

本教程展示了如何使用 Python 的 shapely 和 geopy 库计算多边形上两个最远坐标点之间的距离,并以海里为单位显示结果。通过理解和修改这段代码,你可以将其应用于各种地理空间分析任务中。

热门AI工具

更多
超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

80

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

40

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

40

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

20

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

40

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

20

2026.10.22

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

40

2026.10.22

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

260

2026.10.22

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

20

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn