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

本文详细解析了在使用GeometryService进行buffer操作时遇到的问题及解决方案。重点在于正确配置BufferParameters,特别是bufferSpatialReference参数需要使用投影坐标系,而outSpatialReference则较为灵活。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值