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)
});

如有理解错误,请各位不吝指出!

转载于:https://www.cnblogs.com/LXGISer/p/9099108.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值