天天看點

GeoTools操作shapefile時Id不固定

系統是使用geoserver作為gis server,shapefile作為gis資料檔案來支援gis操作的。另外有一個gis web service來封裝對gis的一些功能操作,比如CRUD等,這個用GeoTools。

對gis進行設計時,featureId是一個很重要的概念,它标示了一個gis元素。

剛開始對gis不太熟悉,問了一下其他做過gis的人,得到了一個核心概念,featureId唯一标示一個gis元素,而且不會改變。于是基于這個假設開始設計編碼。

因為剛開始一直都是簡單的在client端show出地圖來,是以也沒有什麼問題。

直到......

需要引入一些update和delete的操作,問題來了,發現featureId不是固定的,解決的辦法也比較直覺,自定義一些id屬性放到shapefile裡面。問題是這個需要改動以前的code并且重新準備資料。

反思:這個問題其實是可以避免的,應該在早期有一個小的sample code來檢查基本的假設,這樣就可以避免了。