1. 使用ArcGIS Server GeometryService服务做空间分析
arcgis js api提供了比较便利的GeometryService api接口,本节主要记录一下用原始接口调用形式实现服务调用。
1.1 服务接口(缓冲区分析服务)
const restUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer/buffer"
1.2 需要提交的数据
geometries是esri专用geomtery格式,unit是esri专用度量编码。
const geometries = JSON.stringify({
geometryType: 'esriGeometryPolygon',
geometries: [{
rings: geolayer.rings,
spatialReference: geolayer.spatialReference,
}],
})
const geometryData = {
f: 'pjson',
outSR: 4490,
inSR: 4490,
bufferSR: 4490,
distances: 200,
unit: 9001,
unionResults: true,
geodesic: true,
geometries: geometries
}
1.3 fetch实现post接口调用
ArcGIS Server GeometryService既可以用get请求实现也可以用post请求实现,这里示例为post请求实现方式,数据传输形式为formdata
let formdata = new FormData()
formdata.append('f', 'pjson')
formdata.append('outSR', outSar)
formdata.append('inSR', inSar)
formdata.append('bufferSR', 4490)
formdata.append('distances', 200)
formdata.append('unit', 9001)
formdata.append('unionResults', true)
formdata.append('geodesic', true)
formdata.append('geometries', geometries)
fetch(restUrl, {
method: "POST",
body: formdata
}).then((response) => {
return response.json().then(data=>{
console.log(data)
}).catch(err=>{
console.log("error :",err)
})
})
1.4 axios实现post接口调用
axios.post(restUrl, formdata).then((res) => {
console.log(res.data);
})
1.5 数据结果
本文含有隐藏内容,请 开通VIP 后查看