如何从数据库中查出到给定gps坐标距离最近的地点

如何从数据库中查出到给定gps坐标距离最近的地点,第1张

首先我认为你应该设置一个范围,也就是说给定一个GPS坐标之后,在它周围多少公里为半径范围内的坐标先查询出来。其次,以GPS点为中心计算出来以给定半径得到的最大经度和纬度值是多少,那么很显然,最大经度是东方向上的点。最大纬度是北方向上的,反之最小经纬度。这样就确定了一个圆,然后查询出这个圆内的所有的点。再者,通过距离计算程序计算一下圆内各点到GPS点的距离,记录每个点的索引,

事实证明,这是一个相当精细的过程。

在某一时刻(假定是午夜),卫星开始发送一长串称为伪随机码的数字序列。 同样,接收机也在午夜开始发出相同的数字序列。 当卫星信号到达接收机时,数字序列的传送会比接收机发出信号的时间稍稍滞后。 美国陆军供图GPS卫星时间延迟的长度就是信号传送的时间。接收机将这一时间乘以光速就可以计算出信号传送的距离。假设信号是以直线传送的,则这一结果即为接收机到卫星的距离。 为了使这一测量法准确有效,接收机和卫星都需要可以精确到纳秒的同步时钟。为了使卫星定位系统使用同步时钟,我们需要在所有卫星以及接收机上都安装原子钟。但原子钟的价格在5-10万美元之间,对于普通消费者而言有点太贵了。 全球卫星定位系统使用了一个巧妙而有效的方案解决了这一难题。每一颗卫星上仍然使用昂贵的原子钟,但接收机使用的是经常需要调校的普通石英钟。简言之,接收机接收来自四颗或更多卫星的信号并计算自身的误差。换句话说,接收机使用的“当前时间”必须是唯一值。正确的时间值的意义在于,使接收机收到的所有信号就好像都来自太空中的单一点。这一时间值是所有卫星上原子钟的统一时间。因此接收机就可以将自身的时钟调整到这一时间值,进而使接收机的时间与所有卫星上的原子钟相同。GPS接收机就可以“免费”获得原子钟的精确度。 当测量到四颗定位卫星到您所处位置的距离时,您就可以画出相交于一点的四个球面。即使您的数字有误差,三个球面仍然可能相交,但如果您的测量有误,四个球面就不可能相交于一点。由于接收机利用自身内置的时钟来测量所有的距离,距离测量会呈现一定的比例误差。 接收机可以轻易地计算出使四个球面相交于一点所进行的必要调整。基于此,接收机需要重新设置自身的时钟以便和卫星原子钟同步。接收机只要开启就处在不断的调整中,这也意味着接收机几乎与卫星中昂贵的原子钟一样精确。 要使用距离信息进行定位,接收机还必须知道卫星的确切位置。这并不是特别难办到的事,因为卫星运行在很高的既定轨道上。GPS接收机储存有星历,其作用是告诉接收机每颗卫星在各个时刻的位置。虽然一些外在因素,如月球和太阳的引力作用,会缓慢地改变卫星运行的轨道,但美国国防部会不断监控卫星的精确位置,并把任何调整信息都作为卫星信号的一部分传送给所有的GPS接收机。 虽然这一系统工作性能不错,但错误还是会不时发生。其中一个原因是,这一测量方式是建立在一种假设上的,即无线电信号会匀速(光速)穿过大气层。事实上,地球大气层在一定程度上减慢了电磁能量的传播速度,特别是当电磁信号进入电离层和对流层时。延迟状况因您在地球上所处地点的不同而不同,这意味着很难将这一因素准确地纳入距离的计算中去。难题还在于无线电信号可能被大型物体反d回去,例如摩天大楼,这将导致接收机计算出的与卫星的距离比实际的要远。最糟的情况是,有时卫星会发送错误的星历数据,误报自己的位置。 差分GPS(DGPS)有助于纠正此类错误。其基本原理是用一个已知位置的固定接收机站来测算GPS的误差。由于机站的DGPS硬件已经知道它自己的位置,它可以很容易地计算出它覆盖范围内的接收机的误差。该机站会向所在区域内所有装配DGPS的接收机发送无线电信号,为这一区域提供信号纠正信息。一般而言,能获得这些纠正信息使DGPS接收机比普通的接收机要精确得多。 GPS接收机最基本的功能就是接收来自至少四颗卫星的信号,并且将这些信号中的信息与电子星历的信息相结合以计算出接收机在地球上的位置。 一旦接收机计算完毕,它就可以告诉您它目前所处位置的经度、纬度和海拔(或与之类似的测量信息)。为了使导航更加人性化,大多数接收机会把这些原始数据标注在存储于内存中的地图文件上。 Garmin 供图StreetPilot II,附带驾驶员用的内置地图的GPS接收机您可以使用接收机内存中存储的地图,也可以把接收机连接到一台内存中存有更多详尽地图的计算机,或者您直接买一张所在区域的详细地图,再根据接收机提供的经度和纬度信息找到自己的位置。部分接收机可以让您将详细的地图下载到内存中,或通过插件式地图存储装置提供详细的地图。 标准的GPS接收机不仅可以把您的确切位置标注在地图上,也可以把您移动的路线显示在地图上。如果您让接收机一直开着,它就会一直保持与GPS卫星之间的通讯联络,这样您就能看到您位置的变化情况了。

利用GPS测距只能是实测,即从甲点走到乙点,可以记录并报告甲乙两点之间的距离。

要测量两点间的直线距离,用不着GPS,一般电子地图上都有测距工具,打开后,点击两点,瞬间可以得到直线距离,比GPS更准确、更简单。

如何用matlab批量算gps地点间的距离 代码

可以使用norm来做,比如:% By lyqmath

clc; clear all; close all;

p1 = [0 0];

p2 = [1 1];

norm(p1-p2)结果

ans = 14142>> 就是这两点的欧式距离,三维等情形类似处理。

以上就是关于如何从数据库中查出到给定gps坐标距离最近的地点全部的内容,包括:如何从数据库中查出到给定gps坐标距离最近的地点、GPS接收机如何测量距离、如何使用手机gps定位两点之间的直线距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10090916.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存