急问--动态添加图层。

6 views
Skip to first unread message

pray

unread,
Oct 25, 2007, 9:57:19 PM10/25/07
to GisServer
请教如何动态加载图层(ARCSERVER9.2+C#)


protected void Button1_Click(object sender, EventArgs e)
{
MapResourceItem mapResourceInfo = new MapResourceItem();
mapResourceInfo.Name = "aa";

GISResourceItemDefinition definition = new
GISResourceItemDefinition();

definition.DataSourceDefinition = "pray";
definition.DataSourceType = "ArcGIS Server Local";
definition.ResourceDefinition = "Layers@aa";
definition.DataSourceShared = true;

mapResourceInfo.Parent = MapResourceManager1;
mapResourceInfo.Definition = definition;
ESRI.ArcGIS.ADF.Web.DisplaySettings displaysettings = new
ESRI.ArcGIS.ADF.Web.DisplaySettings();
displaysettings.Transparency = 0.0F;
displaysettings.Visible = true;
mapResourceInfo.DisplaySettings = displaysettings;

MapResourceManager1.ResourceItems.Insert(0, mapResourceInfo);
MapResourceManager1.CreateResource(mapResourceInfo);
//Map1.Refresh();


}
很奇怪,做了个BUTTON。的时候,MAP里面没有变?、一直显示的是第一次设置的那个图。。刷新也没用。不知道为什么
MapResourceManager1.ResourceItems.Insert(0, mapResourceInfo);
MapResourceManager1.CreateResource(mapResourceInfo);这样应该就是显示
BUUTON 的图啊。。
还有什么其他需要添加的功能阿??

kylin

unread,
Oct 26, 2007, 5:33:59 AM10/26/07
to GisServer
MapResourceItem mapResourceInfo = new MapResourceItem();

GISResourceItemDefinition definition = new
GISResourceItemDefinition();
mapResourceInfo.Name = "CHINAPOP";
definition.DataSourceDefinition = "ora2950"; //ora2950为服务器名


definition.DataSourceType = "ArcGIS Server Local";

definition.ResourceDefinition = "(default)@CHINAPOP";
definition.DataSourceShared = true;

definition.DataSourceShared = true;
mapResourceInfo.Parent = MapResourceManager1;
mapResourceInfo.Definition = definition;
ESRI.ArcGIS.ADF.Web.DisplaySettings displaysettings = new
ESRI.ArcGIS.ADF.Web.DisplaySettings();
displaysettings.Transparency = 0.0F;
displaysettings.Visible = true;
mapResourceInfo.DisplaySettings = displaysettings;

MapResourceManager1.ResourceItems.Insert(0, mapResourceInfo);
MapResourceManager1.CreateResource(mapResourceInfo);

if (Map1.ImageBlendingMode == ImageBlendingMode.WebTier)
{
Map1.Refresh();
}
else
{
Map1.RefreshResource(mapResourceInfo.Name);
}
我测试了这段代码,成功运行。

kylin

unread,
Oct 26, 2007, 11:03:51 AM10/26/07
to GisServer
我将我测试的文件上传到文件里面了,你自己去下载,第一个HTML按钮使用callback机制做无刷新更新地图;第二个使用了Server按钮刷新方
式来更新。

kylin

unread,
Oct 26, 2007, 11:07:43 AM10/26/07
to GisServer
文件名:DynamicLoadServer.rar
还有希望你下次能在groups里面回复,增加一下这里的气氛,让更多人的能够togther here。谢谢,^_^.

pray

unread,
Oct 28, 2007, 2:57:07 AM10/28/07
to GisServer
Thanks for your good advice.
I know...

pray

unread,
Nov 4, 2007, 9:21:50 PM11/4/07
to GisServer
KILIN 按照你的意思我运行了一下,还是没有出结果。。
我想将我的步骤详细介绍一下,希望你们能再帮我看看。。可以吗???
1 拖了MAP WEBCONTROL ,MAPRESOURCEMANAger,BUTTON控件。
2 MAPRESOURCEMANAger选择右键属性,添加一个地图资源比如说名为"aa"的资源(在ARCCATALOG里面发布了的);同时设置
了MAP WEBCONTROL的属性,关联到了MAPRESOURCEMANAger。
3 添加引用后,双击BUTTON键填写添加代码--
MapResourceManager1.ResourceItems.Clear();//自己添加的

MapResourceItem mapResourceInfo = new MapResourceItem();
GISResourceItemDefinition definition = new
GISResourceItemDefinition();
mapResourceInfo.Name = "aa";//发布的服务的名字
definition.DataSourceDefinition = "pray";//服务器的名字
definition.DataSourceType = "ArcGIS Server Local";//没有改
definition.ResourceDefinition = "(default)@aa";//小改了一下,改了自己的服务的
名字

definition.DataSourceShared = true;
mapResourceInfo.Parent = MapResourceManager1;
mapResourceInfo.Definition = definition;
ESRI.ArcGIS.ADF.Web.DisplaySettings displaysettings = new
ESRI.ArcGIS.ADF.Web.DisplaySettings();
displaysettings.Transparency = 0.0F;
displaysettings.Visible = true;
mapResourceInfo.DisplaySettings = displaysettings;
MapResourceManager1.ResourceItems.Insert(0, mapResourceInfo);
MapResourceManager1.CreateResource(mapResourceInfo);
MapResourceManager1.Refresh();

if (Map1.ImageBlendingMode == ImageBlendingMode.WebTier)
{
Map1.Refresh();
}
else
{
Map1.RefreshResource(mapResourceInfo.Name);
}
}
4添加ADD ARCGIS IDENTITY 。(不知道有没有效用)
结果是:
运行不报错,但是当双击BUTTON的时候,MAP区域的图形便成为了空白,
因为MapResourceManager1.ResourceItems.Clear();//自己添加的
我加了这一句,所以之前的图形估计被删除了,实际上我BUTTON要加载的图层并没有加载进去 。
当然如果我不加这一句的话,BUTTON的时候,一直是原来的图层,没有变化。
我将我的代码上传了,希望能指点一下。。
谢谢。。

code_g_285137749

unread,
Nov 10, 2007, 4:59:32 AM11/10/07
to GisServer
给你回过了吧,解决方法,开始要加载地图服务(map server)然后再所有map server的坐标投影要求和开始加载的map server
一致。应该可以的,这个我试过,应该没问题的。

8f6c4115-bcf71853-922e46dbb1

unread,
Nov 28, 2007, 7:45:46 AM11/28/07
to GisServer
是的,呵呵。map server的坐标投影要求要一致。。呵呵
今天才看到。顿悟。。呵呵。以前加载的没有符合这个要求了。看样子这一路花了我快一个月了。。呵呵
谢谢。 。。。
Reply all
Reply to author
Forward
0 new messages