欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C#打造一個(gè)開(kāi)源webgis(二)空間數據庫

空間數據庫特點(diǎn)

空間數據庫,是為了存儲和分析空間數據的,也有一些GIS系統采用空間文件來(lái)實(shí)現,如mapinfo、shape文件格式,但是空間數據庫有著(zhù)其特有的優(yōu)勢,其實(shí)基本也就數據庫系統與文件系統的特點(diǎn)比較:

1、數據庫設計時(shí)面向數據模型對象,數據庫設計的基礎是數據模型。

2、數據庫系統的數據冗余度小、數據共享度高。

3、數據庫系統的數據和程序之間具有較高的獨立性。

4、數據庫系統通過(guò)DBMS進(jìn)行數據安全性和完整性的控制。

5、數據庫中數據的最小存取單位是數據項。

簡(jiǎn)單舉個(gè)例子,實(shí)現數據庫的多表查詢(xún),一句sql搞定的問(wèn)題,換成文件格式處理就麻煩多了。

然而,那也只是簡(jiǎn)單的數據庫,空間數據庫多了空間信息存儲與分析能力,為簡(jiǎn)單的屬性信息,打上了地理維度的標簽,就此使得它具有了質(zhì)的區別。

常見(jiàn)空間數據庫及PostgreSQL

目前常見(jiàn)的空間數據庫有Oracle Spatial、MS Server(2008或以上)、postgreSQL(postGis)、mysql、sqlite Spatial,其中Oracle Spatial、MS Server(2008或以上)功能強大,但是收費昂貴,mysql、sqlite Spatial免費,但是空間處理能力比較弱,綜合比較開(kāi)源的postgreSQL(postGis)最好,很多GIS項目對此有廣泛支持,在本系列選擇它。 

PostgreSQL的下載地址為:http://www.postgresql.org/,下載安裝后有個(gè)向導程序建議你安裝一些插件,勾選PostGis,其它的可以自行考慮是否勾選。其實(shí)PostGis是PostgreSQL的空間插件,就像是Oracle Spatial是Oracle的插件一樣。

當安裝成功之后,你會(huì )發(fā)現,它給你安裝了數據庫管理客戶(hù)端pgAdmin(當然你不喜歡或者用不習慣你可以用回navicat),左邊目錄樹(shù)展開(kāi)如下:

空間查詢(xún)

其中cell_region、cellcover_region、site_font_points是我用postGis上傳shape文件到PostgreSQL時(shí)生成的表,其中spatial_ref_sys是自動(dòng)生成了,記錄了空間數據和屬性數據的關(guān)聯(lián)。好了,我們試著(zhù)用用它的空間查詢(xún)能力: 

well done,數據出來(lái)了,代碼很好理解,ST_Within是PG自帶的空間包含函數,意思是查詢(xún)cellcover_region面圖層包含gid為1的點(diǎn)的記錄。在此基本大功告成了。

C#調用

然而,既然說(shuō)到C#打造,怎么都要給個(gè)C#調用的樣例吧?在此我們要借用Npgsql,搜索之并下載,然后新建一個(gè)winform程序,把以下文件拷貝進(jìn)去并添加引用(提醒一下:可能分開(kāi)在不同目錄,當初我就是沒(méi)有添加Mono.Security.dll,搞到編譯不了):

然后測試代碼:

  1. private void TryQuery()
  2. {
  3. try
  4. {
  5. // PostgeSQL-style connection string
  6. string connstring = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};", "localhost", "5432", "postgres", "sa", "postgis20");
  7. // Making connection with Npgsql provider
  8. NpgsqlConnection conn = new NpgsqlConnection(connstring);
  9. conn.Open();
  10. // quite complex sql statement
  11. // data adapter making request from our connection
  12. //string sql = "SELECT * from cellcover_region";
  13. string sql = "SELECT a.* FROM public.cellcover_region as a, site_font_point as b where b.gid=1 and ST_Within(b.geom,a.geom)";
  14. NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql, conn);
  15. // i always reset DataSet before i do
  16. // something with it.... i don't know why :-)
  17. ds.Reset();
  18. // filling DataSet with result from NpgsqlDataAdapter
  19. da.Fill(ds);
  20. // since it C# DataSet can handle multiple tables, we will select first
  21. dt = ds.Tables[0];
  22. // connect grid to DataTable
  23. dataGridView1.DataSource = dt;
  24. // since we only showing the result we don't need connection anymore
  25. conn.Close();
  26. }
  27. catch (Exception ex)
  28. {
  29. MessageBox.Show(ex.Message.ToString());
  30. }
  31. }

 

運行一下,效果如圖,可見(jiàn)和我們數據庫查詢(xún)是一致的:

 

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
安裝PostGIS(Linux篇)
PostGIS開(kāi)啟開(kāi)源空間數據庫地將來(lái)
玩開(kāi)源GIS的一點(diǎn)心得
數據庫流行度排名:Oracle穩居第一
PostgreSQL安裝詳細步驟(windows)
2020年10月DB-Engines排行:商業(yè)開(kāi)源平分秋色 并駕齊驅四大天王
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久