如题,使用GeometryService进行buffer,控制台总是报错,不能正确的buffer,看不出具体的错误内容。
‘init.js:192 Error: Unable to complete operation.(…)’
问题出现在BufferParameters的设置参数上。
<span style="font-size:18px;">var params = new BufferParameters();
params.geometries = [geometry];
params.distances = [distance];
params.bufferSpatialReference = that.map.spatialReference;
params.outSpatialReference = that.map.spatialReference;
params.unit = GeometryService['UNIT_METER'];</span>
看起来参数设置是没有问题的。但是,说明文档没有说清楚,害我找了4个小时的错误。
1、bufferSpatialReference这个参数必须使用投影坐标系。
这个参数是执行缓冲区的要素的坐标参考,如果使用投影坐标系就会报错。说明文档中只是说这个是设置空间参考的。
原代码改为:
<span style="font-size:18px;">params.bufferSpatialReference = <span style="font-size: 18px;">new SpatialReference({ wkid: 102100});</span></span>
2、outSpatialReference这个参数可以是地理坐标系或投影坐标系。
这两个参数如果没有设置,会默认与另一个参数相一致,如果两个参数都没有设置,则与geometry的空间参考一致。