描述

本例展示了如何发送一些输入值到ArcGIS Server上的GIS模型并获得结果反馈给web应用。本例中,模型计算自在地图上单击点起始的驱动时间多边形。 例如,这个分析类型可用于想要知道多少人生活在驾车1,2和3分钟范围内的情况。

这个模型通过ArcGIS Server 地理处理服务提供。查看CalculateDriveTimePolygons服务的服务目录获得模型中可以使用的输入输出。除了默认的信息,模型作者还提供了附加的文档,可以通过单击页面上的"Help URL"访问。

可以创建一个地理处理任务从ArcGIS Server访问自己的模型:

gp = new esri.tasks.Geoprocessor("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer/CreateDriveTimePolygons");

使用服务目录查出自己的地理处理服务的URL。

当使用一个地理处理任务时,通常配置一组输入参数,然后执行任务。

var params = { "Input_Location":featureSet, "Drive_Times":driveTimes };
gp.execute(params, getDriveTimePolys);

能够选择地包含一个回调函数,当任务执行完成时运行。在本例中回调函数getDriveTimePolys配置结果多边形的符号并将它们加到地图。

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>Service Area Task</title>
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.5/js/dojo/dijit/themes/tundra/tundra.css">
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.5"></script>
<script type="text/javascript">
dojo.require("esri.map");
dojo.require("esri.tasks.gp"); var map,gp;
var driveTimes = "1 2 3";
//初始化地图,gp,和图片参数
function init() {
var startExtent = new esri.geometry.Extent(-95.41, 38.86, -95.1, 39.06, new esri.SpatialReference({wkid:4326}));
map = new esri.Map("mapDiv",{extent :startExtent});
var streeMap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer");
map.addLayer(streeMap); gp = new esri.tasks.Geoprocessor("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer/CreateDriveTimePolygons"); dojo.connect(map,"onClick",computeServiceArea); } function computeServiceArea(evt) {
//清除所有图层
map.graphics.clear();
//设置点
var pointSymbol = new esri.symbol.SimpleMarkerSymbol();
//设置 线符号,实线,红色
pointSymbol.setOutline = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,255]), 1);
pointSymbol.setSize(10);//设置点的大小
pointSymbol.setColor(new dojo.Color([0,255,0,0.25]));//设置点的颜色 //将点击的点的坐标,样式添加到图层
var graphic = new esri.Graphic(evt.mapPoint,pointSymbol);
map.graphics.add(graphic); //
var features = [];
features.push(graphic);
var featureSet = new esri.tasks.FeatureSet();
featureSet.features = features;
var params = { "Input_Location":featureSet, "Drive_Times":driveTimes};
gp.execute(params,getDriveTimePolys);
} function getDriveTimePolys(results,messages) {
var features = results[0].value.features;
for (var i=0,j=features.length;i<j;i++) {
var feature = features[i];
if(i == 0) {
var polySymbolRed = new esri.symbol.SimpleFillSymbol();
polySymbolRed.setOutline(new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0,0.5]), 1));
polySymbolRed.setColor(new dojo.Color([255,0,0,0.7]));
feature.setSymbol(polySymbolRed); }else if(i == 1) {
var polySymbolGreen = new esri.symbol.SimpleFillSymbol();
polySymbolGreen.setOutline(new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0,0.5]), 1));
polySymbolGreen.setColor(new dojo.Color([0,255,0,0.7]));
feature.setSymbol(polySymbolGreen); }else if(i == 2) {
var polySymbolBlue = new esri.symbol.SimpleFillSymbol();
polySymbolBlue.setOutline(new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0,0.5]), 1));
polySymbolBlue.setColor(new dojo.Color([0,0,255,0.7]));
feature.setSymbol(polySymbolBlue); }
map.graphics.add(feature);
} } dojo.addOnLoad(init);
</script> </head>
<body class="tundra">
<div id="mapDiv" style="width:800px; height:600px; border:1px solid #000;"></div>
Zoom in to a US city and single click the map. A service area GP task will be executed synchronously and on
completion the results will be drawn as graphic features to the map. The drive time polygons are 1, 2,
and 3 minutes.
</body>
</html>

ArcGIS api for javascript——地理处理任务-服务区域任务的更多相关文章

  1. ArcGIS api for javascript——地理编码任务-反向地理编码

    描述 反向地理编码确定地图上给出点的地址.本例展示了如何通过ArcGIS JavaScript API做反向地理编码. 反向地理编码和常规的地理编码请求都使用Locator类和ArcGIS Serve ...

  2. ArcGIS api for javascript——地理处理任务-瓶中信

    描述 如果在海洋中丢下一个瓶子,本例使用颗粒追踪模型显示指定的天数后瓶子在的地方.首先,输入一个追踪瓶子的天数.然后单击按钮并在海洋里的任意地方画一个点来开始模型.几秒以后将看到一条线出现描述瓶子将去 ...

  3. ArcGIS api for javascript——地理编码任务-地理编码地址

    描述 本例允许用户输入一个地址,然后显示匹配的地址的位置.这通常地被称为地理编码.在ArcGIS JavaScript API中,使用Locator类执行地理编码. 定位器构造函数需要ArcGIS S ...

  4. ArcGIS api for javascript——地理处理任务-计算一个可视域

    描述 本例展示了使用一个地理处理计算一个可视域(viewshed) 单击地图上的任意点查看该点5英里内能看见的所有区域.这个模型需要几秒钟来运行并反馈结果. 可视域计算是通过ArcGIS Server ...

  5. ArcGIS api for javascript——用第二个服务的范围设置地图范围

    描述 本例展示了如何设置地图的范围为地图其中一个图层的范围.本例有两个图层:ArcGIS Online上的世界地图图层ArcGISTiledMapServiceLayer和堪萨斯州的要素的图层ArcG ...

  6. ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务

    1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...

  7. ArcGis API for JavaScript学习——加载地图

    ArcGis API for JavaScript开发笔记——加载地图 在这个例子中使用的离线部署的API(请参见 http://note.youdao.com/noteshare?id=f42865 ...

  8. ArcGIS API for JavaScript FeatureLayer服务属性编辑

    首先说一下感想吧,刚入行时感觉深似海,掉到了GIS开发的陨石大坑里了,首先是学了小半年的Flex,用到了ArcGIS API for Flex,接着又是半年的ArcEngine开发,现在终于摸到了一点 ...

  9. [ArcGIS]ArcGIS Server环境搭建,发布服务,以及使用ArcGIS API for JavaScript

    环境搭建 安装Web服务器 IIS 控制面板-程序-程序和功能-启用或关闭Windows功能,勾选以下 安装VisualStudio,选择包括ASP.NET模块 安装ArcGIS服务器 ArcGIS ...

随机推荐

  1. c语言中,常见数据类型的字节数

    一直记不住这个,特意mark下来 和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异.但有几条铁定的原则(ANSI/ISO制订的):  1 size ...

  2. Centos 7 iptables 开放端口

    MySQL 开放远程连接时, 已经打开了对应端口的安全组发现还是连接不上, 那么就需要 check 一下防火墙端口是否开放. firewall-cmd --zone=public --query-po ...

  3. JWT的初步了解以及session、cookie机制

    1.什么是状态保持? 想要了解JWT,首先需要知道什么是状态保持,举一个例子来说:无论是在web上还是在手机app上,我们都可以以游客的身份访问,此时都会有登录/注册字眼,当我们登录之后,就会是我们的 ...

  4. Manacher笔记

    (其实还是回文自动机好用,毛子真是牛逼) Manacher #include<iostream> #include<cstring> #include<cstdio> ...

  5. tensorflow学习笔记(一)安装

    1.tensorflow介绍 中文社区地址 http://www.tensorfly.cn/ TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库. ...

  6. centos7 jumpserver 部署和使用手册(二)

    前面已经介绍了jumpserver的部署,基于这篇部署文档,下面介绍下部署完成后的的功能使用: 一.系统设置 1.1根据提供的帐号密码(admin/admin)登录jumpserver 修改 url ...

  7. 性能测试中的TPS与HPS

    性能测试中的TPS与HPS TPS(Transaction per second) 是估算应用系统性能的重要依据.其意义是应用系统每秒钟处理完成的交易数量.一般的,评价系统性能均以每秒钟完成的技术交易 ...

  8. HTTP——学习笔记(8)

    HTTP中的一些协议内容会限制某些网站的功能使用 比如,Facebook这类的社交网站,需要实时地观察到海量用户公开发布的内容,而HTTP中的以下标准就会成为瓶颈: 一条连接上只可发送一个请求 请求只 ...

  9. 题解 P3369 【【模板】普通平衡树】

    在网上某篇神奇的教程和@codesonic 大佬的标程帮助下,我又肝完了Leafy Tree,跑过来写篇题解(好像以前写过一篇?) 什么是Leafy Tree? Leafy Tree由两种节点组成:辅 ...

  10. 为什么不能往Android的Application对象里存储数据

    在一个App里面总有一些数据需要在多个地方用到.这些数据可能是一个 session token,一次费时计算的结果等.通常为了避免activity之间传递对象的开销 ,这些数据一般都会保存到持久化存储 ...