码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 通过核密度分析工具建模,基于arcgis js api 4.27 加载gp服务


    一、通过arcmap10.2建模,其中包含三个参数

    注意input属性,选择数据类型为要素类:

    二、建模之后,加载数据,执行模型,无错误的话,找到执行结果,进行发布gp服务

    注意,发布gp服务服务的时候,参数可以设置同步,也可以设置异步,我选择的异步执行

    三、发布完gp服务,通过api进行调用

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    6. <style>
    7. html,
    8. body,
    9. #viewDiv {
    10. padding: 0;
    11. margin: 0;
    12. height: 100%;
    13. width: 100%;
    14. }
    15. #paneDiv {
    16. position: absolute;
    17. top: 18px;
    18. right: 18px;
    19. padding: 12px;
    20. background-color: rgba(0, 0, 0, 0.5);
    21. color: white;
    22. width: 200px;
    23. }
    24. </style>
    25. <link rel="stylesheet" href="https://js.arcgis.com/4.27/esri/themes/light/main.css">
    26. <script src="https://js.arcgis.com/4.27/"></script>
    27. <script>
    28. require([
    29. "esri/rest/geoprocessor",
    30. "esri/views/MapView",
    31. "esri/layers/WebTileLayer",
    32. "esri/Map",
    33. "esri/layers/GraphicsLayer",
    34. "esri/rest/support/FeatureSet",
    35. "esri/Graphic",
    36. "esri/symbols/SimpleMarkerSymbol",
    37. "esri/rest/support/JobInfo"
    38. ], function (
    39. geoprocessor,
    40. MapView,
    41. WebTileLayer,
    42. Map,
    43. GraphicsLayer,
    44. FeatureSet,
    45. Graphic,
    46. SimpleMarkerSymbol,
    47. JobInfo
    48. ) {
    49. //gp服务地址
    50. let gpUrl = "http://localhost:6080/arcgis/rest/services/kenerDenNew3/GPServer/kenerDen"
    51. //gp服务输出参数名称
    52. let map = new Map();
    53. let tdtVecLayer = new WebTileLayer({
    54. urlTemplate:
    55. 'http://{subDomain}.tianditu.gov.cn/DataServer?T=vec_w&x={col}&y={row}&l={level}&tk=bb8b7ddbbafd349de08d74835c91d83a',
    56. subDomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
    57. })
    58. let tdtPoiLayer = new WebTileLayer({
    59. urlTemplate:
    60. 'http://{subDomain}.tianditu.gov.cn/DataServer?T=cva_w&x={col}&y={row}&l={level}&tk=bb8b7ddbbafd349de08d74835c91d83a',
    61. subDomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
    62. })
    63. map.add(tdtVecLayer);
    64. map.add(tdtPoiLayer);
    65. const view = new MapView({
    66. map: map,
    67. container: "viewDiv",
    68. zoom: 15,
    69. center: [118.583979, 31.89568],
    70. });
    71. //创建矢量图层并加入到地图上
    72. var graphicsLayer = new GraphicsLayer();
    73. map.add(graphicsLayer);
    74. var inputGraphicContainer = [];
    75. //创建要素集实例,它的features位graphic数组
    76. var featureSet = new FeatureSet();
    77. //点击添加点 大于15个点时执行gp服务生成核密度图
    78. view.on("click", (evt) => {
    79. let symbol = {
    80. type: "simple-marker",
    81. style: "circle",
    82. color: "blue",
    83. size: "18px",
    84. outline: {
    85. color: [255, 255, 0],
    86. width: 1
    87. }
    88. };
    89. var point = evt.mapPoint;
    90. //构建矢量数据源,包含几何和样式
    91. let inputGraphic = new Graphic({
    92. geometry: point,
    93. symbol: symbol,
    94. });
    95. graphicsLayer.add(inputGraphic);
    96. inputGraphicContainer.push(inputGraphic);
    97. if (inputGraphicContainer.length > 5) {
    98. featureSet.features = inputGraphicContainer;
    99. var params = {
    100. input: featureSet,
    101. outcellsize:0.5
    102. };
    103. geoprocessor.submitJob(gpUrl, params).then(jobInfo => {
    104. console.log(jobInfo)
    105. const jobid = jobInfo.jobId;
    106. console.log("job ID: ", jobid);
    107. const options = {
    108. interval: 1500,
    109. statusCallback: (j) => {
    110. console.log("Job Status: ", j.jobStatus);
    111. }
    112. };
    113. jobInfo.waitForJobCompletion(options).then(() => {
    114. const layer = jobInfo.fetchResultMapImageLayer();
    115. map.add(layer);
    116. });
    117. })
    118. }
    119. })
    120. });
    121. </script>
    122. </head>
    123. <body>
    124. <div id="viewDiv"></div>
    125. </body>
    126. </html>

    结果如下:

    四、分析执行过程:

    1.执行提交job 获取到jobid

       http://localhost:6080/arcgis/rest/services/kenerDenNew3/GPServer/kenerDen/submitJob

    2.取到jobid轮训,直到jobStatus为"esriJobSucceeded"http://localhost:6080/arcgis/rest/services/kenerDenNew3/GPServer/kenerDen/jobs/jc6c8f53ed9ca48419c0705a2bd199014?f=jsonicon-default.png?t=N7T8http://10.1.8.37:6080/arcgis/rest/services/kenerDenNew3/GPServer/kenerDen/jobs/jc6c8f53ed9ca48419c0705a2bd199014?f=json3.最后一步,通过范围去加载图片http://localhost:6080/arcgis/rest/services/kenerDenNew3/MapServer/jobs/jc6c8f53ed9ca48419c0705a2bd199014/export?bbox=13198742.293698987%2C3747343.614782717%2C13202674.023341509%2C3751905.9499086086&bboxSR=102100&imageSR=102100&size=823%2C955&dpi=96&format=png32&transparent=true&layers=show%3A0&f=imageicon-default.png?t=N7T8http://localhost:6080/arcgis/rest/services/kenerDenNew3/MapServer/jobs/jc6c8f53ed9ca48419c0705a2bd199014/export?bbox=13198742.293698987%2C3747343.614782717%2C13202674.023341509%2C3751905.9499086086&bboxSR=102100&imageSR=102100&size=823%2C955&dpi=96&format=png32&transparent=true&layers=show%3A0&f=image

  • 相关阅读:
    Spring Cloud 配置中心多环境配置bootstrap.yml
    Pikachu靶场-SQL注入-搜索型注入过关步骤
    ElasticSearch简介
    商家收款码费率是什么意思
    8、Bean的循环依赖问题
    GPLV2协议重点F&Q整理与总结
    RabbitMQ与Erlang版本对应关系
    uniapp调用接口渲染的问题
    计算读取速度
    “可持续计划”,京东与华为双向奔赴背后的“三方共赢”
  • 原文地址:https://blog.csdn.net/xlp789/article/details/133896905
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号