arcgis for js开发之路径分析


//方法封装
function routeplan(x1, x2, y1, y2, barrierPathArray, isDraw, callback) {
require([
"esri/symbol/SimpleLineSymbol",
"esri/Color",
"esri/tasks/RouteTask",
"esri/tasks/FreatureSet",
"esri/tasks/RouteParameters"
], function () {
var routeServerUrl = url;//对应道路图层的服务图层
var routeGraphicLayer = new GraphicLayer(map, layerName);
routeGraphicLayer.clear();//每规划一次删除对应图层
var map = map;
var wkid = 5555;
//起点
var ptStart = new esri.geometry.Point(parseFloat(x1), parseFloat(y1), new esri.SpatialReference({ wkid: wkid }));
//终点
var ptEnd = new esri.geometry.Point(parseFloat(x2), parseFloat(y2), new esri.SpatialReference({ wkid: wkid }));
var startPtGra = new esri.Graphic(ptStart);
var endPtGra = new esri.Graphic(ptEnd);
//设置路径样式
var routeSymbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([1, 2, 3, 1], 5));//说明:rgb透明度,线宽
//起点、终点尾部样式
var routeSymbolDef = new esri.symbol.SimpleLineSymbol(new esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([2, 3, 4, 5], 2));
var routeTask = new esri.tasks.RouteTask(routeServerUrl);
var routeParams = new esri.tasks.routeParameters();
//设置参数
routeParams.outSpatialReference = { wkid: wkid };
routeParams.retuenDirection = true;
routeParams.directionsLengthUnits = esri.Units.METERS;
routeParams.stops = new esri.tasks.FeatureSet();
routeParams.stops.features.push(startPtGra);
routeParams.stops.features.push(endPtGra)
route = JSON.stringify(barrierPathArray);
var temp = jQuery.parseJSON(route);
var array = [];
$.each(temp, function (i, v) {
var point = [v[0], item[1]];
array.push(point);
});
//设置路障参数
if (array.length > 0) {
var barrierRoute = new esri.geometry.Polyline(new esri.SpatialReference({ wkid: wkid }));
var barriersGraphic = new esri.Graphic(barrierRoute);
routeParams.PolylineBarriers = new esri.tasks.FeatureSet();
routeParams.PolylineBarriers.features.push(barriersGraphic);
}
if (routeParams.stops.features.length == 0) {
alert("参数不全,无法分析");
return;
}
routeTask.solve(routeParams,function(solveResult){
if(callback){
callback(solveResult);
}
var routeResults=solveResult.routeResults;
var res=routeResults.length;
if9(isDraw=="false"){
return;
}
if(res>0){
for(var i=0;i<res;i++){
var graphicroute=routeResults[i];
var graphic=graphicroute.route;
graphic.setSymbol(routeSymbol);
routeGraphicLayer.add(graphic);
//连接路线起点、终点、对应的定位起点、终点
var paths=graphic.geometry.paths[0];
var routeStr=paths[0];
var routeEnd=paths[paths.length-1];
var routeStrline=new esri.geometry.Polyline([[x1,y1],routeStr],new esri.SpatialReference({wkid:wkid}));
var routeEndline=new esri.geometry.Polyline([[x2,y2],routeEnd],new esri.SpatialReference({wkid:wkid}));
var strlinegraphic=new esri.Graphic(routeStrline,routeSymbolDef);
var endlinegraphic=new esri.Graphic(routeEndline,routeSymbolDef);
routeGraphicLayer.add(strlinegraphic);
routeGraphicLayer.add(endlinegraphic);
}
}
else{
alert("结果为空");
}
},function(errpr){
alert(errpr);
});
}

最新文章

  1. JavaScript判断IE版本
  2. PHP类和对象函数实例详解
  3. Redisd VS Memcached
  4. C语言中不同函数之间怎么传值?
  5. &lt;mvc:default-servlet-handler/&gt;导致SimpleUrlHandlerMapping失效
  6. VirtualBox提示:错误,创建一个新任务失败,被召者解决办法
  7. 【液晶模块系列基础视频】3.1.fatfs文件系统的移植及接口函数的使用
  8. jquery实现抽奖转盘
  9. No bean named &#39;transactionManager&#39; is defined
  10. 【WebService】WebService学习笔记
  11. Struts2标签--S:iterator----jsp页面遍历双层list
  12. Linux less命令详解
  13. 数据库复习总结(16)-case关键字(数据透视)
  14. Go语言代码规范指导
  15. Cookie的使用(14)
  16. linux抓包工具Charles的配置安装
  17. scanperiod 不生效
  18. android --------- 嵌套unity出现 your hardware does not support this application,sorry!
  19. ceph 搭建nginx负载3个对象网关
  20. Hive错误:Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”

热门文章

  1. github pages + Hexo + node.js 搭建属于自己的个人博客网站
  2. [Swift]LeetCode220. 存在重复元素 III | Contains Duplicate III
  3. [Swift]LeetCode236. 二叉树的最近公共祖先 | Lowest Common Ancestor of a Binary Tree
  4. [SQL]LeetCode626. 换座位 | Exchange Seats
  5. 超全MyBatis动态SQL详解!( 看完SQL爽多了)
  6. Android开发:修改eclipse里的Android虚拟机路径
  7. JavaWeb过滤器.监听器.拦截器-原理&区别-个人总结
  8. python高级-迭代器(18)
  9. 【Spark篇】---SparkSQL初始和创建DataFrame的几种方式
  10. 【WebAPI No.4】Swagger实现API文档功能