前端调用ArcGIS Server GeometryService服务

发布于:2022-12-24 ⋅ 阅读:(447) ⋅ 点赞:(0)

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 后查看