OL harita üzerinde, aynı boyutlar için anahatlar, arka plan renkleri ve etiketler içeren birkaç katmanım var, böylece katmanlardan birini veya birkaçını gösterebilir veya gizleyebilirsiniz. Bu katmanların ikisi sadece etiketlerdir ... stilde dolgu veya kontur yoktur. Bir etiket özelliğinin orta merkezinde diğerinin üzerinde oturmalı ancak OL böyle, dikey daha uzakta ya da birbirine göreli özelliği çokgen yüksekliğine bunları yaymak görünüyor:Openlayers 3 özellik özelliklerine göre etiket özellik konumu?
denedim alt etiketin metin stili bloğuna bir offsetY: 15
ayarlayarak alt etiketden önce bir satır sonu ekleyerek ve alt etikette textBaseline:'top'
ve üstte textBaseline:'bottom'
ayarını yapın (bu son çukur girişimi oldu!) ama her zaman farklı şekilde yayılır!
function fields_label_style() {
return [
new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(255,255,255,0)'
}),
stroke: new ol.style.Stroke({
color: 'rgba(255,255,255,0)',
width: 1
}),
text: new ol.style.Text({
font: '13px Calibri,sans-serif',
fill: new ol.style.Fill({ color: '#ffffff' }),
stroke: new ol.style.Stroke({
color: '#000000', width: 2
}),
// get the text from the feature - `this` is ol.Feature
// and show only under certain resolution
text: map.getView().getZoom() > 14 ? this.get('description') : ''
})
})
];
}
Ve alt etiket
:function cropping_label_style() {
return [
new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(255,255,255,0)'
}),
stroke: new ol.style.Stroke({
color: 'rgba(255,255,255,0)',
width: 1
}),
text: new ol.style.Text({
font: '13px Calibri,sans-serif',
fill: new ol.style.Fill({ color: '#ffffff' }),
stroke: new ol.style.Stroke({
color: '#000000', width: 2
}),
// get the text from the feature - `this` is ol.Feature
// and show only under certain resolution
text: map.getView().getZoom() > 14 ? this.get('description') : '',
offsetY: 15
})
})
];
}
İkisi kesinlikle aynı poligon taslağa sahip
İşte üst etiket için benim tarzım apartman. Soru yok. Ben sadece belki OpenLayers tedavi olduğunu düşünebiliriz ziyade belgelerinde belirtildiği gibi pikselden daha yüzde olarak offset:
Anlattığım şeyden piksele benziyor: tinyurl.com/hxpj6hn piksellerle çalışan bir örnek gösteriyor. Her dizide bir metin stili olan bir dizi stili döndürmeyi deneyin. Aynı sonuç mu? –