码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Geopy 笔记:计算距离


    1 介绍 

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

     

    2 举例

    2.1 测地线距离

    1. from geopy import distance
    2. loc1 = (31.255561, 121.480033)
    3. loc2 = (31.345561, 121.530033)
    4. distance.distance(loc1,loc2)
    5. #Distance(11.055949693856725)
    6. #两个坐标点的测地线距离
    7. distance.distance(loc1,loc2).km
    8. #11.055949693856725
    9. distance.distance(loc1,loc2).m
    10. #11055.949693856724
    11. distance.distance(loc1,loc2).miles
    12. #6.8698486425877405
    13. #换算成不同的单位

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

    可以切换椭圆模型

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

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

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

    2.2 大圆距离

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

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

    1. from geopy import distance
    2. from geopy.distance import Distance
    3. loc1 = (31.255561, 121.480033)
    4. loc2 = (31.345561, 121.530033)
    5. distance.geodesic(loc1,loc2)
    6. #Distance(11.055949693856725)
    7. distance.geodesic(loc1,loc2)*2
    8. #Distance(22.11189938771345)
    9. distance.geodesic(loc1,loc2)+Distance(meters=1)
    10. #Distance(11.056949693856724)

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

    1. from geopy import distance
    2. distance.distance(kilometers=1).destination((31.255561,121.480033),bearing=90)

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

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

  • 相关阅读:
    spirngboot项目.mvn/wrapper/maven-wrapper.properties‘ does not exist.
    【智能家居入门2】(MQTT协议、微信小程序、STM32、ONENET云平台)
    CSS 效果 圆形里一个文字居中
    什么是链动2+1模式?如何打造高活跃的商业生态圈?
    电力系统的虚假数据注入攻击和MTD系统研究(Matlab代码实现)
    2023,软件测试人的未来在哪里?
    弹性IP(弹性公网IP)和固定IP的区别
    【2018年数据结构真题】
    Tomcat+Filebeat+logstash+ES+Kibana日志监控配置(待续)
    【源码解读(一)】EFCORE源码解读之创建DBContext查询拦截
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/132731135
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号