Geopy 笔记:计算距离

news2024/12/23 8:39:45

1 介绍 

  • Geopy使用测地线距离或大圆距离来计算两点之间的地理距离,其中默认使用测地线距离(geopy.distance.distance)
    • 大圆距离(great_circle)使用地球的球形模型,,半径为6371.0087714150598 公里(适用于 WGS-84)
      • 其误差可达到大约 0.5%
      • 该半径值存储在 distance.EARTH_RADIUS 中,因此可以自定义(但单位应始终为公里)
    • 测地线距离是地球椭球模型表面上的最短距离
      • 有多种流行的地球椭球模型,默认情况下使用的是全球最准确的 WGS-84 椭球模型
      • geopy 还在 distance.ELLIPSOIDS 字典中包括了其他几种模型

 

2 举例

2.1 测地线距离

from geopy import distance
loc1 = (31.255561, 121.480033)
loc2 = (31.345561, 121.530033)

distance.distance(loc1,loc2)
#Distance(11.055949693856725)
#两个坐标点的测地线距离

distance.distance(loc1,loc2).km
#11.055949693856725

distance.distance(loc1,loc2).m
#11055.949693856724

distance.distance(loc1,loc2).miles
#6.8698486425877405
#换算成不同的单位

 测地线距离使用distance.distance 和 distance.geodesic是没差的

可以切换椭圆模型

distance.geodesic(loc1, loc2, 
                  ellipsoid='GRS-80')
#Distance(11.05594969368841)

 也可以自定义椭圆模型的各个参数

distance.geodesic(loc1, loc2, 
                  ellipsoid=(6377., 6356., 1 / 297.))
#Distance(11.053833498906037)

2.2 大圆距离

distance.great_circle(loc1,loc2)
#Distance(11.077858517227645)

3 返回的距离也可以做运算

from geopy import distance
from geopy.distance import Distance
loc1 = (31.255561, 121.480033)
loc2 = (31.345561, 121.530033)

distance.geodesic(loc1,loc2)
#Distance(11.055949693856725)

distance.geodesic(loc1,loc2)*2
#Distance(22.11189938771345)

distance.geodesic(loc1,loc2)+Distance(meters=1)
#Distance(11.056949693856724)

4 知道起点、距离和朝向,计算终点

from geopy import distance

distance.distance(kilometers=1).destination((31.255561,121.480033),bearing=90)

距离类这里大写D小写d没有区别

destination的第一个参数表示起始点,第二个参数表示朝向(北0、东90、南180、西270)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AJAX学习笔记9 搜索联想自动补全

AJAX学习笔记8 跨域问题及解决方案_biubiubiu0706的博客-CSDN博客 其实就一个功能 搜索联想 自动补全 键盘按下事件keydown 键盘弹起事件keyup 做模糊查询 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><t…

海外ASO优化之如何优化游戏应用

如果我们发布了一款手机游戏或者管理了一款手机游戏&#xff0c;那么需要确保我们的手机游戏对合适的人可见&#xff0c;目的是增加应用的下载量。 1、优化游戏元数据的关键词。 Apple和Google在应用商店中为我们提供有限的空间&#xff0c;来描述手机游戏及其优势。我们需要使…

事件派发触发以及自定义事件派发dispatchEvent-——————派发键盘事件

事件派发触发以及自定义事件派发dispatchEvent 首先DOM的方法 addEventListener() 和 removeEventListener()是用来分配和删除事件的函数。 这两个方法都需要三个参数&#xff0c;分别为&#xff1a;事件名称&#xff08;String&#xff09;、要触发的事件处理函数(Function)、…

Run in PaddleX!四步搞定10+任务场景36个精选产业模型开发与部署!

随着ChatGPT引领的AI破圈&#xff0c;各行各业掀起了AI落地的潮流&#xff0c;从智能客服、智能写作、智能监控&#xff0c;到智能医疗、智能家居、智能金融、智能农业&#xff0c;谁能快速将AI与传统业务相结合&#xff0c;谁就将成为企业数字化和智能化变革的优胜者。然而&am…

10、Kubernetes核心技术 - Label标签

目录 一、概述 二、Label Selector&#xff08;标签选择器&#xff09; 1)、基于等值&#xff08;Equality-based&#xff09; 2)、基于集合&#xff08;Set-based&#xff09; 三、Label相关操作 (1)、yaml文件定义标签 (2)、查看标签 (3)、筛选标签 (4)、添加标签 …

Unity VideoPlayer 指定位置开始播放

如果 source是 videoclip&#xff08;以下两种方式都可以&#xff09;&#xff1a; _videoPlayer.Play();Debug.Log("time: " _videoPlayer.clip.length);_videoPlayer.time 10; [SerializeField] VideoPlayer videoPlayer;public void SetClipWithTime(VideoClip…

iTOP-i.MX6ULL开发板修改 samba 配置文件

sudo vi /etc/samba/smb.conf 添加如下内容&#xff1a; 这些信息都是 samba 的说明和设置&#xff0c;把这些复制上&#xff0c;格式要设置对&#xff0c;使用 Tab 键缩进&#xff0c;然后把注释删 除&#xff0c;不然可能会出错。 [ubuntu_samba] comment arm ubuntu sa…

HashMap、LinkedHashMap和TreeMap:你真的了解它们吗?

亲爱的小伙伴们&#xff0c;大家好呀&#xff01;我是小米&#xff0c;一个热衷于技术分享的90后程序员。今天我要和大家聊聊一个在面试中经常会被问到的话题&#xff1a;HashMap、LinkedHashMap、TreeMap的区别。这可是一个非常重要的知识点&#xff0c;不仅在面试中会被频繁提…

linux运维(二)内存占用分析

一、centos内存高&#xff0c;查看占用内存, top命令详解 1.1: free 命令是 free 单位K free -m 单位M free -h 单位Gfree最常规的查看内存占用情况的命令 1.2: 参数说明 total 总物理内存 used 已经使用的内存 free 没有使用的内存 shared 多进程共享内存 buff/cache 读写…

IP应用场景查询API:深入了解网络用户行为的利器

前言 随着数字时代的不断发展&#xff0c;互联网已经成为人们生活的重要组成部分。而随着越来越多的业务和社交活动迁移到在线平台上&#xff0c;了解和理解网络用户行为变得至关重要。为了满足这个需求&#xff0c;IP 应用场景查询 API 崭露头角&#xff0c;成为深入了解网络…

通讯软件017——分分钟学会Kepware OPC UA Server配置

本文介绍如何配置Kepware OPC UA Server&#xff0c;通过本文可以对OPC UA的基本概念有所了解&#xff0c;掌握OPC UA的本质。更多通信资源请登录网信智汇(wangxinzhihui.com)。 1. 创建OPC UA Server 点击“OPC UA Configuration”&#xff0c;弹出配置界面。 点击“添加”&a…

云计算时代的采集利器

大家好&#xff01;在今天的知识分享中&#xff0c;我们将探讨一个在云计算环境中的爬虫应用利器——独享IP。如果你是一名爬虫程序员&#xff0c;或者对数据采集和网络爬虫有浓厚的兴趣&#xff0c;那么这篇文章将向你展示独享IP在云计算环境下的应用价值。 1. 什么是独享IP&…

学生宿舍护眼台灯怎么样选择?适合宿舍使用的五款台灯

众所周知&#xff0c;咱们的学生是作为近视基数最大的群体&#xff0c;平时压力大导致用眼都很频繁&#xff0c;所以有些学生从小就带上了眼睛&#xff0c;大街上更是随处可见戴着近视眼镜的学生&#xff0c;这对于孩子未来的发展很不利&#xff0c;所以众多家长朋友们也都开始…

这可能是最全面的Python入门手册了!

无论是学习任何一门语言&#xff0c;基础知识一定要扎实&#xff0c;基础功非常的重要&#xff0c;找到一个合适的学习方法和资料会让你少走很多弯路&#xff0c; 你的进步速度也会快很多&#xff0c;无论我们学习的目的是什么&#xff0c;不得不说Python真的是一门值得付出时间…

Java8实战-总结22

Java8实战-总结22 使用流数值流原始类型流特化数值范围数值流应用&#xff1a;勾股数 使用流 数值流 可以使用reduce方法计算流中元素的总和。例如&#xff0c;可以像下面这样计算菜单的热量&#xff1a; int calories menu.stream().map(Dish::getcalories).reduce(0, Int…

LeetCode 刷题记录——从零开始记录自己一些不会的

1. 最多可以摧毁的敌人城堡数目 题意 思路 两层循环&#xff0c;太low了 用一个变量记录前一个位置 代码 class Solution { public:int captureForts(vector<int>& forts) {int ans 0, pre -1;for (int i 0; i < forts.size(); i) {if (forts[i] 1 || forts…

如何解决ArcGIS中数据显示乱码问题?

你是否遇到过在ArcGIS中打开文件的时候&#xff0c;却显示乱码的问题呢&#xff1f; 其根本原因是字符编码造成的&#xff0c;这里就来分享一下如何解决在ArcGIS中导入数据后显示乱码的方法。 数据显示乱码 我们这里以一份“移动基站”数据为例&#xff0c;将它直接拖放到Arc…

webserver 同步 I/O 模拟 Proactor 模式的工作流程

一、服务器编程基本框架 虽然服务器程序种类繁多&#xff0c;但其基本框架都一样&#xff0c;不同之处在于逻辑处理。 二、两种高效的事件处理模式 服务器程序通常需要处理三类事件&#xff1a;I/O 事件、信号及定时事件。 有两种高效的事件处理模式&#xff1a;Reactor 和 Pro…

视频监控汇聚平台EasyNVR安防视频平台如何利用视频监控与AI智能识别技术,实现铁塔基站机房的无人值守方案

安防监控EasyNVR可视化视频汇聚管理系统已在全国多地落地部署&#xff0c;视频集中存储EasyNVR平台可提供多协议&#xff08;RTSP/RTMP/GB28181/海康Ehome/大华/海康SDK等&#xff09;的设备视频接入、采集、处理、分发、AI智能检测等服务。平台可以有效解决通信铁塔各基站机房…

redhat7.6安装weblogic12c

目录 一、环境准备 二、使用root创建用户和组 三、创建部署目录 四、上传安装包 五、创建 oraInst.loc 文件 六、创建wls.rsp 响应文件 七、进行安装 八、使用 wlst.sh 离线模式创建一个域 九、启动服务 十、浏览器访问 一、环境准备 REDHAT版本&#xff1a;Redhat…