gpt4 book ai didi

php - laravel(lumen) 查询中的 Postgis ST_DWithin 函数

转载 作者:行者123 更新时间:2023-11-29 13:43:08 26 4
gpt4 key购买 nike

我发现 laravel(lumen) 查询生成器中的 postgis 函数存在问题。

流明版本:5.6

Postgres:9.6.9 与 postGIS

我有一个有效的代码:

$sql = "ST_DWithin(location ,'POINT($lat $lon)', $distance)";
$query->whereRaw($sql);

这可行,但我想通过参数绑定(bind)传递参数:

$sql = "ST_DWithin(location ,'POINT(? ?)', ?)";
$query->whereRaw($sql, [$lat, $lon, $distance]);

第一眼看上去不错,但它返回了一个错误:
参数编号无效:未定义参数(SQL:从“my_table”中选择 *,其中 ST_DWithin(位置,'POINT(123 123)',1000)

我尝试了其他组合并且有效:

$point = 'POINT($lat $lon)';
$sql = "ST_DWithin(location ,?, ?)";
$query->whereRaw($sql, [$point, $distance]);

所以问题似乎出在 POINT 函数上

最佳答案

此处几何应作为 WKB 而不是 WKT 格式传递。

select * from "my_table" where ST_DWithin(location ,ST_GeomFromText('POINT(123 123)') , 1000)

希望这会有所帮助。

关于php - laravel(lumen) 查询中的 Postgis ST_DWithin 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52399313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com