首页 > 解决方案 > 谷歌地图 - 在 MySQL 和 PHP 中搜索 POINTS 圈

问题描述

我有一个问题,即我需要检查给定位置(街道)是否在给定区域中。在此基础上将数据保存到数据库中:

let latLng = currentCircle.getCenter();
let circleCenter = latLng.lat() + ' ' + latLng.lng();
let radius = currentCircle.getRadius();

在此处输入图像描述

为了获得 lat 和 lng,我使用:

在此处输入图像描述

在 JS 方面,我使用 lat 和 lng 下载:

const position = googleMaps.initPlace().getGPS();
const positions = {
   lat: position.lat,
   lng: position.lng,
}

我将上述数据发送给 PHP,PHP 必须检查这些点是否在以下区域之一:

SELECT id, title, radius, ST_X(center) as lat, ST_Y(center) as lng
FROM shop_zones
WHERE ST_PointFromText(center, POINT(?, ?))

不幸的是,上述查询每次都没有返回任何内容。

提前感谢您的帮助。

标签: javascriptphpmysqlmaps

解决方案


我认为where您的 SQL 脚本中的条件不符合您的意图。

您需要找出与圆形区域相交的点。看一下st_intersects函数。这应该可以完成这项工作。


推荐阅读