mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 01:02:58 +00:00
Support quartile scheme for any imagery source (fixes #2112)
This commit is contained in:
@@ -35,6 +35,17 @@ iD.BackgroundSource = function(data) {
|
||||
.replace(/\{switch:([^}]+)\}/, function(s, r) {
|
||||
var subdomains = r.split(',');
|
||||
return subdomains[(coord[0] + coord[1]) % subdomains.length];
|
||||
})
|
||||
.replace('{u}', function() {
|
||||
var u = '';
|
||||
for (var zoom = coord[2]; zoom > 0; zoom--) {
|
||||
var b = 0;
|
||||
var mask = 1 << (zoom - 1);
|
||||
if ((coord[0] & mask) !== 0) b++;
|
||||
if ((coord[1] & mask) !== 0) b += 2;
|
||||
u += b.toString();
|
||||
}
|
||||
return u;
|
||||
});
|
||||
};
|
||||
|
||||
@@ -63,6 +74,8 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
|
||||
// http://msdn.microsoft.com/en-us/library/ff701716.aspx
|
||||
// http://msdn.microsoft.com/en-us/library/ff701701.aspx
|
||||
|
||||
data.template = 'https://ecn.t{switch:0,1,2,3}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z';
|
||||
|
||||
var bing = iD.BackgroundSource(data),
|
||||
key = 'Arzdiw4nlOJzRwOz__qailc8NiR31Tt51dN2D7cm57NrnceZnCpgOkmJhNpGoppU', // Same as P2 and JOSM
|
||||
url = 'https://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?include=ImageryProviders&key=' +
|
||||
@@ -84,25 +97,6 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
|
||||
dispatch.change();
|
||||
});
|
||||
|
||||
var template = 'https://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z',
|
||||
subdomains = [0, 1, 2, 3];
|
||||
|
||||
bing.url = function(coord) {
|
||||
var u = '';
|
||||
|
||||
for (var zoom = coord[2]; zoom > 0; zoom--) {
|
||||
var b = 0;
|
||||
var mask = 1 << (zoom - 1);
|
||||
if ((coord[0] & mask) !== 0) b++;
|
||||
if ((coord[1] & mask) !== 0) b += 2;
|
||||
u += b.toString();
|
||||
}
|
||||
|
||||
return template
|
||||
.replace('{t}', subdomains[(coord[0] + coord[1]) % 4])
|
||||
.replace('{u}', u);
|
||||
};
|
||||
|
||||
bing.copyrightNotices = function(zoom, extent) {
|
||||
zoom = Math.min(zoom, 21);
|
||||
return providers.filter(function(provider) {
|
||||
|
||||
Reference in New Issue
Block a user