多思考,一步一步地解决程序出现的问题

        在遇到程序崩溃了之后,目前我的第一个想法是招人帮忙,缺乏独立思考的习惯。这对于编程是非常糟糕的习惯。我觉得应该马上改变这个坏习惯。可以从以下的例子来着手改变:

        今天在做一个驾车查询,供参考的代码如下:

        

            #region 配置驾车查询

            this.carroute.QueryTask = w.GetTask("dg_qtask").Clone() as IQueryTask;

            this.carroute.QueryTask.Render = new MapBase.Render.SimplePointRender();
            this.myMap.Layers.Add(this.poisearch.QueryTask.Render.DrawingBoard);

            this.carroute.RouteTask = w.GetTask("tdtroute").Clone() as IRouteTask;
            this.carroute.RouteTask.Render = new MapBase.Render.SimpleLineRender();
            this.myMap.Layers.Add(this.carroute.RouteTask.Render.DrawingBoard);

            this.carroute.Map = myMap;

            #endregion

        在上面的例子中,用到了poisearch面板,因为我的系统中不需要改面板,所以需要改变一下,我改成如下:

        

            #region 配置驾车查询

            this.carRoute.QueryTask = workshop.GetTask("qy_dmdz").Clone() as IQueryTask;

            this.carRoute.QueryTask.Render = new MapBase.Render.SimplePointRender();
            //this.myMap.Layers.Add(this.poisearch.QueryTask.Render.DrawingBoard);

            this.carRoute.RouteTask = workshop.GetTask("qy_RouteTask").Clone() as IRouteTask;
            this.carRoute.RouteTask.Render = new MapBase.Render.SimpleLineRender();
            this.myMap.Layers.Add(this.carRoute.RouteTask.Render.DrawingBoard);

            this.carRoute.Map = myMap;

            #endregion

         这段代码会报错。经高人指点,对错误的分析应该是这样的:

         (1)驾车包括两部分,QueryTask和RouteTask,所以上面的注释的代码应该解注释,而且那一句代码应该写错了,应改为:

        

this.myMap.Layers.Add(this.carRoute.QueryTask.Render.DrawingBoard);

         (2) 这样改了之后,依然有错误。如果代码没有问题,那问题肯定在配置文件了,此时必须自己地比较与模板的差异

         (3) 通过与模板比较之后,发现ServiceType错误了,必须是QueryTask,而不是FindTask。如下

         

<!--地名地址-->
    <Task ID="qy_dmdz" SourceType="NewMap" ServiceType="FindTask">
      <Url>http://125.91.215.244:8719/NewMapServer/WebServices/FeatureServer.php?layer=qyxqd</Url>
      <PageSize>10</PageSize>
      <Field>Name</Field>      
    </Task>

      改为:

<!--地名地址-->
    <Task ID="qy_dmdz" SourceType="NewMap" ServiceType="QueryTask">
      <Url>http://125.91.215.244:8719/NewMapServer/WebServices/FeatureServer.php?layer=qyxqd</Url>
      <PageSize>10</PageSize>
      <Field>Name</Field>      
    </Task>

 

         如此一步一步排除错误地方,错误就可以被发现,并被解决了。

posted @ 2014-07-18 17:38  DowTowne  阅读(234)  评论(0)    收藏  举报