如何使用DataMapper的一个点或几何类型(笨)(How to use a Point or G

2019-09-28 01:35发布

我使用笨和DataMapper的构建API服务(在MySQL),并且它的部分涉及地理位置 - 但是我似乎无法找到一种解决方法使用的点数据类型。 如果我尝试插入GeomFromText,系统会将其作为一个字符串。

任何人都可以帮忙吗?

干杯,马克。

Answer 1:

尝试

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

在笨:

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

在用笨Datamaper(请参阅文档中的“使用更新公式”的帮助)...

$point = new Point();
$point->update('location','geomfromtext("POINT(30.2 40.3)")',FALSE);


Answer 2:

由于CodeIgniter用户指南中解释说:

$this->db->set();

设置功能使您能够插入或更新设置值。

集()将接受第三个参数($逃逸),这将阻止如果设置为false转义数据。

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

return $this->db->insert_id() ? $this->db->insert_id() : FALSE;


Answer 3:

使用float作为数据库的数据类型。



文章来源: How to use a Point or Geometry type in Datamapper (codeigniter)