3

给出下表(位置)

+--------------------+---------------------+------+-----+---------+----------------+
| Field              | Type                | Null | Key | Default | Extra          |
+--------------------+---------------------+------+-----+---------+----------------+
| position_id        | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| vehicle_id         | int(11) unsigned    | YES  | MUL | NULL    |                |
| location           | point               | NO   |     | NULL    |                |
| gps_time           | datetime            | NO   |     | NULL    |                |
+--------------------+---------------------+------+-----+---------+----------------+

我想从位置列的点构造一个 lineString 来计算距离。

如何从位置列构造 lineString ?就像是

select vehicle_id, lineString(location) from position group by vehicle_id order by gps_time;

这是数据

select position_id,vehicle_id,astext(location),gps_time from position order by gps_time;

+-------------+------------+-----------------------------+---------------------+
| position_id | vehicle_id | astext(location)            | gps_time            |
+-------------+------------+-----------------------------+---------------------+
|           3 |          1 | POINT(44.23912 15.307647)   | 2014-11-23 06:02:17 |
|           2 |          1 | POINT(44.240063 15.307788)  | 2014-11-23 08:54:11 |
|           1 |          1 | POINT(44.23884 15.307585)   | 2014-11-23 11:50:10 |
|           4 |          1 | POINT(44.232296 15.304604)  | 2014-11-24 07:24:29 |
|           5 |          1 | POINT(44.2332 15.304803)    | 2014-11-24 07:24:39 |
|           6 |          1 | POINT(44.2332 15.304803)    | 2014-11-24 07:24:49 |
|           7 |          1 | POINT(44.23428 15.3052)     | 2014-11-24 07:24:59 |
+-------------+------------+-----------------------------+---------------------+

我想计算特定 gps_time 期间点之间的距离。即 position_id=3 的点和 position_id=2 的点之间的距离,那么结果将用 position_id=2 的点和 position_id=1 的点之间的距离计算,以此类推。

预期结果如:

+------------+------------- +--------------------+---------------------+
| vehicle_id | distance(km) | start_time         | end_time            |
+------------+------------- +--------------------+---------------------+
|          1 |          1.2 |2014-11-23 06:02:17 | 2014-11-24 07:24:59 |
+------------+------------- +--------------------+---------------------+ 

距离值(1.2)只是我心中的一个随机值。它应该从以前的点计算。

4

0 回答 0