1

私は codeigniter と datamapper を使用して (mysql で) API サービスを構築していますが、その一部には地理位置情報が含まれていますが、ポイント データ型を使用するための回避策が見つからないようです。GeomFromText を挿入しようとすると、システムはそれを文字列として扱います。

誰でも助けることができますか?

乾杯、マーク。

4

3 に答える 3

1

試す

CREATE TABLE Points ( 
    ID INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    location POINT NOT NULL, 
    SPATIAL INDEX(location) 
) ENGINE= MYISAM

CodeIgniter では:

$this->db->set("location",'geomfromtext("POINT(30.2 40.3)")',false);
$this->db->insert("Points");

Datamaper を使用した CodeIgniter で (ドキュメントの「更新での数式の使用」のヘルプを参照してください)...

$point = new Point();
$point->update('location','geomfromtext("POINT(30.2 40.3)")',FALSE);
于 2011-07-19T17:00:03.350 に答える
1

CodeIgniter ユーザーガイドで説明されているように:

$this->db->set();

set 関数を使用すると、挿入または更新の値を設定できます。

set() は 3 番目のパラメーター ($escape) を受け入れます。これは、FALSE に設定されている場合にデータがエスケープされるのを防ぎます。

$this->db->set('geo', "ST_GeomFromText('{$data['geo']}')", FALSE);
$this->db->insert('tableName');

return $this->db->insert_id() ? $this->db->insert_id() : FALSE;
于 2015-04-09T21:34:36.217 に答える
0

データベースのデータ型として FLOAT を使用します。

于 2011-07-24T12:17:51.140 に答える