2016-10-25 3 views
2

Ich versuche, Vektor-Kachelpunkt-Features zu beschriften, aber sie wird immer am Kachelrand abgeschnitten. Ich habe (neben vielen anderen Dingen) versucht, die Option renderBuffer ohne Erfolg zu verwenden. Ich verwende OL 3.19 und die Vektorkacheln werden mit Geoserver 2.10RC1 geliefert und ich bekomme die gleichen Fehler in meiner Produktionsumgebung sowie die Bearbeitung eines Boundless-Beispiels (http://suite.opengeo.org/docs/latest/dataadmin/vectortiles/index.html).OL3/Geoserver: Vektor Kachel Etiketten wird abgeschnitten

Ich denke, vielleicht werden die Kacheln korrekt aus Geoserver und dass Openlayers irgendwie rendern und dann schneidet die Fliesen vor der Präsentation, aber ich bin irgendwie auf diesem fest.

Irgendwelche Ideen?

Screenshot of the way it looks

Und der Code-Schnipsel:

<script> 
 
    var style_simple = new ol.style.Style({ 
 
    fill: new ol.style.Fill({ 
 
     color: '#ADD8E6' 
 
    }), 
 
    stroke: new ol.style.Stroke({ 
 
     color: '#880000', 
 
     width: 1 
 
    }), 
 
\t text: new ol.style.Text({ 
 
\t text:'LOREMIPSUM'}) 
 
    }); 
 

 
    function simpleStyle(feature) { 
 
    return style_simple; 
 
    } 
 
    
 
    var map = new ol.Map({ 
 
    target: 'map', 
 
    view: new ol.View({ 
 
\t \t center: [0,0], 
 
\t \t zoom: 4 
 
    }), 
 
    layers: [new ol.layer.VectorTile({ 
 
\t renderBuffer:50, //doesn't matter 
 
     style:simpleStyle, 
 
     source: new ol.source.VectorTile({ 
 
     tilePixelRatio: 1, 
 
     tileGrid: ol.tilegrid.createXYZ({maxZoom: 19}), 
 
     format: new ol.format.MVT(), 
 
     url: 'http://localhost:8080/geoserver/gwc/service/tms/1.0.0/[email protected]%[email protected]/{z}/{x}/{-y}.pbf' 
 
     }) 
 
    })] 
 
    }); 
 
    </script>

+0

Die 'renderBuffer' Option wird nicht helfen. Wie in der Antwort unten empfohlen, müssen Ihre Fliesen die Beschriftungspunkte auf benachbarten Fliesen wiederholen. – ahocevar

Antwort

2

Ich habe das gleiche Problem mit ol.layer.VectorTile und Beschriftungen.
Alle Beschriftungen werden an den Kachelgrenzen in Scheiben geschnitten.

enter image description here
Voll Beispiel: https://jsfiddle.net/rn3qc4ca/

fragte ich die Openlayers-Entwickler um Hilfe: https://github.com/openlayers/ol3/issues/6275
-> Dies ist kein Fehler in Openlayers. Die Mapbox-Kacheln wiederholen die Label-Punkte in benachbarten Kacheln. Wenn Sie sehr große Schriftarten verwenden, wird das Etikett immer noch beschnitten.


My (unimplemented) Idee ist es, alle Etiketten in eine separate ol.layer.Vector Schicht zu platzieren. Da diese Art von Schicht nicht in Kacheln geschnitten wird, wird sie immer vollständig gedruckt.

+0

Das ist wirklich seltsam, da im OL3 Beispiel (http://openlayers.org/en/latest/examples/mapbox-vector-tiles-advanced.html) die Etiketten gut aussehen. – JohnnyBrattom

+0

Die Mapbox-Kacheln in diesem Beispiel wiederholen Beschriftungen auf benachbarten Kacheln. Deshalb sehen sie dort gut aus. – ahocevar