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].

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/708618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 数据泵 导入导出 最简说明

数据泵可以对含有CLOB&#xff0c;BLOB等字段的表导出数据&#xff0c;是应用场景最广的一种导入导出方法&#xff0c;我觉得要比SQL Developer好用&#xff0c;不过需要能够登录数据库所在主机的操作系统。 导出 expdp paasapp/Paas1015 datafilemy_data.dmp content{ALL|DATA…

linux 的各种压缩文件命令

01-.tar格式 解包&#xff1a;[&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;]$ tar xvf FileName.tar 打包&#xff1a;[&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;&#xff0a;]$ tar cvf FileN…

❤ git操作Github、git操作github

❤ 操作github 一、git操作Github 1、设置用户名和邮件地址 git config --global user.name "nexuslin" git config --global user.email "2455067339qq.com"2、生成本地密钥 ssh-keygen -t rsa -C 2455067339qq.com3、接下来就一直回车&#xff0c;然…

被后端五万条数据爆破我是怎么处理的

前言 今天面试的时候面试官直接问了一句后端一次性返回10万条数据给你&#xff0c;你如何处理&#xff1f;&#xff0c;我脑中浮现的第一句话就是拿着物理学圣剑找后端进行 “友好的协商”&#xff0c;谁打赢了听谁的。不过虽然这种情况很少&#xff0c;不过我在实际开发中还真…

Docker数据集与自定义镜像:构建高效容器的关键要素

目录 博客前言 一.数据卷 1.数据卷介绍 2.实战 宿主机和容器共享目录 容器和容器之间共享目录 二.自定义镜像 1.自定义镜像介绍 2.实战 2.1自定义centos&#xff0c;具备vim及ifconfig作用 构建镜像 通过镜像运行一个容器进行测试 2.2自定义tomact&#xff08;文件为…

(转载)SpringCloud 微服务(三)-Seata解决分布式事务问题

ps:这个原文写的很好&#xff0c;怕后续这个地址失效&#xff0c;备份一个留着自己学习 转自&#xff1a;SpringCloud 微服务&#xff08;三&#xff09;-Seata解决分布式事务问题_seata 黑马 代码-CSDN博客 看完了黑马程序员的免费课程&#xff0c;感觉受益匪浅&#xff0c;…

【Oracle】玩转Oracle数据库(七):RMAN恢复管理器

前言 嘿&#xff0c;数据库大魔法师们&#xff01;准备好迎接新的技术大招了吗&#xff1f;今天我们要探索的是Oracle数据库中的神奇利器——RMAN恢复管理器&#xff01;&#x1f6e1;️&#x1f4be; 在这篇博文【Oracle】玩转Oracle数据库&#xff08;七&#xff09;&#xf…

Django 表单

用Django对用户提交的表单数据进行处理&#xff08;get方式&#xff09;。 search.py 文件代码&#xff1a; from django.http import HttpResponse from django.shortcuts import render # 表单 def search_form(request): return render(request, search_form.html) # …

【4.3计算机网络】网络规划与设计

目录 1.网络规划2.逻辑网络设计3.物理网络设计 1.网络规划 需求分析->通信规范分析->逻辑网络设计->物理网络设计->实施阶段 2.逻辑网络设计 3.物理网络设计 例题1&#xff1a; 解析&#xff1a;选A。 例题2&#xff1a; 解析&#xff1a;选A。 例题3. 解析&am…

自动化威胁检测和响应

网络安全变得比以往任何时候都更加复杂和疯狂。网络威胁在不断演变&#xff0c;资金充足且持续存在的不良行为者变得更加复杂且更难以检测。预算和资产捉襟见肘&#xff0c;现代网络安全团队的任务是通过持续监控威胁、实施强有力的安全措施、教育组织最佳安全实践以及迅速修复…

关于uniapp小程序的分包问题

开发uniapp小程序时&#xff0c;在打包上传代码时会出现超出2M的打包限制不能上传&#xff0c;那么我们该怎么做呢&#xff1f; 1.对于图片&#xff0c;将图片从后端服务取&#xff0c;尽量不要放在静态资源&#xff0c;图片体积会影响打包大小。 2.使用分包&#xff0c;tabb…

transformers生成式对话机器人

生成式对话机器人是一种人工智能技术,它通过学习大量自然语言数据,模拟人类进行开放、连贯和创造性的对话。这种类型的对话系统并不局限于预定义的回答集,而是能够根据上下文动态生成新的回复内容。其核心组件和技术包括: 1、神经网络架构:现代生成式对话机器人通常基于深…

Hudi配置参数优化

1&#xff09;Commits&#xff1a;表示一批记录原子性的写入到一张表中。 2&#xff09;Cleans:清除表中不再需要的旧版本文件。 3&#xff09;Delta_commit:增量提交指的是将一批记录原子地写入MergeOnRead类型表&#xff0c;其中一些/所有数据都可以写入增量日志。 4&…

【解决】Vue3中使用element-plus菜单点击两次才高亮显示问题

【解决】Vue3中使用element-plus菜单点击两次才高亮显示问题 原因&#xff1a;我这里造成高亮点击两次才生效的原因是重复渲染造成default-active的值重置了。 状况&#xff1a;点击菜单后&#xff0c;地址栏改变、页面也跳转&#xff0c;但要点击第二次后才高亮显示。或者点击…

DEEPSORT算法:深度学习驱动下的高效多目标跟踪

DEEPSORT算法核心原理梗概 DEEPSORT&#xff08;Deep Simple Online and Realtime Tracking&#xff09;是一种基于深度学习的多目标跟踪算法。其核心原理在于利用深度学习模型进行目标检测&#xff0c;并结合卡尔曼滤波器进行目标状态预测和数据关联&#xff0c;从而实现目标…

Python:内存监测工具memory_profiler

Python内存监测工具memory_profiler memory_profiler 是一个用于监测Python代码内存使用的工具。它可以帮助开发者理解他们的程序在运行时消耗内存的情况&#xff0c;确定内存泄漏的位置&#xff0c;优化代码性能。 安装 由于memory_profiler不是Python的标准库&#xff0c;…

全国产飞腾E2000Q +复旦微FPGA的轨道交通、电力解决方案

产品概述 ITX-XMF201是一款高性能边缘计算网关主板&#xff0c;采用飞腾E2000Q 4核处理器&#xff0c;国产化率达到95%国产化。 板载2电口&#xff0c;2路CAN&#xff0c;6路RS232接口&#xff0c;1路RS485接口&#xff0c;16路GPIO&#xff0c;可以满足银行、轨道交通、电力等…

VR元宇宙的概念|VR体验店加盟|虚拟现实设备销售

VR元宇宙是一个结合了虚拟现实&#xff08;Virtual Reality&#xff09;和增强现实&#xff08;Augmented Reality&#xff09;等技术的概念&#xff0c;代表着一个虚拟的多维度世界。它是一个由数字化的空间构成的虚拟环境&#xff0c;可以通过虚拟现实设备进行交互和探索。 元…

【力扣刷题练习】56. 合并区间

题目描述&#xff1a; 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 题目解答&#xff1a; class S…

JavaScript 解决切换图片问题

代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style…