semon1981
路人甲
路人甲
  • 注册日期2006-06-04
  • 发帖数28
  • QQ
  • 铜币198枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1184回复:0

[求助]重新加载地图数据的问题

楼主#
更多 发布于:2006-07-17 16:45
<P>在更新数据的时候出现不能更新的问题。就是在运行程序中,如果其他用户改变服务器的地图数据,我再重新加载地图数据还是原来的数据(都是同一版本),但是重新运行程序就可以了,这是怎么回事?</P>
<P>//=======================================================================<BR>        //重新加载地图<BR>        //创建时间:06-07-13<BR>        //最后修改时间:<BR>        //输入参数:userVersion 以该版本加载地图数据<BR>//=======================================================================<BR>        public bool ReLoadMap(String userVersion)<BR>        {<BR>            <BR>            //connect to the server of sde<BR>            try<BR>            {<BR>                layersContainer.SetBuddyControl(null);<BR>                <BR>                //删除所有图层<BR>                if (map != null) map.ClearLayers(); <BR>                if (eyeMap != null) eyeMap.ClearLayers();<BR>                if (!bDataChanged) return true;<BR>                IPropertySet iProSet = new PropertySet();<BR>                iProSet.SetProperty("SERVER", systemP.sdeIP);<BR>                iProSet.SetProperty("INSTANCE", systemP.sdeServiceName);<BR>                iProSet.SetProperty("DATABASE", systemP.serviceName);<BR>                iProSet.SetProperty("USER", dataInfo.userName);<BR>                iProSet.SetProperty("PASSWORD", dataInfo.userPassword);<BR>                iProSet.SetProperty("VERSION", userVersion);</P>
<P>                IWorkspaceFactory iWorkspace = new SdeWorkspaceFactory();</P>
<P>                IFeatureWorkspace iFeatureWs = null;<BR>                int index = 0;<BR>                for (index = 0; index < 10; index++)<BR>                {<BR>                    try<BR>                    {<BR>                        iFeatureWs = (IFeatureWorkspace)iWorkspace.Open(iProSet, 0);<BR>                        if (iWorkspace != null) break;<BR>                    }<BR>                    catch (Exception)<BR>                    {<BR>                        return false;<BR>                    }<BR>                }<BR>                if (iFeatureWs == null)<BR>                {<BR>                    MessageBox.Show("加载图层出错,请重新运行本程序");<BR>                    return false;<BR>                }<BR>                pWs = iFeatureWs;</P>
<P>                if (iFeatureWs != null)<BR>                {<BR>                    //IWorkspace iWps = iFeatureWs as IWorkspace;<BR>                    IFeatureDataset iDataset1 = iFeatureWs.OpenFeatureDataset("基础图层");<BR>                    if (iDataset1 == null) return false;<BR>                    IEnumDataset iEnDataset = iDataset1.Subsets;<BR>                    IDataset iDataset = iEnDataset.Next();</P>
<P>                    while (iDataset != null)<BR>                    {<BR>                        IFeatureClass iFeatureCls = iFeatureWs.OpenFeatureClass(iDataset.Name);<BR>                        //IDataset iDataset = iFeatureCls as IDataset;<BR>                        IFeatureLayer iFeatureLyr = new FeatureLayer();<BR>                        iFeatureLyr.FeatureClass = iFeatureCls;<BR>                        iFeatureLyr.Name = iDataset.Name;</P>
<P>                        map.AddLayer(iFeatureLyr, 0);<BR>                        if (iFeatureLyr.Name != "SDE.建筑_region") eyeMap.AddLayer(iFeatureLyr, 0);<BR>                        iDataset = iEnDataset.Next();<BR>                        </P>
<P>                    }<BR>                    iDataset1 = iFeatureWs.OpenFeatureDataset("电力专业图层");<BR>                    if (iDataset1 == null) return false;<BR>                    iEnDataset = iDataset1.Subsets;<BR>                    iDataset = iEnDataset.Next();</P>
<P>                    while (iDataset != null)<BR>                    {<BR>                        IFeatureClass iFeatureCls = iFeatureWs.OpenFeatureClass(iDataset.Name);<BR>                        //IDataset iDataset = iFeatureCls as IDataset;<BR>                        IFeatureLayer iFeatureLyr = new FeatureLayer();<BR>                        iFeatureLyr.FeatureClass = iFeatureCls;<BR>                        iFeatureLyr.Name = iDataset.Name;</P>
<P>                        map.AddLayer(iFeatureLyr, 0);<BR>                        //m_hawkMap.AddLayer(iFeatureLyr, 0);<BR>                        iDataset = iEnDataset.Next();<BR>                        </P>
<P>                    }<BR>                }<BR>                else<BR>                {<BR>                    return false;<BR>                    //MessageBox.Show("没有数据层!");<BR>                }<BR>                layersContainer.SetBuddyControl(map);</P>
<P><BR>            }<BR>            catch (Exception e2)<BR>            {<BR>                //记录操作并写入文件<BR>                AppendLogFile("读出数据层失败! " + e2.Message, false);<BR>                return false;<BR>                //MessageBox.Show(ex.Message);<BR>            }</P>
<P>           layersContainer.SetBuddyControl(map);                       <BR>        }</P>
喜欢0 评分0
游客

返回顶部