如題,使用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的空間參考一致。