From d4b923bd70014e89485f051ddb83fab62c14becc Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 20 Mar 2013 17:52:47 -0700 Subject: [PATCH] WIP on Bing copyright notices (#1096) --- js/id/renderer/background_source.js | 37 +++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/js/id/renderer/background_source.js b/js/id/renderer/background_source.js index 3ddc76477..14e15852f 100644 --- a/js/id/renderer/background_source.js +++ b/js/id/renderer/background_source.js @@ -33,6 +33,43 @@ iD.BackgroundSource.template = function(data) { return generator; }; +iD.BackgroundSource.Bing = function(data) { + var bing = iD.BackgroundSource.template(data), + url = "http://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial/0,0?zl=1&mapVersion=v1&key=Arzdiw4nlOJzRwOz__qailc8NiR31Tt51dN2D7cm57NrnceZnCpgOkmJhNpGoppU&include=ImageryProviders&output=xml"; + + var providers; + + d3.json(url, function(err, json) { + if (json) { + providers = json.resourceSets[0].resources[0].imageryProviders.map(function(provider) { + return { + attribution: provider.attribution, + areas: provider.areas.map(function(area) { + return { + zoom: [area.zoomMin, area.zoomMax], + extent: iD.geo.Extent([area.bbox[1], area.bbox[0]], [area.bbox[3], area.bbox[2]]) + } + }) + }; + }); + } + }); + + bing.copyrightNotices = function(zoom, extent) { + return providers.filter(function(provider) { + return _.any(provider.areas, function(area) { + return extent.intersects(area.extent) && + area.zoom[0] <= zoom && + area.zoom[1] >= zoom; + }) + }).map(function(provider) { + return provider.attribution; + }).join(', '); + }; + + return bing; +}; + iD.BackgroundSource.Custom = function() { var template = window.prompt('Enter a tile template. Valid tokens are {z}, {x}, {y} for Z/X/Y scheme and {u} for quadtile scheme.'); if (!template) return null;