总结基于ArcGIS Server 9.2 Dot Net ADF的WebGIS项目部署问题
過去的幾個月內(nèi)對基于ArcGIS Server9.2的開發(fā)有所接觸,這也是第一次真正自己動手作WebGIS的開發(fā),期間遇到諸多問題。最突出的就是二次開發(fā)WebGIS的部署問題,以及字符集沖突的問題。問題描述分別見《請教ArcGIS server 9.2做的題目的部署問題》與《??Arcgis Server DotNet Web ADF 模板例子改變字符集后出現(xiàn)的問題》。同意的問題在ESRI BBS也有提問,由于時間斷斷續(xù)續(xù)這些問題一直沒有找到很好的辦法,最近幾天才解決,故在此總結(jié)一下。
1、關(guān)于部署時地圖數(shù)據(jù)源問題的解決:
在web.config中添加一個地圖數(shù)據(jù)源節(jié),部署時只要修改web.congfig中的值就ok了,呵呵。就是請教一文中說的第2種方法,感覺很早就應(yīng)該這么搞了,簡直一勞永逸,所有用到地圖資源的地方都可以共享。具體如下。在web.config文件中:
<appSettings>
? ? <!--地圖數(shù)據(jù)源-->
? ? <add key="MapDataSource" value ="MyHost"/>
</appSettings>
在某個類假設(shè)是CommonUntility中加幾個static方法,當然也可以把許多地圖資源訪問操作封裝在這里了。
?1?public?class?CommonUntility?2?{
?3?????static?MapResourceManager?m_MapResourceManager;
?4?????static?MapResourceItem?resourceItem;//地圖數(shù)據(jù)源
?5???? string?QueryLayer;//圖層名
?6???? //設(shè)置地圖數(shù)據(jù)源
?7???? static?private?void?setResourMng()
?8???? {
?9?????????if?(resourceItem!=null)
10?????????{
11?????????????return;
12?????????}
13?????????resourceItem?=?new?MapResourceItem();
14?????????resourceItem.Name?=?"MapResourceItem0";
15?????????resourceItem.Definition?=?new?GISResourceItemDefinition();
16?
17?????????//獲取地圖數(shù)據(jù)源
18?????????string?MapDataSource?=?ConfigurationManager.AppSettings["MapDataSource"];
19?????????resourceItem.Definition.DataSourceDefinition?=?MapDataSource;
20?????????resourceItem.Definition.DataSourceType?="ArcGIS?Server?Local";
21?????????
22?????????resourceItem.Definition.ResourceDefinition?=?"Layers@XIAN";?
23?????????resourceItem.Definition.DataSourceShared=true;
24?
25?????????resourceItem.DisplaySettings?=?new?DisplaySettings();
26?????????resourceItem.DisplaySettings.DisplayInTableOfContents?=?true;
27?????????resourceItem.DisplaySettings.Visible?=?true;
28?????????
29?????????m_MapResourceManager?=?new?MapResourceManager();
30?????????m_MapResourceManager.ResourceItems.Insert(0,?resourceItem);
31?????????m_MapResourceManager.CreateResource(resourceItem);
32?????????resourceItem.InitializeResource();????????
33?????}
34?????//獲取ResourceItem
35?????static?public?MapResourceItem?GetResourceItem()
36?????{
37?????????setResourMng();
38?????????return?resourceItem;
39?????}
40?}
用的地方調(diào)用GetResourceItem()就以了。調(diào)用如下:
?2?protected?void?Page_Load(object?sender,?EventArgs?e)
?3?{
?4?????if?(!IsPostBack)
?5?????{
?6?????????if?(MapResourceManager1.ResourceItems.Count?==?0)
?7?????????{
?8?????????????MapResourceManager1.ResourceItems.Add(CommonUntility.GetResourceItem());
?9?????????}
10???? }
11?}
2、關(guān)于字符集問題的解決:
此問題最開始是因為html用的gb2312,而aspx用的utf-8,這樣存在一個矛盾:
a、當webconfig用gb2312時從html到aspx的提交正常,數(shù)據(jù)庫操作能夠正確完成,但是Arcgis server自帶的例子的編輯功能無法正常進行,操作中出現(xiàn)腳本錯誤。
b、當把webconfig改成utf-8時,編輯正常但是html到aspx的提交出現(xiàn)問題,aspx頁面無法從html中獲取參數(shù)。
此前的錯誤就是因為js,html,aspx的編碼都不完全一致導(dǎo)致。試驗發(fā)現(xiàn):
1)、html不需要更改編碼,只改寫<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />中的charset即可。
2)、js的編碼可以用UE或者vs.net編輯器更改,aspx似乎由webconfig的配置來決定。
3)、用ArcGIS Server時web.config最好用utf-8.
轉(zhuǎn)載于:https://www.cnblogs.com/flyingfish/archive/2007/08/15/856173.html
總結(jié)
以上是生活随笔為你收集整理的总结基于ArcGIS Server 9.2 Dot Net ADF的WebGIS项目部署问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实例讲解《Microsoft AJAX
- 下一篇: ASP调用存储过程详解。