在python和mysql的圆内获取ID

问题描述

我有两个点A(lat1,lng1)和B(lat2,lng2),我想在这两个点内获取MysqL表的所有ID(A和B为圆的直径)。 我怎样才能做到这一点?我有点卡住 非常感谢你 see this image here

解决方法

例如,我有两个点要在这两个定义的点中搜索点。我计算了这两个点之间的距离,然后除以2得到半径。中心的纬度=(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