附近设备显示

来了个新需求,获取当前位置附近几百米范围内的设备,由于这边是APP端需要加载数据,也就是需要我这边根据当前坐标位置重新计算出来周围几百米内的设备信息了。百度了一波,看一个老哥写的,感觉很有道理的样子,拿来试了试,上代码。

@ResponseBody
	@RequestMapping("/getMap1")
	public List<Umap> getMap1(){
	//当前位置坐标
		Double latitude = 117.065719;
        Double longitude = 36.707094;
 
        Double degree = (24901 * 1609) / 360.0;
        double raidusMile = 500;//筛选的范围,以米为单位
 
        Double dpmLat = 1 / degree;
        Double radiusLat = dpmLat * raidusMile;
        Double minLat = latitude - radiusLat;
        Double maxLat = latitude + radiusLat;
 
        Double mpdLng = Math.abs(degree * Math.cos(latitude * (3.1415926535898 / 180)));
        Double dpmLng = 1 / mpdLng;
        Double radiusLng = dpmLng * raidusMile;
        Double minLng = longitude - radiusLng;
        Double maxLng = longitude + radiusLng;
        List<Umap> list = mapMapper.getFiveMeters(minLat,maxLat,minLng,maxLng);
		return list ;

我的SQL

@Select(" select * from map where (y>=#{minLng} and y<=#{maxLng}) and (x>=#{minLat} and x<=#{maxLat} ) ")
	List<Umap> getFiveMeters(@Param("minLat")Double minLat,@Param("maxLat")Double maxLat,@Param("minLng")Double minLng,@Param("maxLng")Double maxLng);

亲测,有效果,感觉数据很对,就是不知道是不是真的,应该是真的,不信你试试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值