处理地图数据时,经常需要用到两个地理位置间的距离。比如A点经纬度(110.0123, 23.32435),B点经纬度(129.1344,25.5465),求AB两点之间的距离。我们可以用haversine()函数求出距离结果。Python版本的haversine()如下所示:

    1. from math import radians, cos, sin, asin, sqrt
    2. def haversine(lon1, lat1, lon2, lat2): # 经度1,纬度1,经度2,纬度2 (十进制度数)
    3. """
    4. Calculate the great circle distance between two points
    5. on the earth (specified in decimal degrees)
    6. """
    7. # 将十进制度数转化为弧度
    8. lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
    9. # haversine公式
    10. dlon = lon2 - lon1
    11. dlat = lat2 - lat1
    12. a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
    13. c = 2 * asin(sqrt(a))
    14. r = 6371 # 地球平均半径,单位为公里
    15. return c * r * 1000

Python计算地图上两点经纬度间的距离的更多相关文章

  1. 计算地图上两点间的距离PHP类

    计算地图上两点间的距离,使用的是谷歌地图 <?php class GeoHelper { /** * @param int $lat1 * @param int $lon1 * @param i ...

  2. C# 计算地图上某个坐标点的到多边形各边的距离

    在判断了某个坐标点是否在多边形内后,还有另一个需求就是当我这个坐标点在多边形外部时,我需要计算这个坐标点到多边形的距离是否在一个允许的误差范围内 通过两个位置的经纬度坐标计算距离(C#版本) 转自:h ...

  3. 利用JS实现的根据经纬度计算地球上两点之间的距离

      最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距 ...

  4. mysql 下 计算 两点 经纬度 之间的距离(转)

    公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...

  5. mysql 下 计算 两点 经纬度 之间的距离

    公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...

  6. mysql 下 计算 两点 经纬度 之间的距离 计算结果排序

    根据经纬度计算距离公式 公式 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung ...

  7. mysql 计算两点经纬度之间的距离含具体sql语句

    mysql距离计算,单位m,以及排序 lon 经度 lat 纬度 一般地图上显示的坐标顺序为,纬度在前(范围-90~90),经度在后(范围-180~180) 首先新建一张表,里面包含经纬度 SET F ...

  8. mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句

    文章转载地址 http://blog.sina.com.cn/s/blog_7bbfd5fd01017d1e.html 感谢作者. 在原文的基础上,我新增了sql语句,方便大家理解 mysql距离计算 ...

  9. matlab练习程序(地图上画经纬度)

    需要看下生成的数据在地球上的经纬度具体位置. 投影为墨卡托投影.   clear all; close all; clc; load coast; a=load('out.txt'); %自己的经纬度 ...

随机推荐

  1. 动态加载图片的Adapter

    package com.example.cc.ecustapp.Adapter; import android.app.Activity;import android.content.Context; ...

  2. js 正则表达式 验证小数点后几位

    function IsFloatByBit (value, state, bit) {             if (state == false) {                 var re ...

  3. 飞思卡尔烧写工具mfgtools的使用

    MFGTool是飞思卡尔提供的烧写工具,使用起来非常方便.但是,在使用MFGTool有几点是需要注意的,否则就会在烧写过程中遇到一些问题: 1.在使用MFGTool前,文件cfg.ini 和 UICf ...

  4. 信号signal编号及意义及一般处理

    SIGQUIT:停止 SIGILL:illegal instruction SIGABRT:Abort SIGFPE:Float point exception SIGPIPE:Broken pipe ...

  5. MapReduce实战(四)倒排索引的实现

    需求: 以上三个文件,用MapReduce进行处理,最终输出以下格式: hello c.txt-->2 b.txt-->2 a.txt-->3jerry c.txt-->1 b ...

  6. JVM参数MetaspaceSize的误解

    前言 昨天谢照东大神在群里提出一个问题:怎么查看Metaspace里具体包含的是什么,起因是他的某个服务设置了-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=5 ...

  7. Tuning 15 Application Tuning

    oracle 是经过多年研发的, 通用的, 质量很高, 而application 是为客户定制的, 一次性的, 质量可能会出问题. 数据库的 move 的含义, 是将老表copy到新的表, 然后将新表 ...

  8. cocos2dx-是男人就坚持20s 练手项目

    前言 前段时间心血来潮看了下app游戏方面的东西 ,对比了下各种技术和市场招聘情况,赶脚cocos2dx在2D游戏方向还算是大有所为,遂找了几个基础教程看看了解了解.并附上一个简单demo作为成果 准 ...

  9. <!>表格语法

    <table aling=left>...</table>表格位置,置左 <table aling=center>...</table>表格位置,置中 ...

  10. java算法-数学之美一

    巧用数学的思想来解决程序算法问题,这样的代码如诗般优美.通过数学思想来看问题,也能将程序简单化.“斐波那契数列”对于java程序员来说一定不陌生.当然这个问题的解决方案也有很多.用一个例子说明数学思想 ...