mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-19 15:08:23 +02:00
Fine-tune zoom and center, make them properly match up with other maps
This commit is contained in:
@@ -62,22 +62,25 @@ iD.Background = function() {
|
||||
};
|
||||
|
||||
// derive the url of a 'quadkey' style tile from a coordinate object
|
||||
iD.Background.Bing = function (coord) {
|
||||
var template = 'http://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z',
|
||||
u = '';
|
||||
for (var zoom = coord[2]; zoom > 0; zoom--) {
|
||||
var byte = 0;
|
||||
var mask = 1 << (zoom - 1);
|
||||
if ((coord[0] & mask) !== 0) byte++;
|
||||
if ((coord[1] & mask) !== 0) byte += 2;
|
||||
u += byte.toString();
|
||||
}
|
||||
// distribute requests against multiple domains
|
||||
var t = coord[2] % 5;
|
||||
return template
|
||||
.replace('{t}', t)
|
||||
.replace('{u}', u)
|
||||
.replace('{x}', coord[0])
|
||||
.replace('{y}', coord[1])
|
||||
.replace('{z}', coord[2]);
|
||||
iD.Background.template = function(template) {
|
||||
return function(coord) {
|
||||
var u = '';
|
||||
for (var zoom = coord[2]; zoom > 0; zoom--) {
|
||||
var byte = 0;
|
||||
var mask = 1 << (zoom - 1);
|
||||
if ((coord[0] & mask) !== 0) byte++;
|
||||
if ((coord[1] & mask) !== 0) byte += 2;
|
||||
u += byte.toString();
|
||||
}
|
||||
// distribute requests against multiple domains
|
||||
var t = coord[2] % 5;
|
||||
return template
|
||||
.replace('{t}', t)
|
||||
.replace('{u}', u)
|
||||
.replace('{x}', coord[0])
|
||||
.replace('{y}', coord[1])
|
||||
.replace('{z}', coord[2]);
|
||||
};
|
||||
};
|
||||
|
||||
iD.Background.Bing = iD.Background.template('http://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z');
|
||||
|
||||
@@ -444,9 +444,9 @@ iD.Map = function() {
|
||||
|
||||
map.zoom = function(z) {
|
||||
if (!arguments.length) {
|
||||
return Math.max(Math.log(projection.scale()) / Math.log(2) - 7, 0);
|
||||
return Math.max(Math.log(projection.scale()) / Math.LN2 - 8, 0);
|
||||
}
|
||||
var scale = 256 * Math.pow(2, z - 1),
|
||||
var scale = 256 * Math.pow(2, z),
|
||||
center = pxCenter(),
|
||||
l = pointLocation(center);
|
||||
projection.scale(scale);
|
||||
@@ -482,7 +482,8 @@ iD.Map = function() {
|
||||
c = pxCenter(),
|
||||
ll = projection(loc);
|
||||
projection.translate([
|
||||
t[0] - ll[0] + c[0], t[1] - ll[1] + c[1]]);
|
||||
t[0] - ll[0] + c[0],
|
||||
t[1] - ll[1] + (c[1] /2)]);
|
||||
zoom.translate(projection.translate());
|
||||
return redraw();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user