怎麼存位置?我建議是多多用 command line 了解一下特性,再著手使用。例如說要 存一個長方形,可以先這樣看:
mysql> SELECT AsText(Envelope(GeomFromText('LineString(1 1,5 5)')));
+-------------------------------------------------------+
| AsText(Envelope(GeomFromText('LineString(1 1,5 5)'))) |
+-------------------------------------------------------+
| POLYGON((1 1,5 1,5 5,1 5,1 1)) |
+-------------------------------------------------------+
1 row in set (0.00 sec)
這個長方形的端點兩端的座標是 1 1 和 5 5,用 Envelope 封起來,就會變成一個長 方形,四個點的座標就是 SELECT 出來的結果。
當然也可以直接存
GeomFromText('POLYGON((1 1,5 1,5 5,1 5,1 1))')
加上 AsText 是把結果給人看,要存到 db 裡面,就把 AsText 拿掉。
點 2 2 有沒有在長方形裡面?
mysql> SELECT MBRContains(Envelope(GeomFromText('LineString(1 1,5 5)')),GeomFromText('POINT(2 2)')) AS ret;
+------+
| ret |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
點 8 8 沒有沒有在長方形裡面?
mysql> SELECT MBRContains(Envelope(GeomFromText('LineString(1 1,5 5)')),GeomFromText('POINT(8 8)')) AS ret;
+------+
| ret |
+------+
| 0 |
+------+
1 row in set (0.00 sec)