系統是使用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來檢查基本的假設,這樣就可以避免了。