kobechan81 2019-03-12 17:20 采纳率: 28.6%
浏览 443

sql或java代码编写问题,地理坐标换算

有A、B两批名称及经纬度数据(每个名称对应一个经纬度)
A是B的子集,A集有873个点,B集大概是1万3千个点
目的是想以A集的点为中心(遍历A集的点)
查出A集任一点半径1公里内或1.5公里内是否存在B集里的点、存在多少个以及存在哪几个(B集的名称)

要求能批量得出A集所有点的结果,预期结果如下图:
图片说明

希望能同过sql、mysql或java的方式实现,求助!谢谢

  • 写回答

3条回答 默认 最新

  • weixin_43833851 2019-03-12 18:09
    关注

    最简单的搞法,通过A点和距离,反推出经纬度范围,
    比如A点是100.xxxx,40.xxxx, 反推方圆1公里的经度范围是95.xxxx---105.xxxxx,
    纬度范围是35.xxxx----45.xxxxx, 然后循环如下:
    for(A点集合){
    select count(*), group_concat(B的name) from B集合 where 经度>=95.xxxx and 经度<=105.xxxx and 纬度>=35.xxxx and 纬度<=45.xxxxx ;
    }
    反推经纬度范围的方法可以优化一下,在A的基础上加减一个偏移量是矩形范围,不是圆型范围,我只是简单打个比方

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。