【发布时间】:2016-02-07 22:03:36
【问题描述】:
我正在使用带有 Postgis 的 Postgres 数据库开发一个带有 Laravel 框架的系统。数据库有一个带有几何字段(3D 点)的表。所以我需要将 3 个维度转换为 Point 对象,将 Point 对象转换为 3 个维度。
我搜索了 Laravel Postgis 库,找到了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_PointFromText('POINT(' || 1 || ' ' || 1 || ' ' || 1 || ')', 4326)
就像我在this link找到的东西
但是 Laravel 调试对我有错误:
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)
我想知道我的错误。
【问题讨论】:
标签: php postgresql laravel laravel-5 postgis