1

我正在使用 codeigniter 和 datamapper 来构建 API 服务(在 mysql 上),其中一部分涉及地理位置 - 但是我似乎找不到使用点数据类型的解决方法。如果我尝试插入 GeomFromText,系统会将其视为字符串。

任何人都可以帮忙吗?

干杯,马克。

4

3 回答 3

1

如 CodeIgniter 用户指南中所述:

$this->db->set();

set 函数使您能够设置插入或更新的值。

set() 将接受第三个参数 ($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 回答
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 回答
0

使用 FLOAT 作为数据库数据类型。

于 2011-07-24T12:17:51.140 回答