2016-11-29 9 views
0

This is a picture which shows the number of my shops at this place, but why on my map the number 90 is repeated?. I am using a styleFunc to determine the color, the cold is something like:openlayer3 текст векторный слой дисплей повторил

function styleFunction(feature) { 
      var destCount = feature.get("destCount"); 
      var originCount = feature.get("originCount"); 
      if (typeof originCount === "undefined") { 
       originCount = 0; 
      } 
      if (typeof destCount === "undefined") { 
       destCount = 0; 
      } 
      totalPointsCount = destCount + originCount; 
      totalPointsCount = totalPointsCount.toString(); 
      return getStyle(feature.getProperties().type); 
     } 

function styleFunction(feature) { 
      var destCount = feature.get("destCount"); 
      var originCount = feature.get("originCount"); 
      if (typeof originCount === "undefined") { 
       originCount = 0; 
      } 
      if (typeof destCount === "undefined") { 
       destCount = 0; 
      } 
      totalPointsCount = destCount + originCount; 
      totalPointsCount = totalPointsCount.toString(); 
      return getStyle(feature.getProperties().type); 
     } 

код для создания Термобелье является:

fetch('data/xml/service-meta-data.xml').then(function (response) { 
     return response.text(); 
    }).then(function (text) { 
     var result = parser.read(text); 
     var options = ol.source.WMTS.optionsFromCapabilities(result, { 
      layer: 'China', 
      matrixSet: 'EPSG:3857' 
     }); 
     var baseLayer = new ol.layer.Tile({ 
      opacity: 1, 
      source: new ol.source.WMTS(options) 
     }); 
     var map = new ol.Map({ 
      layers: [ 
       baseLayer, 
       vectorLayer 
      ], 
      overlays: [infoOverlay], 
      target: 'map', 
      view: view 
     }); 
    }) 

Вы можете игнорировать всю обработку данных, и сосредоточиться на stylefunc, может кто-нибудь сказать мне, почему число повторяется? Много thxs

+0

Просто нажмите на ссылку выше, чтобы увидеть вложение –

+0

Эта проблема возникает, когда вы публикуете слой как TileWMS. Можете ли вы опубликовать код, создающий слой? –

+0

Простая версия кода, создающая базовый слой карты, похожа на то, что показано выше, как я могу решить проблему здесь? –

ответ

0

Посмотрите эту ссылку Openlayers3 Vector labels.

Плиточные слои создают дубликаты меток при запуске масштабирования. Поэтому создайте его с помощью слоя ImageWMS.

var baseLayer = new ol.layer.Image({ 
     opacity: 1, 
     source: new ol.source.ImageWMS(options) 
    });