Laravel Postgis генерирует объект Point

Я разрабатываю систему с фреймворком Laravel, используя базу данных Postgres с Postgis. В базе данных есть таблица с полем геометрии (3D Point). поэтому мне нужно преобразовать 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)

Это как то, что я нашел в эта ссылка

Но отладчик 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)

Я хочу знать свою ошибку.

0

Решение

Я не уверен в синтаксисе параметризованных запросов, но он должен выглядеть примерно так:

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

с тремя параметрами: Longitude, Latitude, Altitude в этой последовательности!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]