MySQL空間數(shù)據(jù)庫

提到空間數(shù)據(jù)庫,首先想到的一定是Esri公司的ArcSDE(SDE即Spatial Database Engine,空間數(shù)據(jù)庫引擎),ArcSDE主要支持的數(shù)據(jù)庫包括Oracle,SQL Server,IBM DB2。功能好,性能好,但是價格也好。
國內(nèi)很多大型活互聯(lián)網(wǎng)公司已經(jīng)轉(zhuǎn)向MySql陣營。對于有實力的大公司,使用開源的MySql,可以針對自己的業(yè)務(wù)對MySql源碼進行修改及優(yōu)化。對于業(yè)務(wù)量不大的初創(chuàng)公司,直接使用開源MySql,PostgreSQL等數(shù)據(jù)庫,也可節(jié)約成本,未來數(shù)據(jù)庫擴展也有很多可參考的資料。
PostgreSQL由于具備PostGIS擴展而在開源GIS中有廣泛地應(yīng)用,可視化工具包括pgAdmin、Quantum GIS(類似ArcGIS Desktop)
從MySQL4.1開始,也對空間數(shù)據(jù)庫進行了支持,以下是簡單的說明和測試:

1.常用使用場景
矩形查詢:
適合智能手機、網(wǎng)頁端高效展示屏幕范圍內(nèi)數(shù)據(jù)。通過API獲取顯示屏4角的坐標(biāo)點,順序連接生成矩形,空間數(shù)據(jù)庫提供查詢矩形范圍內(nèi)坐標(biāo)功能。
圓型查詢:
根據(jù)當(dāng)前所在位置為中心點,根據(jù)給定的里程數(shù)為半徑生成圓形,搜索圓形范圍內(nèi)的數(shù)據(jù)。

2.MySql支持的類型
點 POINT(15 20)
線 LINESTRING(0 0, 10 10, 20 25, 50 60)
面 POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))
多個點 MULTIPOINT(0 0, 20 20, 60 60)
多個線 MULTILINESTRING((10 10, 20 20), (15 15, 30 15))
多個面 MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5)))
集合 GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20)),簡稱GEOMETRY,可以放入點、線、面。

3.測試
a.以存儲坐標(biāo)點為例

DROP TABLE IF EXISTS points;
CREATE TABLE `points` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL DEFAULT '',
  `location` point NOT NULL,
  PRIMARY KEY (`id`),
  SPATIAL KEY `sp_index` (`location`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

b.插入測試數(shù)據(jù)

# 天安門
INSERT INTO points VALUES (1,'aaaa',POINT(116.397389,39.908149));
# 頤和園
INSERT INTO points VALUES (2,'bbbb',POINT(116.273106,39.992634));

c.多邊形查詢
多邊形查詢 起始點與終點為同一點 以靈境胡同、燈市口、崇文門、宣武門組成多邊形






d.查詢
多邊形查詢 起始點與終點為同一點

# 定義多邊形
SET @rect = CONCAT('POLYGON((116.373871 39.915786,116.417645 39.916444,116.41816 39.900841,116.374214 39.900182,116.373871 39.915786))');
# 使用變量
select name,X(location),Y(location),Astext(location) from points where INTERSECTS( location, GEOMFROMTEXT(@rect) ) ;

e.查詢結(jié)果


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容