使用GeometryService进行buffer总是报错‘init.js:192 Error: Unable to complete operation.(…)’

来源:互联网 发布:神户制钢 知乎 编辑:程序博客网 时间:2024/06/09 07:08


如题,使用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的空间参考一致。

0 0
原创粉丝点击