问题点: 引用错误
解决办法: 使用正常的引用方式
from mysql_util import mysql_util
需求:已知当前位置,查找附近10km内的所有站点
效果应该是地图上有一个圆形的范围,但是这种思路只想到对每条记录,去进行遍历,跟数据库中的每一个点进行距离计算,当距离小于500米时,认为匹配。这样做确实能够得到结果,但是效率极其低下,因为每条记录都要去循环匹配n条数据,其消耗的时间可想而知。
看到网上有个思路:利用我们想要得到圆的外接正方形,然后拿正方形的经纬度范围去搜索数据库。
# 确定查询经纬度范围
def __get_area(latitude, longitude, dis):
"""
确定查询经纬度范围
:param latitude:中心纬度
:param longitude:中心经度
:param dis:半径
:return:(minlat, maxlat, minlng, maxlng)
"""
r = 6371.137
dlng = 2 * math.asin(math.sin(dis / (2 * r)) / math.cos(latitude * math.pi / 180))
dlng = dlng * 180 / math.pi
dlat = dis / r
dlat = dlat * 180 / math.pi
minlat = latitude - dlat
maxlat = latitude + dlat
minlng = longitude - dlng
maxlng = longitude + dlng
return minlat, maxlat, minlng, maxlng