前台传经纬度字符串该如何查询经纬度在该范围内的数据
前台传过来一个"50-100,30-40;10-20,60-80"这样的字符串,-号是范围,逗号隔开的是经度和纬度,分号隔开的是多组经纬度,数据库中字段为lng,lat,如何进行字符串分割查询经纬度分别在对应范围内的数据
首先是到了后台,你需要把前端传的字符串用 split(';') 分割一下,然后在对每个字符串进行 split(',') 的分割, 再对结果进行 split('-') 的分割。分割后的效果可能就是这样的。
50,100 30,40
10,20 60,80
怎么存储都可以,只要能存进去就好了
这只是数据的前期处理。然后就是通过写动态 sql,达到这样的效果 (t.lng >= 50 and t.lng <= 100 and t.lat >= 30 and t.lat <= 40) OR (t.lng >= 10 and t.lng <= 20 and t.lat >= 60 and t.lat <= 80)。需要用到 foreach 标签
String str = "50-100,30-40;10-20,60-80";
List<List<Integer>> list = new ArrayList<>();
for (String str1 : str.split(";")) {
List<Integer> subList = new ArrayList<>(4);
for (String str2 : str1.split(",")) {
for (String str3 : str2.split("-")) {
subList.add(Integer.parseInt(str3));
System.out.printf("%s ", str3);
}
}
list.add(subList);
System.out.println();
}
/*
50 100 30 40
10 20 60 80
*/
做两个split就好啦
let res =[]
let str = '50-100,30-40;10-20,60-80'
arrs =str.split(';')
arrs.forEach(item=>{ res.push({lng:item.split(',')[0],lat:item.split(',')[1]}) })
console.log(res)
地图的话,你要画一个正方形去圈地点
代码补充在后面了
字符串spilt分割不行吗?
你是真比较傻啊
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y