新闻中心
使用 Shapely 和 Geopy 查找多边形中最远坐标并计算距离(海里)

本文介绍了如何使用 Python 的 Shapely 和 Geopy 库来确定给定多边形中最远的两个坐标点,并计算它们之间的距离,结果以海里为单位。文章详细讲解了代码实现,包括必要的库导入、多边形创建、坐标遍历和距离计算,并提供了完整的可执行代码示例。
在处理地理空间数据时,经常需要计算多边形上两点之间的距离。本教程将指导你如何使用 Shapely 库创建多边形,并利用 Geopy 库找出多边形上距离最远的两点,并计算它们之间的距离(以海里为单位)。
准备工作
首先,确保你已经安装了 Shapely 和 Geopy 库。如果没有安装,可以使用 pip 进行安装:
pip install Shapely geopy
代码实现
以下代码演示了如何实现这一目标:
Musho
AI网页设计Figma插件

76
查看详情
import shapely.geometry as sg
from geopy.distance import distance
# 创建多边形对象
t1 = sg.Polygon([(-74.418225663382, 39.36239030236737), # Atlantic City, NJ
(-74.27880733397238, 39.71055595453288),
(-74.75681303480502, 40.219387193292164),
(-75.4705021020258, 40.60356289498688),
(-76.88460230031765, 40.264996135212186), # 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)
print("它们之间的距离:", max_distance, "海里")
print("应该大约是: ", 126.0, "海里")代码解释:
- 导入必要的库: shapely.geometry 用于创建和操作几何对象,geopy.distance 用于计算地理坐标之间的距离。注意导入 geopy.distance 时,需要使用 from geopy.distance import distance,直接导入模块会导致后续调用 distance 方法时出现错误。
- 创建多边形对象: 使用 sg.Polygon() 函数创建一个多边形对象,传入一个包含坐标点的列表。
- 初始化变量: furthest_pair 用于存储最远的坐标点对,max_distance 用于存储它们之间的距离。
- 遍历坐标对: 使用嵌套循环遍历多边形的所有坐标点对。注意内层循环从 i+1 开始,避免重复计算。
- 计算距离: 使用 distance(p1, p2).nm 计算两个坐标点之间的距离,结果以海里为单位。 geopy.distance.distance 接受两个元组作为输入,每个元组代表一个坐标点 (latitude, longitude)。
- 更新最远距离: 如果当前坐标对的距离大于 max_distance,则更新 max_distance 和 furthest_pair。
- 打印结果: 打印最远坐标点对和它们之间的距离。
注意事项
- 确保提供的坐标点是经纬度坐标,并且顺序正确(纬度在前,经度在后)。
- geopy.distance.distance 函数返回的是一个 geopy.distance.vincenty.VincentyDistance 对象,需要使用 .nm 属性才能获取以海里为单位的距离。
- Shapely 库主要用于几何对象的创建和操作,而 Geopy 库则专注于地理坐标的计算。
总结
本教程介绍了如何使用 Shapely 和 Geopy 库来查找多边形中最远的坐标点并计算它们之间的距离(海里)。通过理解和修改上述代码,你可以将其应用于各种地理空间数据处理任务中。
以上就是使用 Shapely 和 Geopy 查找多边形中最远坐标并计算距离(海里)的详细内容,更多请关注其它相关文章!
# git
# python
# seo经典范文
# 宁波seo推广排名
# 便宜的网站推广效果好
# 北京技术网站建设
# 百度seo怎么考证
# 怎样做营销推广认可s火17星热情
# 视频营销推广怎么推
# 衡山的网站建设
# 宝安推荐网站建设哪家快
# 佳木斯商城网站建设
# 的是
# 解决方法
# 重写
# 点对
# 自定义
# 两点
# 如何实现
# 如何使用
# 坐标点
# 遍历
# ai
# go
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】
Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
windows10怎么关闭系统提示音_windows10彻底静音设置方法
MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践
UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS
《GTA6》开发画面疑似泄露!这次可不是AI了
mysql备份恢复性能优化_mysql备份恢复性能优化方法
12306选座怎么选到特殊座位_12306特殊座位选择注意事项
如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!
html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】
谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作
将HTML Canvas内容转换为可上传的图像文件(File对象)
凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法
Golang指针如何与map组合使用_Golang map指针组合实践
PHP 枚举:根据字符串获取枚举案例的策略与实现
漫蛙2(台版)官方入口地址 漫蛙2(台版)正版漫画网页端
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
J*aScript中向JSON对象添加新属性的正确姿势
QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台
在J*a中如何捕获IndexOutOfBoundsException_索引越界异常防护方法说明
批改网学生版PC登录 批改网官网登录系统入口
高德地图沿途添加点失败如何解决 高德多点规划方法
德邦快递查询平台 德邦快递物流信息查询入口
小米14应用无法联网原因分析_小米14网络权限修复
J*aScript打印功能_j*ascript输出控制
新手怎么开始学化妆 零基础化妆入门教程
Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析
想当下一个《2077》?《心之眼》Steam评价升至"多半好评"
TypeScript/J*aScript:高效查找数组中首个唯一ID对象
电脑IP地址怎么查 查看本机IP地址的几种方法
sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE
铁路12306的积分有效期是多久_铁路12306积分有效期说明
lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法
圆通快递查询实时追踪 圆通物流包裹状态快速查看
抖音网页版怎么|直播|_抖音网页版开播操作指南
Go RPC HTTP服务正确实现与常见陷阱解析
QQ官网正版登录链接 QQ在线登录入口最新
高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法
QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口
QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
Django表单提交验证失败后保持字段值不刷新
护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?
谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问
Lar*el 8 多关键词数据库搜索优化实践
红果短剧网页版官网入口 官方最新网址发布
台积电1.4nm工艺A14瞄准2028:10年来性能提升80%


2025-11-02
浏览次数:次
返回列表