Javascript / Openlayers for loop不起作用
Javascript / Openlayers for loop not working
我正在使用 OpenLayers 创建地图,但在显示要素时遇到问题。
我想取一个数组,并为每个坐标分配它自己的标记。 这是相关代码(完整代码在帖子底部):
var npctowns = [
[ 533, mapy-966 ],
[ 833, mapy-1766 ],
[ 2000, mapy-500 ],
[ 1500, mapy-1700 ]
];
for (var i = 0; i < npctowns.length; i++) {
var lon = npctowns[i][0];
var lat = npctowns[i][0];
var npcTownIcons = new ol.Feature({
geometry: new ol.geom.Point([lon,lat])
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon ({
anchor: [0, 0],
anchorXUnits: 'pixels',
anchorYUnits: 'pixels',
opacity: 1,
src: 'assets/img/icons/Town.gif'
})
});
var vectorSource = new ol.source.Vector({
features: [npcTownIcons]
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
};
我想我遇到了一个问题,没有动态分配特征变量? 但不知道如何解决它! 任何帮助真的非常感谢!
jsfiddle上的完整地图代码:https://jsfiddle.net/dhaurhvj/
您需要在
for
循环之外初始化vectorLayer
,以便映射初始化可以访问该vectorLayer
。
然后,您实际上需要将这些要素添加到图层中(因为它是之前创建的)。
我认为代码应该看起来像这样:
var vectorSource = new ol.source.Vector({features: [[]]});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon ({
anchor: [0, 0],
anchorXUnits: 'pixels',
anchorYUnits: 'pixels',
opacity: 1,
src: 'assets/img/icons/Town.gif'
})
});
for (var i = 0; i < npctowns.length; i++) {
var lon = npctowns[i][0];
var lat = npctowns[i][0];
var newIcon = new ol.Feature({
geometry: new ol.geom.Point([lon,lat])
});
newIcon.setStyle(iconStyle);
vectorSource.addFeature(newIcon);
};
你也可以用这些(newIcon
)特征填充数组,并在循环后初始化vectorLayer并将该数组传递给它。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Meteor-添加用户自定义字段的方法不起作用
- Javascript / Openlayers for loop不起作用
- Loop 在“无数字确认”JavaScript 中不起作用
- JavaScript while-loop不起作用
- js的fade in onLoad with for-loop, styles和setInterval不起作用