欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用ArcGIS Restful API 生成token和上传shp压缩包获取features

程序员文章站 2022-07-14 10:34:57
...

本篇博客简要介绍了如何在使用ArcGIS Restful API生成token, 并使用该token上传shp压缩包

生成Token

  上传shp压缩包需要使用的是Portal的Token, 那么需要使用Portal的Restful API

  API文档地址 https://<root-url>/arcgis/portalhelp/apidocs/rest/index.html

  1.   参考文档说明, 打开自己的生成token页面:

             https://simpleportal.esricd.local/arcgis/sharing/rest/generateToken

             使用ArcGIS Restful API 生成token和上传shp压缩包获取features

  ​​​ 2.  填写用户名, 密码后查看network, 拿到请求token的格式

         使用ArcGIS Restful API 生成token和上传shp压缩包获取features

           使用ArcGIS Restful API 生成token和上传shp压缩包获取features

   3.   编写ajax请求生成token

function genToken() {
  const url = "https://simpleportal.esricd.local/arcgis/sharing/rest/generateToken"
  const data = { username: 'esri_chen', password: '12345678', client: 'requestip',f:'json', expiration: 60}
  $.post(url, data).done((d) => {
    token = d.token
  })
}

上传Shp压缩包

上传Shp压缩包参考自Enterprise的web map的Add Layer from File

web map 地址: https://<root-url>/arcgis/home/webmap/viewer.html

  1. 打开web map, 选择要加载的图层
    使用ArcGIS Restful API 生成token和上传shp压缩包获取features
  2. 打开F12查看network
    使用ArcGIS Restful API 生成token和上传shp压缩包获取features
    使用ArcGIS Restful API 生成token和上传shp压缩包获取features
    由此可知, 上传shp压缩包, 我们改变token, file即可
  3. 编写代码
    function uploadZip() {
      var form = document.getElementById('upload')
      const token = 'kN2ZCLkYENJ3-rwxD_3kjUkLp4RX9v8XhmA-lJsy4c1JeNRdRFYNNQr0R7dk67TSKQzeVkZSmqETbzzZsGqaISv9qMk2cn7qSxI5oFC0ZSmanw7Cw8cSsHiYAzsCztNA3IbQTREAwTrE323y43kGTQ..'
    
      formData = new FormData(form);
      formData.append('f', 'json')
      formData.append('option', 'on')
      formData.append('filetype', 'shapefile')
      formData.append('publishParameters', '{"name":"1980","targetSR":{"wkid":102100},"maxRecordCount":4000,"enforceInputFileSizeLimit":true,"enforceOutputJsonSizeLimit":true,"locationType":"none","generalize":true,"maxAllowableOffset":10.583354500043306,"reducePrecision":true,"numberOfDigitsAfterDecimal":0}')
      $.ajax({
       url:"https://simpleportal.esricd.local/arcgis/sharing/rest/content/features/generate?token=" + token,
       type:"post",
       data: formData,
       processData:false,
       contentType:false,
       success:function(res){
        console.log(res)
       },
       error:function(err){
        alert("网络连接失败,稍后重试",err);
       }
      })
    }

     

  4. 得到features
    使用ArcGIS Restful API 生成token和上传shp压缩包获取features

总结

    我们可以通过api生成token并上传shp压缩包得到features, 但是这个features或者featureCollection的格式与arcgis js api 4.x版本实例化Feature的格式不一致, 所以不能直接得到一个Feature, 但是, 我们可以通过features作为gp工具的参数, 来实现上传shp压缩包并加载到地图上的功能

相关标签: ArcGIS