python - 用python和mysql在圈内获取id
问题描述
我有两个点 A(lat1,lng1) 和 B(lat2,lng2) ,我想在这两个点内获取 MySQL 表的所有 ID(A 和 B 作为圆的直径)。我怎样才能做到这一点?我有点卡住了,非常感谢 在这里看到这张图片
解决方案
例如,我有两个点要在这两个定义的点内搜索点。我计算这两个点之间的距离并除以二得到半径。中心纬度 = (lat_point1 + lat_point2)/2 和经度相同。然后我从这个中心搜索半径内的所有点。
SET center = ST_GeomFromText( 'POINT(35.322825 139.52769)', 4326 ); #center between spot_1 and 2
SET spot_1 = ST_GeomFromText( 'POINT(35.30633 139.50644 )', 4326 );
SET spot_2 = ST_GeomFromText( 'POINT(35.33932 139.54894 )', 4326 );
SELECT id, lat, lng, ROUND(ST_Distance(geometry, center, 'kilometre'), 2) FROM points where ST_Distance(spot_2 ,geometry, 'kilometre') <=radius
推荐阅读
- python - 是否可以将以一种方式堆叠的 Python 数组重塑为另一种堆叠类型?
- ghostscript - 重新调整整个 EPS 文件帧边界
- reactjs - React 元素未呈现/React 设置问题
- javascript - 数据未保存在数据库中
- java - 为什么在扩展自定义 toast 消息时附加到根 ViewGroup?
- python - 如何在python中用字符串替换字符串
- python - setup.py 如何指定我依赖可选依赖项?
- c# - 将滑动按钮面板添加到 DataGrid 行/单元格
- node.js - React / Node / Express 页面在某些 iphone 上给出 404
- php - .htaccess 中的 RewriteRule 指令含义