MySQL空间函数计算距离,并关联表的查询,子查询 的原创SQL,单位:米
SELECT b.longitude,b.latitude,b.distance,sm.monitoring_id,
sm.monitoring_code,sm.channel,sm.monitoring_area
FROM (SELECT ssi.longitude,ssi.latitude ,ssi.site_code,
ST_Distance(
ST_GeomFromGeoJSON (CONCAT('{"type": "Point", "coordinates": [',ssi.longitude,',',ssi.latitude,']}')),
ST_geomFromGeoJSON('{"type":"LineString","coordinates":[[116.06712341308594,37.98696319284105],[116.05042934417723,37.97184241275072],[116.04969978332518,37.9700155304247],[116.0499143600464,37.959797683792324],[116.05021476745605,37.95370690025965],[116.0478115081787,37.945889654741386]]}')
) AS distance
FROM sys_site_information ssi
WHERE ssi.latitude > 0) AS b JOIN `sys_monitoring` sm ON b.site_code= sm.site_code
HAVING b.distance < 50