我创建了一个地图,允许用户绘制多个标记,以便将它们存储在数据库表中。最初的计划是每个地图存储多行,如下所示:
------------------------------------
| 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,尽管它们实际上如下所示:
问题是,上面还可以吗?如果是这样,我如何将此数据转换回我能在Google地图上显示的内容?
答案 0 :(得分:3)
为什么不使用POINT数据?
INSERT INTO geoTable (mapentryid, mapid, coord) VALUES (
1, 1, GeomFromText('POINT(15 20)')
);
我总是在MySQL中使用'Well-Known Text (WKT) Format'来启用地理空间查询,它们与其他系统最兼容。
查询存储的值:
SELECT mapentryid, mapid, X(coord), Y(coord) FROM geoTable;