我有一个表points
这是一个LINESTRING。 我有一个排在那里拥有所述列的几个问题。
我还有另外一组以字符串形式的点,我想这点追加到现有的行。 有没有办法做到这一点在MySQL不选择点作为文字,手动合并字符串然后更新points
行吗?
我有一个表points
这是一个LINESTRING。 我有一个排在那里拥有所述列的几个问题。
我还有另外一组以字符串形式的点,我想这点追加到现有的行。 有没有办法做到这一点在MySQL不选择点作为文字,手动合并字符串然后更新points
行吗?
MYSQL空间功能不包括追加LINESTRING任何解决方案,但没有,我已经尝试了你一种解决方法。
获取的价值
设置@gval =(从选择ST_AsText(路线) spatial
其中id = 5);
我命名的表为“空间”并添加一个柱为“路径”,这是数据类型的线串
通过使用替换功能和附加输入字符串您所需的纬度经度(或点)
设置@gval =取代(@gval, ')', '8.5684875 76.8520767)'); 更新spatial
设定的路线= GEOMFROMTEXT(@gval)其中id = 5;
这对我的作品好。
说我是跟踪上一个周期骑我的位置和发送纬度/经度到服务器服务器保留代表了当前点我的路线LINESTRING我想补充一点,每隔几秒钟任我游,以反映我的路线显然,作为LINESTRING生长在大小,它变得越来越低效的将其转换为文本,添加一个点,然后转换回空间数据我在想,如果有一个功能有效点直接追加到LINESTRING结束。 我希望这是有道理的?
在这种情况下,通常你会
POINT
。 LINESTRING
。 要做到这一点,看到了这个问题 。 在MySQL和PostgreSQL,你真的不想做追加到LINESTRING
每一点插入。 在MVCC数据库,通常UPDATE
荷兰国际集团一排需要重写整个行。 对于某些情况下,它可能并不重要可言,但如果你正在写100多个点的路线我不会走那么方法。
ℹ在PostGIS的,这是因为你有空间聚集是不提供给你在MySQL中,就像稍微容易ST_MakeLine
。 所以,你可以做SELECT ST_MakeLine(pt ORDER BY pointTime) FROM table GROUP BY bike_route;
。 你也有类似功能ST_AddPoint
增加了一个POINT
到LINESTRING
(在事件的路线很短,或者你不关心写重更新)。