Php Laravel Postgis生成点对象

Php Laravel Postgis生成点对象,php,postgresql,laravel,laravel-5,postgis,Php,Postgresql,Laravel,Laravel 5,Postgis,我正在使用Postgres数据库和Postgis开发一个具有Laravel框架的系统。数据库有一个带有几何字段(3D点)的表。所以我需要将三维转换为点对象,将点对象转换为三维 我搜索了Laravel Postgis库,找到了,但它只是针对2D点开发的,不支持3D点。因此,我决定直接使用或在php中开发一个转换函数,以便在Laravel中使用 我尝试直接插入新数据的一些代码: $arr = ['geometry' => "ST_PointFromText('POINT(' || " . In

我正在使用Postgres数据库和Postgis开发一个具有Laravel框架的系统。数据库有一个带有几何字段(3D点)的表。所以我需要将三维转换为点对象,将点对象转换为三维

我搜索了Laravel Postgis库,找到了,但它只是针对2D点开发的,不支持3D点。因此,我决定直接使用或在php中开发一个转换函数,以便在Laravel中使用

我尝试直接插入新数据的一些代码:

$arr = ['geometry' => "ST_PointFromText('POINT(' || " . Input::get('Latitude') . " || ' ' || " . Input::get('Longitude') . " || ' ' || " . Input::get('Altitude') . " || ')', 4326)"];
Location::where('id','1')->update($arr);
$arr变量的初始化示例如下

ST|u PointFromText('POINT('1 | |''1 | | |''1 | |''),4326)

这就像我在里面发现的一样

但是Laravel debug给我带来了错误:

PDOException in Connection.php line 384: SQLSTATE[XX000]: Internal error: 7 ERROR: parse error - invalid geometry HINT: "ST" <-- parse error at position 2 within geometry

SQLSTATE[XX000]: Internal error: 7 ERROR: parse error - invalid geometry HINT: "ST" <-- parse error at position 2 within geometry (SQL: update "DBLocation" set "geometry" = ST_PointFromText('POINT(' || 1 || ' ' || 1 || ' ' || 1 || ')', 4326) where "id" = 1)

Connection.php第384行中的PDOException:SQLSTATE[XX000]:内部错误:7错误:解析错误-无效几何体提示:“ST”我不确定参数化查询的语法,但应该是这样的:

ST_SetSRID(ST_MakePoint(%, %, %), 4326);

有三个参数:
经度
纬度
高度
,按此顺序排列

我认为您没有注意到报告的错误。这个错误与解析ST有关。我是说ST_PointFromText是构造几何体最容易出错、效率最低的方法,并建议使用常规方法(避免报告的错误)。然而,我不确定这应该如何适应拉威尔。