javascript - 谷歌地图 - 在 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(?, ?))
不幸的是,上述查询每次都没有返回任何内容。
提前感谢您的帮助。
解决方案
我认为where
您的 SQL 脚本中的条件不符合您的意图。
您需要找出与圆形区域相交的点。看一下st_intersects函数。这应该可以完成这项工作。
推荐阅读
- bison - 如何使“TryCompile”与 Scons 4.x 中的 yacc 源文件一起工作?
- d3.js - 我可以使用 Vegalite 在绘图中添加移动刻度或轴吗?
- c# - 方法不会全局更改值,而只会更改内部方法
- python - 在 Python 中为 dovecot 创建基于 Unix 套接字的身份验证服务器
- c# - 如何突出显示 Amazon Polly 中的音频播放词
- excel - 根据公式打开 Excel 工作簿
- excel - 如何将“If and vlookup”组合成1个公式
- node.js - 使用 typescript 编译问题 node.js,类型不匹配。heartBeatIntervalId 是数字类型,但 clearInterval 需要节点超时类型
- react-native - 反应原生区间,无法正确处理
- php - 代码点火器 URL 更改