利用OGR SharpMap新增並顯示點

2022-08-05 02:18:16 字數 1687 閱讀 3746

sharpmap提供了很好的地圖渲染功能,其地圖顯示很漂亮,但是我用的0.9版本尚不支援shp檔案編輯和新增、刪除功能,因此只好利用ogr進行新增了(刪除功能後面再說)。

利用ogr向已經存在的shp檔案中寫入乙個點。

osgeo.ogr.ogr.registerall();//

註冊osgeo.ogr.driver driver;

osgeo.ogr.datasource ogrds;

osgeo.ogr.layer ogrlayer;

feature ogrfeature;

osgeo.ogr.geometry pt;

ogrds = driver.open(@"new_shapefile.shp", 1);//

找到檔案

ogrlayer = ogrds.getlayerbyname("new_shapefile");

ogrfeature = new

feature(ogrlayer.getlayerdefn());

pt = new

geometry(osgeo.ogr.wkbgeometrytype.wkbpoint);

ogrfeature.setfield(0, "point1");//

屬性第一列值為

"point1"

pt.addpoint(100 ,100 , 0);//

分別為x,y,z座標值,新增點

ogrfeature.setgeometry(pt);

ogrlayer.createfeature(ogrfeature);

ogrfeature.dispose();

銷毀ogrds.dispose();

利用sharpmap進行顯示:

sharpmap.data.providers.shapefile shpfile1 = new sharpmap.data.providers.shapefile(@"new_shapefile.shp", true);//direct , true);

if (file.exists(@"new_shapefile.shp.sidx"))//

如果存在索引檔案則刪除之

file.delete(@"new_shapefile.shp.sidx");

shpfile1.encoding = system.text.encoding.getencoding("gb2312");

if (mylayer1 != null)//

如果存在這個layer則將其移除

mylayer1 = new sharpmap.layers.vectorlayer("mylayer1");

mylayer1.style.symbol = new

bitmap(@"netw0019.bmp");

mylayer1.datasource = shpfile1;

mymap.layers.add(mylayer1);//

新增圖層

mymap.zoomtoextents();

mapimage1.map = mymap;

mapimage1.refresh();

sharpmap顯示地圖時,將自動建立乙個檔名.shp.sidx檔案,如果下一次開啟圖時已經存在該檔案,將自動按其索引進行顯示。剛剛新增的點不能夠在顯示的時候更新,所以在每次顯示前判斷該檔案是否存在,如果存在則刪除,這樣就可將新新增的點顯示出來。

利用sqlhelper執行新增操作

有一年沒碰.net了,基本上所有的都忘記得差不多了。這幾天重新熟悉這個,首先熟悉下用sqlhelper和property屬性類進行新增操作。1 定義屬性 2 定義乙個資料訪問層介面。介面名為iorder.如下 3 實現iorder介面 4 web端實現操作 default.aspx.cs 在該頁面定...

利用sql語句新增字段注釋

sql server中如何用sql語句給表的字段加注釋 關於注釋這個問題,之前沒用sql語句去新增過,都是在enterprise manager裡面新增的 查了一下資料,得知microsoft在sql server 2000中引入了擴充套件屬性,使用者可在各種資料庫物件上定義這些屬性。這些擴充套件屬...

利用python給pdf新增目錄

利用python讀取txt檔案時,使用的是python中的open方法,讀取檔案時最好加上檔案的編碼方式。不然有可能出現以下錯誤 unicodedecodeerror gbk codec can t decode byte 0xa6 in position 14 illegal multibyte ...