打开图层 3 使用数字值来显示不同的图标
Open Layers 3 use a number value to show different icon
我有一个天气图,我想根据每个点参数中的值显示不同的天气图标。获得每个图标的值后,我必须将其与对象数组的数量进行比较并获取特定的键值。
一旦我知道地图中每个点的关键值,我想将它们与包含所有图标的垂直精灵图像的偏移位置相匹配。每个图标都是 35x35px,所以我可以将 value 参数乘以图标的高度并得到位置。
但是我正在努力在我的地图中实现这一点,这就是我目前所拥有的:
// Object array with specific parameters
var obg = {
{1:34},{2:11},{3:54}
}
// Create a layer for the weather icons
var layerWeather = new ol.layer.Vector({
name: 'dwc',
preload: 4,
source: vectorSource, // GeoJSON source
style: weatherIcon
});
// Create a Weather Icon Style
var weatherIcon = function(feature) {
// Get the value of the icon
var iconVal = parseFloat(Math.round(feature.get('value')));
// Loop each value
$.each(obj, function(number, value) {
// Create vertical offset offset calculation
var offsetY = value * 35;
// Check if the number equals the icon value
if (number == iconVal) { // if number is 1 and icon has value 1
// Create a new icon style
feature.setStyle(
new ol.style.Style({
image: new ol.style.Icon({
src: 'urlIconPath',
offset: [0, offsetY], // Vertical Icon Sprite
size: [35, 35]
})
})
);
}
}
}
您的对象 obg 无效。这应该有效:
var obg = {1:34,2:11,3:54};
var offsetY = obg[iconVal] * 35;
feature.setStyle(
new ol.style.Style({
image: new ol.style.Icon({
src: 'urlIconPath',
offset: [0, offsetY], // Vertical Icon Sprite
size: [35, 35]
})
})
);
相关文章:
- OpenLayers.Layer.Text在0,0处显示图标
- 更改 JWPlayer 显示图标(播放按钮)的不透明度
- 无法在Trent Richardson日期时间选择器中显示图标
- 在输入文本框中键入时显示图标
- 是否可以在桌面通知正文JavaScript中显示图标
- 添加 removeMarker 函数时,每 5 秒在地图上加载一次图钉不会显示图标
- Dijit 按钮显示图标,但不以编程方式显示标签
- 如何在图像上显示图标(灯箱缩略图)
- 自定义欧芹.js以在违规字段附近显示图标
- 在 dijit PopupMenuBarItem 中显示图标和标签
- Javascript JQuery Get Number 和显示图标
- 谷歌地图API不会显示图标
- 如何显示图标在表的特定行与onmouseover与Riot.js
- 如何用HTML/JavaScript在Adobe Air中显示图标文件
- 如何在select2的选定项中显示图标
- 我可以从一个框架内显示图标
- 在使用d3.js制作的地图上显示图标/图像,而不是圆圈/路径
- 在D3行星画布上显示图标
- 如何在流星点击时显示图标
- Google Maps API data.setStyle 未在地图上显示图标