从VectorTile(3.10)切换到TileVector(3.11)

时间:2015-11-13 02:34:30

标签: openlayers-3

我有这个简单的层使用openlayers 3.10

var roads = new ol.layer.Vector({
  source: new ol.source.TileVector({
    format: new ol.format.TopoJSON(),
    tileGrid: ol.tilegrid.createXYZ({maxZoom: 13}),
    tilePixelRatio: 16,
    url: 'http://MY_SERVER/{z}/{x}/{y}.topojson'
  }),
  style: new ol.style.Style({
    stroke: new ol.style.Stroke({
      width: 8,
      color: [0xff,0xff,0,0.3]
    })
  })
});

然后它被放置在OSM / mapnik层之上:

var map = new ol.Map({
  layers: [
    mapnik,
    roads
  ],
  target: 'map',
  view: new ol.View({
    center: ol.proj.fromLonLat([25, 46]),
    zoom: 7,
    minZoom:7,
    maxZoom:17
  })
});

然而3.11版本

new ol.layer.VectorTile({
  source: new ol.source.VectorTile({
    // ...
  })
});

失败。调用切片服务器,使用样式功能显示功能正确加载,但不显示任何功能!控制台上没有错误。我究竟做错了什么?

1 个答案:

答案 0 :(得分:1)

v3.11.0发布ol.source.TileVector已被删除。从现在开始,您可以使用ol.source.VectorTile。同时将代码从ol.layer.Vector更改为ol.layer.VectorTile。请参阅changelogexample