openlayers4添加feature的bug記錄


在項目中需要展示矢量面數據,數據源由geojson轉換為普通的數組存儲后,添加feature怎么都添加不上,最后寫demo找出了問題所在,特此記錄。

下圖為openlayers v4.6.5中ol.Feature的說明,其中給出兩種初始化feature的方式,示例和初始化函數中兩種。

經過測試,針對面數據的展示(線未測試,點數據展示沒有問題),示例如下:

第一種寫法如下:經過測試,展繪成功;(面數據)

var polyStr = "[[[113.4666829,34.76404302],[113.4667629,34.76377283],[113.4670522,34.76214859],[113.4671131,34.76180527],[113.4672604,34.76147335],[113.4696105,34.762313],[113.4693823,34.76261417],[113.4691693,34.76286535],[113.4670655,34.76398243],[113.4666829,34.76404302]]]";
var polygon = new ol.geom.Polygon(JSON.parse(polyStr));
polygon.applyTransform(ol.proj.getTransform('EPSG:4326', 'EPSG:3857'));
var feature = new ol.Feature(polygon);

第二種寫法如下:經過測試,代碼不報錯,但feature展繪失敗;(面數據)

var polyStr = "[[[113.4666829,34.76404302],[113.4667629,34.76377283],[113.4670522,34.76214859],[113.4671131,34.76180527],[113.4672604,34.76147335],[113.4696105,34.762313],[113.4693823,34.76261417],[113.4691693,34.76286535],[113.4670655,34.76398243],[113.4666829,34.76404302]]]";
var polygon = new ol.geom.Polygon(JSON.parse(polyStr));
polygon.applyTransform(ol.proj.getTransform('EPSG:4326', 'EPSG:3857'));
var feature = new ol.Feature({
  geomtry: polygon,
  name: 'My Polygon'
});

經測試,點數據展示沒有問題,示例代碼如下:

var cameraPnt = ol.proj.transform(JSON.parse([113.4667629,34.76377283]), 'EPSG:4326', 'EPSG:3857');
var feature = new ol.Feature({
    geometry: new ol.geom.Point(cameraPnt)
});

如有理解錯誤,請各位不吝指出!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM