许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  ArcGIS总结:绘制区域和路径的方法

ArcGIS总结:绘制区域和路径的方法

阅读数 15
点赞 0
article_banner

      通过arcgis的jsapi实现区域和路径的绘制。

      原理 是这样的,map对象里面有一个graphics的集合,我们只要把创建的graphic 类  放到这个集合就可以了。在arcgis中,graphic的构造依赖于symbol,arcgis提供了非常丰富的symbol,我们可以选择自己需要的。

       所需要加载的包如下:

dojo.require("dijit.layout.BorderContainer");dojo.require("dijit.layout.ContentPane");dojo.require("esri.map");dojo.require("esri.toolbars.draw");dojo.require("esri.symbols.SimpleLineSymbol");dojo.require("esri.graphic");

           这里用到工具栏进行交互:
  
dojo.connect(map,'onLoad',function(theMap){    ...    initToolbar(map);    ...});


dojo.connect(dojo.byId("info"),"onclick",function(evt){    if(evt.target.id.toLowerCase()=="info"){              return;    }    if(evt.target.id.toLowerCase()=="clear"){      map.graphics.clear();       return;    }    map.disableMapNavigation();    toolbar.activate(evt.target.id.toLowerCase());});

          initToolbar的代码如下: 
  


function initToolbar(map){    toolbar=new esri.toolbars.Draw(map);    dojo.connect(toolbar,"onDrawEnd",function(evt){         //画路线        if(evt.type=="line" || evt.type=="polyline"){           symbol=new esri,symbol.SimpleLineSymbol();        }        //画区域        if(evt.type=="gon" || evt.type=="polygon"){           symbol=new esri.symbol.SimpleFillSymbol(                      esri.symbol.SimpleFillSymbol.STYLE_SOLID,                      new esri.symbol.SimpleLineSymbol();                      new esri.Color([255,123,123,0.35]           );        }        var graphic=new esri.Graphic(evt,symbol);        map.graphics.add(graphic);    )};}

           如果要保存,也很容易,通过回调的evt对象,可以取得路线或者区域的端点坐标、不同类型的evt,存储坐标的属性不一样,可以通过debug去获得,这里就不说了。 
  


       如果要加载保存的路线和区域,我们只需要调用合适的graphic类的构造器,然后再把它放到map的graphics集合就可以了

       加载路线的例子如下:

     

showLine([[116.3894.516041973,39.92069932378777],...[116.399.64640487678],[39.92082452309436]]); function showLine(path){   var polyLine=new esri.geometry.Polyline([path]);   var simpleLineSymbol=new esri.symbol.SimpleLineSymbol();   var graphic=new esri.Graphic(polyLine,simpleLineSymbol);   map.graphics.add(graphic);}

            加载区域的例子如下: 
  


showPolygon([[116.39719607559066,39.920323725868], ...<pre name="code" class="javascript">[116.39719607559066,39.920323725868]]);


function showPolygon(ring){   var polygon=new esri.geometry.Polygon([ring]);   var polygonSymbol=new esri.symbol.SimpleFillSymbol(       esri.symbol.SimpleFillSymbol.Style_SOLID;       new esri.symbol.SimpleLineSymbol([ring]);       new esri.Color([255,123,123,0,35]);   );   var graphic=new esri.Graphic(polygon,ploygonSymbol);   map.graphics.add(graphic);}


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空