zoukankan      html  css  js  c++  java
  • [转]关于两个坐标点的距离的计算问题

    客户端上传当前地理位置(x.y),保存在服务端数据库中 
    客户端根据地点向服务端查询下载自己周围XXX米的数据 
    问题:这个XXX米如何计算?经纬度是(x,y) 
    如果数据库中以这两个值来计算距离然后筛选的话,太不现实了 ,咋办 ?

    画圆啊,取近似值,例如,我们说的附近100米,是一个圆形的概念,但是在数据库中计算的时候我们可以计算纵横坐标在左右前后100米就OK了.这样一定会是一个正方形,不过这点误差一般不会有问题,因为经纬度本身就有误差啊!~这样就不用计算了,只要经纬度分别在正负100米之内就OK了啊(要换算成经纬度来计算的哦!~)

    地球上任两点间距离公式: 
    地球上任两点,其经度分别为A1、A2(E正,W负),纬度分别为B1、B2(N正,S负)。
    令A0=(A1-A2)÷2,B0=(BI-B2)÷2
    f=√sinB0×sinB0+cosB1×cosB2×sinA0×sinA0
    则两点间空间直线距离=2fR
    说明:E、W、N、S=东西南北;R=地球半径;√=根号;∏=圆周率。
    代入公式自己算吧

    如何计算两点间距离

    比如:点A的经度为11695400,纬度为3995400。点B的经度为11695300,纬度为3995300。
    公式:两点间距离 = [ (A点经度 - B点经度)^2 + (A点纬度 - B点纬度)^2 ] ^ (1/2) = [ (11695400 - 11695300)^2
    + (3995400 - 3995300)^2 ] ^(1/2) =(10000+10000) ^ (1/2) =141米
    公式说明:加法 + ,减法 - ,乘法 *,除法 /,幂运算 ^(1/2)表示平方根 ^2表示平方。

    适用范围:未加密经纬度/加密经纬度

    深入研究推荐:http://www.movable-type.co.uk/scripts/latlong.html

  • 相关阅读:
    SQL中Group By的使用
    sqlserver中distinct的用法(不重复的记录)
    ASP.NET控件的ID,ClientID,UniqueId的区别
    四大线程池的简单使用
    Dex文件方法数超过65536怎么破?
    Context的正确使用
    dialog的各类显示方法
    JAVA小记(一)
    Horspool和BM算法解析
    安卓中Canvas实现清屏效果
  • 原文地址:https://www.cnblogs.com/ygm900/p/2983817.html
Copyright © 2011-2022 走看看