javascript – 在OpenLayers 3中将功能从一个位置移动到另一个位置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在OpenLayers 3中将功能从一个位置移动到另一个位置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1331字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 在OpenLayers 3中将功能从一个位置移动到另一个位置](/upload/InfoBanner/zyjiaocheng/804/4787531a6bdc4863acdf059861b1aae9.jpg)
如何将矢量要素从地图上的一个位置移动到另一个位置?
我有以下生成(0.0,0.0)的图标:
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point([0.0,0.0])
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.75,
src: 'marker-icon.png'
}))
});
iconFeature.setStyle(iconStyle);
这工作正常,但我现在如何将其移动到另一个位置?
我试过了:
iconFeature.move(x,y);
我也试过了
iconFeature.geometry.move(x,y);
后者说iconFeature.geometry未定义,第一个说icon.move()不是函数.
关于SO的先前答案提出了这些解决方案,但它们似乎对我不起作用.
解决方法:
实际上,您可以使用新的ol.coordinate.add方法执行此操作,请参阅the docs.
我添加了一个jsFiddle,证明了这一点,红点是原始的,绿色的是那些随机移动的点.
要获得这些点,请在矢量源上使用forEachFeature,并使用getGeometry().getCoordinates()来获取实际坐标,以及setGeometry,例如,
vectorSource.forEachFeature(function(feature){
var coordinate = feature.getGeometry().getCoordinates();
//move coordinates some distance
ol.coordinate.add(coordinate, 10, 10);
//use setGeometry to move it
feature.setGeometry(new ol.coordinate);
}
);
在这个小提琴中,我创建了一个新的几何体,而不是移动现有的几何体.显然,对于除点之外的其他东西,您必须遍历坐标数组.要仅移动特定几何体,可以使用getFeatureById method of ol.Feature获取特定特征,然后可以移动和更新其几何体,如上所述.
内容总结
以上是互联网集市为您收集整理的javascript – 在OpenLayers 3中将功能从一个位置移动到另一个位置全部内容,希望文章能够帮你解决javascript – 在OpenLayers 3中将功能从一个位置移动到另一个位置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。