Javascript OpenLayers MVT图层和设置样式

Javascript OpenLayers MVT图层和设置样式,javascript,geospatial,openlayers,Javascript,Geospatial,Openlayers,如何在MVT平铺层中的要素上设置要素的样式 我尝试了大量在geoJSON层上工作的东西(比如,如果我只是简单地更改为geoJSON),但是MVT等价物没有,这是不好的,因为geoJSON层是89MB,MVT是3MB 以下是我所做的: var stymple=new ol.style.style({ 填充:新的ol.style.fill({ 颜色:“透明”/#添加8E6” }), 笔划:新的ol风格笔划({ 颜色:“#880000”, 宽度:1 }) }); var styleClick=新建o

如何在MVT平铺层中的要素上设置要素的样式

我尝试了大量在geoJSON层上工作的东西(比如,如果我只是简单地更改为geoJSON),但是MVT等价物没有,这是不好的,因为geoJSON层是89MB,MVT是3MB

以下是我所做的:

var stymple=new ol.style.style({
填充:新的ol.style.fill({
颜色:“透明”/#添加8E6”
}),
笔划:新的ol风格笔划({
颜色:“#880000”,
宽度:1
})
});
var styleClick=新建ol.style.style({
填充:新的ol.style.fill({
颜色:“#添加8e6”
}),
笔划:新的ol风格笔划({
颜色:'#008800',
宽度:2
})
});
变量层='aw:gis_hucs';
var huclayer=新ol.layer.VectorTile({
风格:简单,
来源:新ol.source.VectorTile({
tilePixelRatio:1,//大于1时过采样
tileGrid:ol.tileGrid.createXYZ({
最大缩放:19
}),
格式:new ol.format.MVT({featureClass:ol.Feature}),
网址:'http://geo.host.org:8080/geoserver/gwc/service/tms/1.0.0/“+layer+'@EPSG%3A'+projection_EPSG_no+'@pbf/{z}/{x}/{-y}.pbf”
})
});
var map=新ol.map({
目标:“地图”,
图层:[
胡克莱尔
],
视图:新ol.view({
中心:Lonlat的其他项目([-84.32470703125,33.8799896240234]),
缩放:7
})
});
hoverInteraction=新建ol.interaction.Select({
条件:ol.events.condition.pointerMove,
层:[胡克莱尔],
样式:styleClick/****无BUENO 1*/
});
地图上('点击')功能(e){
var特征=[];
map.forEachFeatureAtPixel(例如像素、功能(功能、图层){
功能。推送(功能);
});
功能。forEach(函数(cv)
{
cv.setStyle(styleClick);/*******无BUENO 2*/
}
);
});
map.addInteraction(hoverInteraction);
hoverInteraction.on('select',函数(e){
if(e.取消选择)e.取消选择。forEach(函数(cv){
cv.setStyle(空);
});
如果(e.selected)e.selected.forEach(函数(cv){
cv.setStyle(styleClick);/*******无BUENO 3*/
});
控制台日志(e);
});

ol.layer.VectorTile
不会侦听功能上的样式更改,因为它经过优化,可用于具有
ol.render.Feature
功能而不是
ol.Feature
的源代码。因此,无论何时更改要素样式,都必须调用
huclayer.changed()
,以使用更新的样式触发重新渲染