arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算

最近在做gp服务,想在前端做ndvi的分析,但是发现网上借鉴的资料是少之又少,所以就自己探索。
1、首先发布自己的gp服务,关于这个方面我就不多讲了,跟普通的发布差不多。
提一下几个要点:
1)发布gp服务前要再运行一次,添加参数的时候记得将其设置为模型参数。
arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算_第1张图片
2)设置参数的类型,一定要记得设置模型参数的类型,不然发布后模型的输入参数就是GPString,这个参数是不对的,右键-属性-数据类型-设置为栅格图层
arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算_第2张图片
2.前端调用
先说一下要注意的事项:
1)gp服务的地址,不是功能里面的rest 的url,很多人直接就复制这个url,发现调用后执行根本没有反应,这个url是没用的,要在下一级加入你的model的名字。
arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算_第3张图片
http://localhost:6080/arcgis/rest/services/GP_Service/ndvi9/GPServer/ndvi
2)输入参数的类型,发布后发现inputs里面的默认参数是null,它标注的类型为GPRasterDataLayer,在arcgis api中对应的类型是RasterData()
https://developers.arcgis.com/javascript/3/jsapi/rasterdata-amd.html
,自己看一下定义,等下也会说。
arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算_第4张图片
参数对应类型参照表(这个表在arcmap帮助里面可以查看,在任务参数属性 (REST)
目录下):
这里我们看到GPRasterDataLayer对应的json是{“url”:"地址 ",“format”:“tif”},这个url地址可以将其放在你的本地站点里,这样它就可以指向你的tif文件了,例如我设置的是{"ur"l:“http://localhost/b6.tif” ,“format”:“tif”}我将文件放置在本地站点中,物理地址应该也可以。
arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算_第5张图片
arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算_第6张图片
arcgis api for js调用GP服务发布栅格计算器进行NDVI的计算_第7张图片在这里插入图片描述
3)前端调用,直接看代码吧,写得比较详细。




    
    
    Geoprocessing - Export result as map service
    
    
    
    
    

   

    
    


    
  


    

结果:


有什么不懂的可以问我。

你可能感兴趣的:(想到什么写什么类,gp服务,arcgis,api,NDVI,栅格计算器)