欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql 拿指定经纬度与数据库多条经纬度进行距离计算

程序员文章站 2022-05-04 18:50:13
...

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

SELECT
	store_id,
	lng,
	lat,
	ROUND(
		6378.138 * 2 * ASIN(
			SQRT(
				POW(
					SIN(
						(
							22.299439 * PI() / 180 - lat * PI() / 180
						) / 2
					),
					2
				) + COS(22.299439 * PI() / 180) * COS(lat * PI() / 180) * POW(
					SIN(
						(
							114.173881 * PI() / 180 - lng * PI() / 180
						) / 2
					),
					2
				)
			)
		) * 1000
	) AS juli
FROM
	store_info
HAVING
	juli > 500
ORDER BY
	juli DESC
LIMIT 100

SELECT
    id,address,
    longitude,
    latitude,
    ROUND(
        6378.138 * 2 * ASIN(
            SQRT(
                POW(
                    SIN(
                        (
                            36.6528865730 * PI() / 180 - latitude * PI() / 180
                        ) / 2
                    ),
                    2
                ) + COS(36.6528865730 * PI() / 180) * COS(latitude * PI() / 180) * POW(
                    SIN(
                        (
                            117.0733427689 * PI() / 180 - longitude * PI() / 180
                        ) / 2
                    ),
                    2
                )
            )
        ) * 1000
    ) AS juli
FROM
    eleme_shops
ORDER BY
    juli

转载于:https://my.oschina.net/u/574928/blog/742501