使用GeometryService進行buffer總是報錯‘init.js:192 Error: Unable to complete operation.(…)’


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章