zoukankan      html  css  js  c++  java
  • 总结基于ArcGIS Server 9.2 Dot Net ADF的WebGIS项目部署问题

    过去的几个月内对基于ArcGIS Server9.2的开发有所接触,这也是第一次真正自己动手作WebGIS的开发,期间遇到诸多问题。最突出的就是二次开发WebGIS的部署问题,以及字符集冲突的问题。问题描述分别见请教ArcGIS server 9.2做的题目的部署问题??Arcgis Server DotNet Web ADF 模板例子改变字符集后出现的问题。同意的问题在ESRI BBS也有提问,由于时间断断续续这些问题一直没有找到很好的办法,最近几天才解决,故在此总结一下。

    1、关于部署时地图数据源问题的解决:

    在web.config中添加一个地图数据源节,部署时只要修改web.congfig中的值就ok了,呵呵。就是请教一文中说的第2种方法,感觉很早就应该这么搞了,简直一劳永逸,所有用到地图资源的地方都可以共享。具体如下。在web.config文件中:

    <appSettings>
        <!--地图数据源-->
        <add key="MapDataSource" value ="MyHost"/>
    </appSettings>

    在某个类假设是CommonUntility中加几个static方法,当然也可以把许多地图资源访问操作封装在这里了。

     1 public class CommonUntility
     2 {
     3     static MapResourceManager m_MapResourceManager;
     4     static MapResourceItem resourceItem;//地图数据源
     5     string QueryLayer;//图层名
     6     //设置地图数据源
     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         //获取地图数据源
    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 }

    用的地方调用GetResourceItem()就以了。调用如下:

     1 //页面初始化
     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、关于字符集问题的解决:

    此问题最开始是因为html用的gb2312,而aspx用的utf-8,这样存在一个矛盾:

    a、当webconfig用gb2312时从html到aspx的提交正常,数据库操作能够正确完成,但是Arcgis server自带的例子的编辑功能无法正常进行,操作中出现脚本错误。

    b、当把webconfig改成utf-8时,编辑正常但是html到aspx的提交出现问题,aspx页面无法从html中获取参数。

    此前的错误就是因为js,html,aspx的编码都不完全一致导致。试验发现:

    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.

  • 相关阅读:
    灵活的JavaScript(一)
    菜鸟快飞之JavaScript对象、原型、继承(三)
    菜鸟快飞之JavaScript对象、原型、继承(二)
    菜鸟快飞之JavaScript对象、原型、继承(一)
    undo清理 &redo 持久化
    mysql执行计划分析
    mysql5.6的统计信息
    pt-online-schema-change原理分析
    校验主从数据并修复
    使用伪master+binlog恢复数据
  • 原文地址:https://www.cnblogs.com/flyingfish/p/856173.html
Copyright © 2011-2022 走看看