ArcgisForJS如何使用ArcGIS Server发布的GP服务?

2024-02-26 06:28

本文主要是介绍ArcgisForJS如何使用ArcGIS Server发布的GP服务?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 0.引言
  • 1.ArcGIS创建GP服务
  • 2.ArcGIS Server发布GP服务
  • 3.ArcgisForJS使用ArcGIS Server发布的GP服务

0.引言

ArcGIS for JavaScript(或简称AGJS)是一个强大的工具,它允许开发者使用JavaScript在Web浏览器中创建和运行ArcGIS应用程序。ArcGIS Server是一个强大的服务器产品,它提供了许多服务,包括地理处理服务(GP服务)。GP服务是一种服务,它允许开发者在ArcGIS Server上运行各种地理处理任务等。ArcGIS for JS可以使用ArcGIS Server发布的GP服务来执行各种地理处理任务。

1.ArcGIS创建GP服务

(1)创建mxd地图文档,命名为bufferGP。
  在这里插入图片描述

(2)创建点要素
  在这里插入图片描述

(3)创建模型
  在这里插入图片描述

  在这里插入图片描述

构建点生成缓冲区的模型。
  在这里插入图片描述

设置heatPoints。
  在这里插入图片描述

  在这里插入图片描述

设置距离[值或字段]。
  在这里插入图片描述

设置各组件显示模型参数。
  在这里插入图片描述

  在这里插入图片描述

同理设置其他组件的模型参数。
  在这里插入图片描述

重命名各组件。
  在这里插入图片描述

运行成功并退出。

2.ArcGIS Server发布GP服务

打开模型,执行一次模型。
  在这里插入图片描述

打开结果查看会话。
  在这里插入图片描述

发布地理处理服务。
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

在ArcGIS Server查看GP服务。
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

地理处理服务地址:http://localhost:6080/arcgis/rest/services/gp/bufferService1/GPServer/bufferGPModel

3.ArcgisForJS使用ArcGIS Server发布的GP服务

(1)实现代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>GP服务</title>  <link rel="stylesheet" href="https://js.arcgis.com/4.28/esri/themes/light/main.css" />  <script src="https://js.arcgis.com/4.28/"></script>  <style type="text/css">  .MapClass {  width: 100%;  height: 600px;  border: 1px solid #000;  }  </style>  <script type="text/javascript" charset="utf-8">  require(["esri/Map",  "esri/views/MapView",  "esri/rest/geoprocessor",  "esri/rest/support/FeatureSet",  "esri/Graphic",  "esri/layers/GraphicsLayer",  "esri/rest/support/LinearUnit"  ], (Map,  MapView,  geoprocessor,  FeatureSet,  Graphic,  GraphicsLayer,  LinearUnit) => {  var MyMap = new Map({  basemap: "gray-vector",  });  var inputGraphicContainer = [];  var graphicsLayer = new GraphicsLayer();  MyMap.add(graphicsLayer);  var view = new MapView({  container: "MyMapDiv",  center: [106.49446091380375, 29.559187456407138],  zoom: 10,  map: MyMap  });  const markerSymbol = {  type: "simple-marker",  color: [255, 0, 0],  outline: {  color: [255, 255, 255],  width: 2  }  };  const fillSymbol = {  type: "simple-fill",  color: [226, 119, 40, 0.75],  outline: {  color: [255, 255, 255],  width: 1  }  };  //点击绘点  view.on("click", createGraphic);  function createGraphic(event) {  const point = {  type: "point",  longitude: event.mapPoint.longitude,  latitude: event.mapPoint.latitude  };  const inputGraphic = new Graphic({  geometry: point,  symbol: markerSymbol  });  graphicsLayer.add(inputGraphic);  inputGraphicContainer.push(inputGraphic);  }  //清除点  document.getElementById("Btn").onclick = () => {  view.graphics.removeAll();  graphicsLayer.removeAll();  inputGraphicContainer = [];  };  //调用GP服务生成缓冲区  document.getElementById("buffer").onclick = () => {  const gpUrl="http://localhost:6080/arcgis/rest/services/gp/bufferService1/GPServer/bufferGPModel";  const featureSet = new FeatureSet();  featureSet.features = inputGraphicContainer;  const dis = new LinearUnit({  "distance": 5,  "units": "miles"  });  const params = {  input: featureSet,  dis: dis  };  const options = {  outSpatialReference: {  wkid: 102100  }  };  geoprocessor.execute(gpUrl, params, options).then(drawResultData);  }  function drawResultData(result) {  const resultFeatures = result.results[0].value.features;  const bufferGraphics = resultFeatures.map((feature) => {  feature.symbol = fillSymbol;  return feature;  });  graphicsLayer.addMany(bufferGraphics);  view.goTo({  target: bufferGraphics,  tilt: 0  }).catch((error) => {  if (error.name != "AbortError") {  console.error(error);  }  });  }  });  </script>  
</head>  <body>  <div id="MyMapDiv" class="MapClass" style="width:900px;height:600px;"></div>  <input id="Btn" type="button" value="清除" />  <input id="buffer" type="button" value="缓冲区分析" />  
</body>  </html>

(2)实现结果
  在这里插入图片描述
   在这里插入图片描述

参考资料:
[1] 一入GIS深似海. 不一样的前端,JavaScript之arcgis api教程; 2020-11-02 [accessed 2024-02-25].
[2] 码农阿焦. ArcGIS API For JavaScript使用自定义GP服务; 2019-03-14 [accessed 2024-02-25].
[3] gis_morningsun. Arcgis javascript那些事儿(十六)——GP服务的发布与使用; 2017-08-10 [accessed 2024-02-25].
[4] 爱睡懒觉的老舅. 07-ArcGIS API For JavaScript之调用GP服务; 2019-11-26 [accessed 2024-02-25].
[5] No8g攻城狮. 【前端用法】jQuery在线引用地址(全); 2023-12-16 [accessed 2024-02-25].
[6] lqdcanty. jquery中click点击事件嵌套后多次触发的解决方案; 2017-06-01 [accessed 2024-02-25].
[7] 小苗吃不够 . jQuery绑定点击事件和改变事件的几种方式以及多个元素绑定多个事件; 2022-09-05 [accessed 2024-02-25].
[8] 孙霸天. GP服务的使用详解; 2022-01-28 [accessed 2024-02-25].
[9] 不断学习的GISer. arcgis js 4.x 调用gp栅格计算将结果渲染后叠加到天地图; 2021-11-11 [accessed 2024-02-25].
[10] 数据库及DotNet开发. 图解ArcGIS Server之发布GP服务-返回矢量数据; 2016-12-14 [accessed 2024-02-25].
[11] zhoutaotao0509. 基于ArcGIS API For JavaScript调用GP服务实现动态插值分析实现; 2016-08-28 [accessed 2024-02-25].
[12] HPhone. 使用ArcGIS GP服务之五 JavaScript的调用; 2012-11-18 [accessed 2024-02-25].

这篇关于ArcgisForJS如何使用ArcGIS Server发布的GP服务?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747937

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的