系統中我們將區域級別代號分為:區(district)、街道(street)、社區(community)、單元網格(cell)。
而他們所對應的數字代號分別是:
區:2;
街道:3;
社區:4;
單元網格:5
tcregion表中包含了所有區域的相關信息。
Vcregion表
此表為基於tcregion表的視圖表,創建代碼如下:
創建後所得表如下。觀察此表可以得出,街道代碼、社區代碼和網格代碼之間的內在聯系。
獲取新增部件的編碼需要兩個參數,一個是subTypeID,另一個是cellName。SubTypeID的獲取方式是:
CellName為網格編碼,其獲取方式一般是標志定位時得到XY,通過地理服務端或者直接查詢數據庫所得。如下,便是一個cellName。
QDM:表示由單元網格查出的區代碼的最後六位數。
Unicode:表示由subTypeID查出的對應部件的部件編碼,取最後四位數。
MaxCode(+|-)1:表示將該部件圖層中的最大編碼按照排序規則加或者減1。
該流程已經用存儲過程寫出,可查詢dlsys.fcGetPhyLayerNewObjCode。這裡只是將此存儲過程中的流程分步解說。
假設cellName ='41030200100502'。
如果沒有查到數據,則用cellName的前六位代替,即410302。
假設查出的SubTypeID為514。
或得到uniqueCode需要取最後四位數,得:
由4.1和4.2已經得出了QDM和uniqueCode以及phylayerName(燃氣井蓋)。
則在表dlgis.燃氣井蓋中查詢其中已有的最大編碼。查詢到後,再和由QDM以及uniqueCode按照規則組合出來的數據比較,得到最大值。
這裡得到的是:
編碼可能是遞增規則也可能是遞減規則。這裡通過配置而得其規則:
即用maxCode加上或減去1。