1

我创建了一个地图,允许用户绘制多个标记,以便将它们存储在数据库表中。最初的计划是在一张地图上存储多行,如下所示:

------------------------------------
| mapentryid | mapid | Long | Lat  | 
------------------------------------
| 1          | 1     | X.XX | X.XX |
| 2          | 1     | X.XX | X.XX |
| 3          | 1     | X.XX | X.XX |
| 4          | 2     | X.XX | X.XX |
| 5          | 2     | X.XX | X.XX |
| 6          | 2     | X.XX | X.XX |
| 7          | 2     | X.XX | X.XX |
------------------------------------

但我后来发现你可以在 MySQL 中存储multilinestring,这听起来很适合我想要的(我认为?)

我可以使用以下 SQL 查询格式正确插入数据:

INSERT INTO table (LatLng)
VALUES (
         MultiLineString(
            LineString(Point(x),Point(y)),
            LineString(Point(x),Point(y)),LineString(Point(x),Point(y))
       )

这添加了多行字符串 OK,尽管它们实际上如下所示:

phpmyadmin 截图

问题是,上面的可以吗?如果是这样,我怎样才能将这些数据转换回我能够在谷歌地图上显示的东西?

4

1 回答 1

3

为什么不使用 POINT 数据?

INSERT INTO geoTable (mapentryid, mapid, coord) VALUES (
    1, 1, GeomFromText('POINT(15 20)')
);

我总是在 MySQL 中使用“众所周知的文本 (WKT) 格式”进行地理空间查询,它们与其他系统最兼容。

要查询存储的值:

SELECT mapentryid, mapid, X(coord), Y(coord) FROM geoTable;
于 2011-06-20T10:49:47.147 回答