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);
});
}

arcgis for js开发之路径分析的更多相关文章

  1. Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  2. Arcgis for Js之加载wms服务

    概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: ...

  3. WebAppBuilder独立于Portal之arcgis for js应用框架研究

    1.前言 最近在做项目过程中,用到了WAB,先做一下总结和归类.Webappbuilder(简称WAB)是运行在portal或者online的一款webGIS开发应用程序,其代码开源并且具有优秀的设计 ...

  4. ArcGis API JS 4.X本地化部署与地图的基础使用

    准备工作 首先下载ArcGIS API for JavaScript4.x,这里下载的是4.19. 官方下载地址:https://developers.arcgis.com/downloads/ ar ...

  5. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  6. 移动端报表JS开发示例--获取定位

    上次分享了移动端报表JS开发的系统概念,后来我又回去摸索了一些案例.之前接触到的FineReport的APP客户端可以用来打卡签到,就好奇研究了以下,这次就来聊一聊报表移动端开发如何实现定位功能. 1 ...

  7. JS开发HTML5游戏《神奇的六边形》(一)

    近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...

  8. Linux虚拟机中 Node.js 开发环境搭建

    Node.js 开发环境搭建: 1.下载CentOS镜像文件和VMWare虚拟机程序; 2.安装VMWare——>添加虚拟机——>选择CentOS镜像文件即可默认安装带有桌面的Linux虚 ...

  9. heX——基于 HTML5 和 Node.JS 开发桌面应用

    heX 是网易有道团队的一个开源项目,允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案.heX 是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁 ...

随机推荐

  1. SDL 开发实战(三):使用 SDL 绘制基本图形

    在上文 SDL 开发实战(二):SDL 2.0 核心 API 解析 我们讲解了SDL最核心的API,并结合Hello World代码了解了SDL渲染画面的基本原理. 本文我们来讲一下,如何使用SDL的 ...

  2. [Swift]LeetCode566. 重塑矩阵 | Reshape the Matrix

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...

  3. Java数据结构与算法 - 外部存储

    Q: 什么是外部存储? A: 外部存储特指某类磁盘系统,例如在大多数台式电脑或服务器中的硬盘. Q: 如何访问外部存储? A: 我们所学的数据结构都是假设数据存储在内存中,但是,在很多情况下要处理的数 ...

  4. Vue.js 动画

    transition 动画: 当插入或删除包含在 transition 组件中的元素时,Vue将会做以下处理:     1.自动嗅探目标元素是否应用了css过滤或动画,如果是,在恰当的时机添加/删除c ...

  5. java初见

    public class Diyi{ public static void main(String[] args){ System.out.println("Hello,world" ...

  6. SpringBoot 集成Mybatis 连接Mysql数据库

    记录SpringBoot 集成Mybatis 连接数据库 防止后面忘记 1.添加Mybatis和Mysql依赖 <dependency> <groupId>org.mybati ...

  7. SpringCloud(5)---Feign服务调用

    SpringCloud(5)---Feign服务调用 上一篇写了通过Ribbon进行服务调用,这篇其它都一样,唯一不一样的就是通过Feign进行服务调用. 注册中心和商品微服务不变,和上篇博客一样,具 ...

  8. 在.net core上使用Entity FramWork(Db first)

    在.net core中不可以向往常一样去直接可视化创建EF了,那我们可以通过命令安装 其依赖项有 Install-package Microsoft.EntityFrameworkCore Insta ...

  9. redis 系列5 数据结构之字典(上)

    一. 概述 字典又称符号表(symbol table),关联数组(associative array), 映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构.在字典中, ...

  10. 想晋级高级工程师只知道表面是不够的!Git内部原理介绍

    本文由云+社区发表 作者:腾讯工蜂用户:王二卫 从不一样的视角了解git,以便更好的使用git 一.git & git 版本库认识 git 是一个内容寻址的文件系统,其核心部分是一个简单的键值 ...