openlayers加載矢量切片,EPSG:4326坐標系和EPSG:900913坐標系有些不同,主要是分辨率(Resolutions)計算的差別。
以下加載代碼基於V5.3.3版本的openlayers版本。
EPSG:900913坐標系加載代碼如下:

function loadData(){ var source = new VectorTileSource({ format: new MVT(), tileGrid: createXYZ({ extent: getProjection('EPSG:900913').getExtent(), maxZoom: 22 }), tileUrlFunction:function(tileCoord){ return '/geoserver/gwc/service/tms/1.0.0/HNQX:wisdom_mroad@EPSG:900913@pbf/' + (tileCoord[0]) + '/' + tileCoord[1] + '/' + (Math.pow(2, tileCoord[0]) + tileCoord[2]) + '.pbf' } }); return source; }
EPSG:4326坐標系加載代碼如下:
1 function setTrackData(sourceName){ 2 var source = new VectorTileSource({ 3 format: new MVT(), 4 tileGrid: createXYZ({ 5 extent: getProjection('EPSG:4326').getExtent(), 6 maxZoom: 22 7 }), 8 tileUrlFunction:function(tileCoord){ 9 return '/geoserver/gwc/service/tms/1.0.0/HNQX:' + sourceName + '@EPSG:4326@pbf/' + (tileCoord[0] - 1) 10 + '/' + tileCoord[1] + '/' + (Math.pow(2, tileCoord[0] - 1) + tileCoord[2]) + '.pbf' 11 } 12 }); 13 return source; 14 }
Tips:截至目前,發現最新6.X版本的openlayers加載矢量切片會出錯。