一.MySql不使用空间函数,简单版 1.粗算,根据场景得到一个range,计算经纬度,得到的是一个矩形区域(A),不精确,但是已经有范围这个雏形了,最容易实现的方式之一. 1 2 3 4 5 6 where latitude>y-range and latitude<y+range and longitude>x-range and longitude <x+range order by abs(longitude -x)+abs(latitude -y) limit 10;
自定义经纬度索引(非RTree.Morton Code[z order curve].Geohash的方式) Custom Indexing for Latitude-Longitude Data 网络上有一些经纬度索引的文章,讨论的方法是用Geohash.RTree.Z-Order Curve(morton Code)等算法来将经纬度由二维变为一维的索引. 这篇文章介绍一种使用二维数据索引的方式来创建经纬度索引.前半部分讨论一种自定义的.使用二维数组的方式将经纬度变为一维数据,来加快索引. 文
--通过经纬度计算两点之间的距离 create FUNCTION [dbo].[fnGetDistanceNew] --LatBegin 开始经度 --LngBegin 开始维度 --29.490295,106.486654,29.615467, 106.581515 (), ),)) Returns real AS BEGIN --转换location字段,防止字段太长.影响SQL美观 declare @LatBegin REAL declare @LngBegin REAL declare
一般来讲,GPS直接提供的坐标(B,L,H)是1984年世界大地坐标系(WordGeodetic System 1984即WGS-84)的坐标,其中B为纬度,L为经度,H为大地高即是到WGS-84椭球面的高度.而在实际应用中,我国地图采用的是1954北京坐标系或者1980西安坐标系下的高斯投影坐标(x,y,),不过也有一些电子地图采用1954北京坐标系或者1980西安坐标系下的经纬度坐标(B,L),高程一般为海拔高度h. GPS的测量结果与我国的54系或80系坐标相差几十米至一百多米,随