记一次sql按经纬度计算距离

具体代码:

ROUND函数在mysql可以用来计算经纬度,代码如下:

	SELECT
			a.store_name_sfa as storeName,
			a.storeid_sfa as store_id,
			a.link_man_sfa as link_man,
			a.link_phon_sfa as link_phone,
			a.photo as image_url,
			a.district,
			a.street,
			ROUND(
        6371000  * acos(
          cos(radians(#{latitude})) * cos(radians(a.lat_sfa)) * cos(radians(a.lon_sfa) - radians(#{longitude})) +
            sin(radians(#{latitude})) * sin(radians(a.lat_sfa))
            )
                     )/1000 AS distance,
            a.address_sfa as address
            FROM
            store_base_info a
            where store_exists='0'
            HAVING distance <=3000

坐标系与经纬度知识点

:::info
WGS84坐标系:国际通用的

GCJ-02(火星坐标系):中国特有的加密坐标系

BD09坐标系:百度独有的

:::

WGS84坐标系

定义

WGS84坐标系,全称为World Geodetic System 1984,是国际上广泛使用的地球坐标系。它基于WGS84椭球体,提供全球统一的经纬度坐标系统。

应用

国际地图服务:如Google Maps(中国范围除外)、OpenStreetMap、Bing Maps、ArcGIS和Heremaps等,均采用WGS84坐标系。

GPS和北斗系统:大多数GPS和北斗芯片获取的经纬度数据均基于WGS84坐标系。

GCJ-02坐标系(火星坐标系)

定义

GCJ-02坐标系是由中国国家测绘局(现为国家自然资源部)制定的地理信息系统的坐标系统。它是在WGS84坐标系的基础上,通过特定的加密算法进行偏移处理后得到的。

应用

国内地图服务:谷歌中国地图、高德地图、腾讯地图等均采用GCJ-02坐标系,以满足国家对于地图数据的安全要求。

政府项目:许多政府机构和项目也使用GCJ-02坐标系,以确保地图数据的准确性和安全性。

BD09坐标系(百度坐标系)

定义

BD09坐标系是百度公司基于GCJ-02坐标系进一步加密得到的坐标系统。它在GCJ-02坐标系的基础上,再次应用百度自身的加偏算法,以提高地图数据的安全性和准确性。

应用

百度地图:百度地图完全采用BD09坐标系,以确保其地图数据的独特性和安全性。

:::info
其中BD09LL表示百度经纬度坐标,BD09MC表示百度墨卡托米制坐标。百度地图使用BD09LL进行定位就可以了

:::

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值