FeatureLayer未能顯示標註問題

2021-08-10 15:34:27 字數 1156 閱讀 1027

同事告訴我,我在web頁面上疊加的他們製作的圖層,沒有顯示相應的標註。

「標註?啥東東?」,我一頭霧水。原來,圖層中,一些物件,比如色塊、小圖示,往往會有相關的文字加以說明,這就是所謂的標註。在arcgis中,應該叫「label」。

「你看,我開啟【要素標註】選項,就有文字,關閉,則消失」,同事在arcgis裡嫻熟地操作著,文字忽隱忽現,刺痛了俺的眼睛。為何我疊加的圖層沒有出現這些相關文字?

有另外乙個同事寫的web頁面就有標註。不過,他採用new arcgisdynamicmapservicelayer的方式來載入圖層,而我用的是new featurelayer的方式。眾所周知,前者是所謂動態圖層,與切片圖層一樣,地圖是從伺服器端返回的形式展示在客戶端;而featurelayer屬於圖形圖層,客戶端從伺服器端拿到的是資料,然後再繪製出來。一般而言,動態圖層和切片圖層可用於底圖,而featurelayer用於圖層疊加。

所以,該同事的圖層能顯示標註不足為奇。那麼,featurelayer就沒辦法顯示標註了嗎?網上瘋狂搜尋,見到的答案,基本都是新增乙個標註,自己設內容、字型、顏色。我想,這適合圖層本身沒有標註,而對於圖層已經有了標註的情況下,為什麼我們不能夠直接顯示出來呢?

檢視featurelayer的建構函式,有引數名曰:showlabels,這個就跟標註有關,預設為false,設為true不就可以了嗎?

var fl = new featurelayer(node.nodepath, );
結果還是沒有顯示。原來,光在圖層這裡設定還不夠,map本身也要支援才行:

return

newmap("map", );

如此,標註顯示矣。地圖、圖層都要將這個showlables設為true,缺一不可。

另外,標註是繫結某個欄位的,所以,疊加圖層的時候,outfields 一定要包含該欄位,否則,標註將顯示「undefined」。

有些圖層未必有標註。這個直接瀏覽圖層服務位址就能看出來:

FeatureLayer顯示文字標註

featurelayer new featurelayer serverurl,var stateslabel new textsymbol setcolor new color 0a162c stateslabel.font.setsize 15pt stateslabel.font.setwei...

未能從程式集

說明 執行當前 web 請求期間,出現未經處理的異常。請檢查堆疊跟蹤資訊,以了解有關該錯誤以及 中導致錯誤的出處的詳細資訊。異常詳細資訊 system.typeloadexception 未能從程式集 wise.contract,version 1.0.0.0,culture neutral,pub...

未能載入型別 Global

vs web專案執行時,自動從bin目錄下查詢web生成的對應dll檔案。即使手動修改build output path 後,執行依然從bin下查詢此dll檔案。如果找不到對應的web dll或 dll有錯就會出現如下錯誤。應用程式中的伺服器錯誤。說明 在分析向此請求提供服務所需資源時出錯。請檢查下...