ArcGIS Explorer 9.3 二次开发---开发程序1

vs2008是个很好的工具, 个人认为Arcgis提供的api还是不多的,但是例子相当的全,安装explorer后,在安装目录下DeveloperKit\Samples里有基本所有功能的例子;

二次开发所需要的功能:

1.能用的对象

   explorer提供了开发所用的几个对象,ESRI.ArcGISExplorer.Application下有Button(浏览器菜单栏按钮),DockWindow(自带浏览器菜单栏按钮,但点击后会弹出浏览器窗口),Extension(浏览器扩展,可在浏览器启动、关闭时调用),Gallery(浏览器图例显示);

2.加载地图(通过程序)

  直接加载地图文件例子中有;

下面加载发布在arcgis server上的地图代码:

MapDisplay mapDisp = ESRI.ArcGISExplorer.Application.Application.ActiveMapDisplay;//现有的地图显示区  

string uri="http://ip:port/arcgis/services";      //server发布的路径

string serviceName=“china”;//发布服务名

string layerName=“beijing”;//图层名

try
                                        {
                                            ServiceConnectionProperties connProps =new ServiceConnectionProperties(ServiceType.GlobeServer, new Uri(uri), serviceName, layerName);
                                            ServiceLayer sl = new ServiceLayer(connProps);
                                            if (sl.Connect())
                                            {
                                                mapDisp.Map.ChildItems.Add(sl);
                                            }
                                            else
                                            {
                                                //Investigate connection issue.
                                                ConnectionStatus status = sl.ConnectionStatus;
                                                if (status.HasError)
                                                {
                                                    MessageBox.Show(“load map error”);
                                                }
                                            }
                                            //sl.Disconnect();
                                        }
                                        catch
                                        {
                                            
                                        }

加载时图层多加上System.Windows.Forms.Application.DoEvents();不至于explorer被锁定。

也可以加上ProgressHelper help = new ProgressHelper(title, "", content);滚动条,客户体验会好一点
help.Show();出现滚动条

help.Close();去掉滚动条

 

3.加载kml

kml文件可根据规范生成,个人认为加载自定义的图形用kml方便。

KmlLayer kmlLayer = new KmlLayer(“..\..\KmlDoc.kml”);//路径可以是本地的也可以是远程服务器下的
                    kmlLayer.Name = kmlName                    if (kmlLayer.Connect())
                    {
                        mapDisp.Map.ChildItems.Add(kmlLayer);
                        //mapDisp.ZoomTo(kmlLayer);//转换到默认视角

                    }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值