• 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)

  • 相关阅读:
    管理文件系统
    17【redux】
    365天深度学习 | 第7周:咖啡豆识别
    设计模式:享元模式案例
    数据库系统原理与应用教程(038)—— MySQL 的索引(四):使用 EXPLAIN 命令分析索引
    【Netty】第3章-Java NIO 编程
    接雨水问题
    公务员备考 (十八) 申论
    GPT-4并非世界模型,LeCun双手赞同!ACL力证LLM无法模拟真实世界
    GCC Rust获批将被纳入主线代码库,或将于GCC 13中与大家见面
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/132731135