Skip to content

Commit f25f041

Browse files
committed
v1.17.0
2 parents b33f62f + 77ba540 commit f25f041

File tree

6 files changed

+181
-58
lines changed

6 files changed

+181
-58
lines changed

dist/angular-openlayers-directive.js

Lines changed: 58 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,6 +1375,7 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
13751375
case 'WKT':
13761376
return 'Vector';
13771377
case 'TileVector':
1378+
case 'MVT':
13781379
return 'TileVector';
13791380
default:
13801381
return 'Tile';
@@ -1412,6 +1413,7 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
14121413

14131414
var createSource = function(source, projection) {
14141415
var oSource;
1416+
var pixelRatio;
14151417
var url;
14161418
var geojsonFormat = new ol.format.GeoJSON(); // used in various switch stmnts below
14171419

@@ -1424,7 +1426,7 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
14241426
url = 'http://api.tiles.mapbox.com/v4/' + source.mapId + '/{z}/{x}/{y}.png?access_token=' +
14251427
source.accessToken;
14261428

1427-
var pixelRatio = window.devicePixelRatio;
1429+
pixelRatio = window.devicePixelRatio;
14281430

14291431
if (pixelRatio > 1) {
14301432
url = url.replace('.png', '@2x.png');
@@ -1434,7 +1436,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
14341436
url: url,
14351437
tileLoadFunction: source.tileLoadFunction,
14361438
attributions: createAttribution(source),
1437-
tilePixelRatio: pixelRatio > 1 ? 2 : 1
1439+
tilePixelRatio: pixelRatio > 1 ? 2 : 1,
1440+
wrapX: source.wrapX !== undefined ? source.wrapX : true
14381441
});
14391442
break;
14401443
case 'MapBoxStudio':
@@ -1447,11 +1450,32 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
14471450
'/' + source.mapId + '/tiles/{z}/{x}/{y}?access_token=' +
14481451
source.accessToken;
14491452

1453+
pixelRatio = window.devicePixelRatio;
1454+
1455+
if (pixelRatio > 1) {
1456+
url = url.replace('{y}?access_token', '{y}@2x?access_token');
1457+
}
1458+
14501459
oSource = new ol.source.XYZ({
14511460
url: url,
14521461
tileLoadFunction: source.tileLoadFunction,
14531462
attributions: createAttribution(source),
1454-
tileSize: source.tileSize || [512, 512]
1463+
tilePixelRatio: pixelRatio > 1 ? 2 : 1,
1464+
tileSize: source.tileSize || [512, 512],
1465+
wrapX: source.wrapX !== undefined ? source.wrapX : true
1466+
});
1467+
break;
1468+
case 'MVT':
1469+
if (!source.url) {
1470+
$log.error('[AngularJS - Openlayers] - MVT layer requires the source url');
1471+
return;
1472+
}
1473+
oSource = new ol.source.VectorTile({
1474+
attributions: source.attributions || '',
1475+
format: new ol.format.MVT(),
1476+
tileGrid: ol.tilegrid.createXYZ({maxZoom: source.maxZoom || 22}),
1477+
tilePixelRatio: source.tilePixelRatio || 16,
1478+
url: source.url
14551479
});
14561480
break;
14571481
case 'ImageWMS':
@@ -1479,7 +1503,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
14791503
tileLoadFunction: source.tileLoadFunction,
14801504
crossOrigin: (typeof source.crossOrigin === 'undefined') ? 'anonymous' : source.crossOrigin,
14811505
params: deepCopy(source.params),
1482-
attributions: createAttribution(source)
1506+
attributions: createAttribution(source),
1507+
wrapX: source.wrapX !== undefined ? source.wrapX : true
14831508
};
14841509

14851510
if (source.serverType) {
@@ -1517,7 +1542,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
15171542
resolutions: source.tileGrid.resolutions,
15181543
matrixIds: source.tileGrid.matrixIds
15191544
}),
1520-
style: (source.style === 'undefined') ? 'normal' : source.style
1545+
style: (source.style === 'undefined') ? 'normal' : source.style,
1546+
wrapX: source.wrapX !== undefined ? source.wrapX : true
15211547
};
15221548

15231549
if (isDefined(source.url)) {
@@ -1534,7 +1560,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
15341560
case 'OSM':
15351561
oSource = new ol.source.OSM({
15361562
tileLoadFunction: source.tileLoadFunction,
1537-
attributions: createAttribution(source)
1563+
attributions: createAttribution(source),
1564+
wrapX: source.wrapX !== undefined ? source.wrapX : true
15381565
});
15391566

15401567
if (source.url) {
@@ -1553,7 +1580,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
15531580
tileLoadFunction: source.tileLoadFunction,
15541581
attributions: createAttribution(source),
15551582
imagerySet: source.imagerySet ? source.imagerySet : bingImagerySets[0],
1556-
culture: source.culture
1583+
culture: source.culture,
1584+
wrapX: source.wrapX !== undefined ? source.wrapX : true
15571585
};
15581586

15591587
if (source.maxZoom) {
@@ -1571,7 +1599,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
15711599

15721600
oSource = new ol.source.MapQuest({
15731601
attributions: createAttribution(source),
1574-
layer: source.layer
1602+
layer: source.layer,
1603+
wrapX: source.wrapX !== undefined ? source.wrapX : true
15751604
});
15761605

15771606
break;
@@ -1588,7 +1617,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
15881617
oSource = new ol.source.XYZ({
15891618
attributions: createAttribution(source),
15901619
tileLoadFunction: source.tileLoadFunction,
1591-
url: _url
1620+
url: _url,
1621+
wrapX: source.wrapX !== undefined ? source.wrapX : true
15921622
});
15931623

15941624
break;
@@ -1601,7 +1631,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
16011631
oSource = new ol.source.TileArcGISRest({
16021632
attributions: createAttribution(source),
16031633
tileLoadFunction: source.tileLoadFunction,
1604-
url: source.url
1634+
url: source.url,
1635+
wrapX: source.wrapX !== undefined ? source.wrapX : true
16051636
});
16061637

16071638
break;
@@ -1712,7 +1743,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
17121743
url: source.url,
17131744
attributions: createAttribution(source),
17141745
tileLoadFunction: source.tileLoadFunction,
1715-
crossOrigin: 'anonymous'
1746+
crossOrigin: 'anonymous',
1747+
wrapX: source.wrapX !== undefined ? source.wrapX : true
17161748
});
17171749
break;
17181750

@@ -1728,7 +1760,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
17281760
format: source.format,
17291761
tileGrid: new ol.tilegrid.createXYZ({
17301762
maxZoom: source.maxZoom || 19
1731-
})
1763+
}),
1764+
wrapX: source.wrapX !== undefined ? source.wrapX : true
17321765
});
17331766
break;
17341767

@@ -1758,7 +1791,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
17581791
var url = source.url + z + '/' + x + '/' + y + '.png';
17591792

17601793
return url;
1761-
}
1794+
},
1795+
wrapX: source.wrapX !== undefined ? source.wrapX : true
17621796
});
17631797
break;
17641798
case 'TileImage':
@@ -1779,7 +1813,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
17791813
.replace('{x}', x.toString())
17801814
.replace('{y}', y.toString());
17811815
return url;
1782-
}
1816+
},
1817+
wrapX: source.wrapX !== undefined ? source.wrapX : true
17831818
});
17841819
break;
17851820
case 'KML':
@@ -1798,7 +1833,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
17981833
}
17991834
oSource = new ol.source.Stamen({
18001835
tileLoadFunction: source.tileLoadFunction,
1801-
layer: source.layer
1836+
layer: source.layer,
1837+
wrapX: source.wrapX !== undefined ? source.wrapX : true
18021838
});
18031839
break;
18041840
case 'ImageStatic':
@@ -1827,7 +1863,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
18271863
maxZoom: source.maxZoom,
18281864
projection: source.projection,
18291865
tileUrlFunction: source.tileUrlFunction,
1830-
tileLoadFunction: source.tileLoadFunction
1866+
tileLoadFunction: source.tileLoadFunction,
1867+
wrapX: source.wrapX !== undefined ? source.wrapX : true
18311868
});
18321869
break;
18331870
case 'Zoomify':
@@ -1836,7 +1873,8 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
18361873
}
18371874
oSource = new ol.source.Zoomify({
18381875
url: source.url,
1839-
size: source.imageSize
1876+
size: source.imageSize,
1877+
wrapX: source.wrapX !== undefined ? source.wrapX : true
18401878
});
18411879
break;
18421880
}
@@ -2132,6 +2170,9 @@ angular.module('openlayers-directive').factory('olHelpers', ["$q", "$log", "$htt
21322170
if (isDefinedAndNotNull(layer.maxResolution)) {
21332171
layerConfig.maxResolution = layer.maxResolution;
21342172
}
2173+
if (isDefinedAndNotNull(layer.style) && type === 'TileVector') {
2174+
layerConfig.style = layer.style;
2175+
}
21352176

21362177
switch (type) {
21372178
case 'Image':

dist/angular-openlayers-directive.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-openlayers-directive.min.no-header.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)