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

相关文章

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为