mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 01:02:58 +00:00
Pull imagery from editor-imagery-index
This commit is contained in:
3
Makefile
3
Makefile
@@ -84,6 +84,9 @@ clean:
|
||||
translations:
|
||||
node data/update_locales
|
||||
|
||||
imagery:
|
||||
node data/update_imagery
|
||||
|
||||
SPRITE = inkscape --export-area-page
|
||||
|
||||
dist/img/line-presets.png: svg/line-presets.svg
|
||||
|
||||
1518
data/imagery.json
1518
data/imagery.json
File diff suppressed because it is too large
Load Diff
223
data/imagery.xml
223
data/imagery.xml
@@ -1,223 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<imagery>
|
||||
<set>
|
||||
<name>Bing aerial imagery</name>
|
||||
<url>http://ecn.t${0|1|2|3}.tiles.virtualearth.net/tiles/a$quadkey.jpeg?g=587&mkt=en-gb&n=z</url>
|
||||
<scheme>microsoft</scheme>
|
||||
<sourcetag>Bing</sourcetag>
|
||||
<attribution_url>http://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial/0,0?zl=1&mapVersion=v1&key=Arzdiw4nlOJzRwOz__qailc8NiR31Tt51dN2D7cm57NrnceZnCpgOkmJhNpGoppU&include=ImageryProviders&output=xml</attribution_url>
|
||||
<logo>bing_maps.png</logo>
|
||||
<logo_url>http://www.bing.com/maps</logo_url>
|
||||
<terms_url>http://opengeodata.org/microsoft-imagery-details</terms_url>
|
||||
<default>yes</default>
|
||||
</set>
|
||||
<set>
|
||||
<name>MapBox Satellite</name>
|
||||
<url>http://${a|b|c}.tiles.mapbox.com/v3/openstreetmap.map-4wvf9l0l/$z/$x/$y.png</url>
|
||||
<terms_url>http://mapbox.com/tos/</terms_url>
|
||||
</set>
|
||||
<set>
|
||||
<name>MapQuest Open Aerial</name>
|
||||
<url>http://oatile1.mqcdn.com/tiles/1.0.0/sat/$z/$x/$y.jpg</url>
|
||||
<terms_url>http://developer.mapquest.com/web/products/open/map#terms</terms_url>
|
||||
</set>
|
||||
<set>
|
||||
<name>OSM - Mapnik</name>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.org/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set>
|
||||
<name>OSM - OpenCycleMap</name>
|
||||
<url>http://tile.opencyclemap.org/cycle/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set>
|
||||
<name>OSM - MapQuest</name>
|
||||
<url>http://otile1.mqcdn.com/tiles/1.0.0/osm/$z/$x/$y.jpg</url>
|
||||
</set>
|
||||
<set minlat="24.055" minlon="-124.810" maxlat="49.386" maxlon="-66.865">
|
||||
<name>OSM - Tiger Edited Map</name>
|
||||
<type>900913</type>
|
||||
<url>http://tiger-osm.mapquest.com/tiles/1.0.0/tiger/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="50.858" minlon="-179.754" maxlat="71.463" maxlon="-129.899">
|
||||
<name>OSM - Tiger Edited Map</name>
|
||||
<type>900913</type>
|
||||
<url>http://tiger-osm.mapquest.com/tiles/1.0.0/tiger/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="18.702" minlon="-174.460" maxlat="26.501" maxlon="-154.516">
|
||||
<name>OSM - Tiger Edited Map</name>
|
||||
<type>900913</type>
|
||||
<url>http://tiger-osm.mapquest.com/tiles/1.0.0/tiger/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="24.055" minlon="-124.810" maxlat="49.386" maxlon="-66.865">
|
||||
<name>OSM US TIGER 2012 Roads Overlay</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.us/tiger2012_roads_expanded/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="50.858" minlon="-179.754" maxlat="71.463" maxlon="-129.899">
|
||||
<name>OSM US TIGER 2012 Roads Overlay</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.us/tiger2012_roads_expanded/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="18.702" minlon="-174.460" maxlat="26.501" maxlon="-154.516">
|
||||
<name>OSM US TIGER 2012 Roads Overlay</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.us/tiger2012_roads_expanded/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="24.005" minlon="-125.991" maxlat="50.009" maxlon="-65.988">
|
||||
<name>OSM US USGS Topographic Maps</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.us/usgs_scanned_topos/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="18.902" minlon="-160.579" maxlat="22.508" maxlon="-154.793">
|
||||
<name>OSM US USGS Topographic Maps</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.us/usgs_scanned_topos/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="51.255" minlon="-178.001" maxlat="71.999" maxlon="-130.004">
|
||||
<name>OSM US USGS Topographic Maps</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.us/usgs_scanned_topos/$z/$x/$y.png</url>
|
||||
</set>
|
||||
<set minlat="24.496" minlon="-124.819" maxlat="49.443" maxlon="-66.931">
|
||||
<name>OSM US USGS Large Scale Aerial Imagery</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c}.tile.openstreetmap.us/usgs_large_scale/$z/$x/$y.jpg</url>
|
||||
</set>
|
||||
<set minlat="48.995" minlon="-123.441" maxlat="50.426" maxlon="-121.346">
|
||||
<name>British Columbia bc_mosaic</name>
|
||||
<type>900913</type>
|
||||
<url>http://${a|b|c|d}.imagery.paulnorman.ca/tiles/bc_mosaic/$z/$x/$y.png</url>
|
||||
<terms_url>http://imagery.paulnorman.ca/tiles/about.html</terms_url>
|
||||
<sourcetag>bc_mosaic</sourcetag>
|
||||
</set>
|
||||
<set minlat="49.86" minlon="-8.72" maxlat="60.92" maxlon="1.84">
|
||||
<name>OS OpenData Streetview</name>
|
||||
<url>http://os.openstreetmap.org/sv/$z/$x/$y.png</url>
|
||||
<sourcetag>OS_OpenData_StreetView</sourcetag>
|
||||
</set>
|
||||
<set minlat="49.8" minlon="-9" maxlat="61.1" maxlon="1.9">
|
||||
<name>OS OpenData Locator</name>
|
||||
<url>http://tiles.itoworld.com/os_locator/$z/$x/$y.png</url>
|
||||
<sourcetag>OS_OpenData_Locator</sourcetag>
|
||||
<sourcekey>source:name</sourcekey>
|
||||
</set>
|
||||
<set minlat="49.8" minlon="-9" maxlat="61.1" maxlon="1.9">
|
||||
<name>OS 1:25k historic (OSM)</name>
|
||||
<url>http://ooc.openstreetmap.org/os1/$z/$x/$y.jpg</url>
|
||||
<sourcetag>OS 1:25k</sourcetag>
|
||||
</set>
|
||||
<set minlat="49.8" minlon="-9" maxlat="61.1" maxlon="1.9">
|
||||
<name>OS 1:25k historic (NLS)</name>
|
||||
<scheme>tms</scheme>
|
||||
<url>http://geo.nls.uk/mapdata2/os/25000/$z/$x/$y.png</url>
|
||||
<logo>icons/logo_nls70-nq8.png</logo>
|
||||
<logo_url>http://geo.nls.uk/maps/</logo_url>
|
||||
<sourcetag>OS 1:25k</sourcetag>
|
||||
</set>
|
||||
<set minlat="49.8" minlon="-9" maxlat="61.1" maxlon="1.9">
|
||||
<name>OS 7th Series historic (OSM)</name>
|
||||
<url>http://ooc.openstreetmap.org/os7/$z/$x/$y.jpg</url>
|
||||
<sourcetag>OS7</sourcetag>
|
||||
</set>
|
||||
<set minlat="49.8" minlon="-9" maxlat="61.1" maxlon="1.9">
|
||||
<name>OS 7th Series historic (NLS)</name>
|
||||
<scheme>tms</scheme>
|
||||
<url>http://geo.nls.uk/mapdata2/os/seventh/$z/$x/$y.png</url>
|
||||
<logo>icons/logo_nls70-nq8.png</logo>
|
||||
<logo_url>http://geo.nls.uk/maps/</logo_url>
|
||||
<sourcetag>OS7</sourcetag>
|
||||
</set>
|
||||
<set minlat="49.8" minlon="-5.8" maxlat="55.8" maxlon="1.9">
|
||||
<name>OS New Popular Edition historic</name>
|
||||
<url>http://ooc.openstreetmap.org/npe/$z/$x/$y.png</url>
|
||||
<sourcetag>NPE</sourcetag>
|
||||
</set>
|
||||
<set minlat="54.5" minlon="-7.8" maxlat="61.1" maxlon="-1.1">
|
||||
<name>OS Scottish Popular historic</name>
|
||||
<url>http://ooc.openstreetmap.org/npescotland/tiles/$z/$x/$y.jpg</url>
|
||||
<sourcetag>NPE</sourcetag>
|
||||
</set>
|
||||
<set minlat="51.071" minlon="-0.856" maxlat="51.473" maxlon="0.062">
|
||||
<name>Surrey aerial</name>
|
||||
<url>http://gravitystorm.dev.openstreetmap.org/surrey/$z/$x/$y.png</url>
|
||||
<sourcetag>Surrey aerial</sourcetag>
|
||||
</set>
|
||||
<set minlat="18.50" minlon="-72.43" maxlat="18.58" maxlon="-72.31">
|
||||
<name>Port au Prince - GeoEye Jan 2010</name>
|
||||
<url>http://gravitystorm.dev.openstreetmap.org/imagery/haiti/$z/$x/$y.png</url>
|
||||
<sourcetag>Port au Prince GeoEye, 2010-01</sourcetag>
|
||||
</set>
|
||||
<set minlat="17.95" minlon="-74.5" maxlat="20.12" maxlon="-71.58">
|
||||
<name>Haiti - IOM Drone Imagery, 2012-13</name>
|
||||
<url>http://wms.openstreetmap.fr/tms/1.0.0/iomhaiti/{zoom}/{x}/{y}</url>
|
||||
<sourcetag>iom_image2013</sourcetag>
|
||||
</set>
|
||||
<set minlat="24.2" minlon="-125.8" maxlat="49.5" maxlon="-62.3">
|
||||
<name>National Agriculture Imagery Program</name>
|
||||
<url>http://cube.telascience.org/tilecache/tilecache.py/NAIP_ALL/$z/$x/$y.png</url>
|
||||
<sourcetag>NAIP</sourcetag>
|
||||
</set>
|
||||
<set minlat="55.3" minlon="-168.5" maxlat="71.5" maxlon="-140">
|
||||
<name>National Agriculture Imagery Program</name>
|
||||
<url>http://cube.telascience.org/tilecache/tilecache.py/NAIP_ALL/$z/$x/$y.png</url>
|
||||
<sourcetag>NAIP</sourcetag>
|
||||
</set>
|
||||
<set minlat="51.32" minlon="-10.71" maxlat="55.46" maxlon="-5.37">
|
||||
<name>Ireland - NLS Historic Maps</name>
|
||||
<scheme>tms</scheme>
|
||||
<sourcetag>NLS Historic Maps</sourcetag>
|
||||
<url>http://geo.nls.uk/maps/ireland/gsgs4136/$z/$x/$y.png</url>
|
||||
<logo>icons/logo_nls70-nq8.png</logo>
|
||||
<logo_url>http://geo.nls.uk/maps/</logo_url>
|
||||
</set>
|
||||
<set minlat="54.44" minlon="7.81" maxlat="57.86" maxlon="15.49">
|
||||
<name>Denmark - Fugro Aerial Imagery</name>
|
||||
<url>http://tile.openstreetmap.dk/fugro2005/$z/$x/$y.jpg</url>
|
||||
<sourcetag>Fugro (2005)</sourcetag>
|
||||
</set>
|
||||
<set minlat="55.23403" minlon="12.09144" maxlat="55.43647" maxlon="12.47712">
|
||||
<name>Denmark - Stevns Kommune</name>
|
||||
<url>http://tile.openstreetmap.dk/stevns/2009/$z/$x/$y.jpg</url>
|
||||
<sourcetag>Stevns Kommune (2009)</sourcetag>
|
||||
</set>
|
||||
<set minlat="46.33" minlon="9.36" maxlat="49.09" maxlon="17.28">
|
||||
<name>Austria - geoimage.at</name>
|
||||
<url>http://geoimage.openstreetmap.at/4d80de696cd562a63ce463a58a61488d/$z/$x/$y.jpg</url>
|
||||
<sourcetag>geoimage.at</sourcetag>
|
||||
</set>
|
||||
<set minlon="19.02" minlat="40.96" maxlon="77.34" maxlat="70.48">
|
||||
<name>Russia - Kosmosnimki.ru IRS Satellite</name>
|
||||
<url>http://irs.gis-lab.info/?layers=irs&request=GetTile&z=$z&x=$x&y=$y</url>
|
||||
<sourcetag>Kosmosnimki.ru IRS</sourcetag>
|
||||
</set>
|
||||
<set minlon="23.16" minlat="51.25" maxlon="32.83" maxlat="56.19">
|
||||
<name>Belarus - Kosmosnimki.ru SPOT4 Satellite</name>
|
||||
<url>http://irs.gis-lab.info/?layers=spot&request=GetTile&z=$z&x=$x&y=$y</url>
|
||||
<sourcetag>Kosmosnimki.ru SPOT4</sourcetag>
|
||||
</set>
|
||||
<set minlon="96" minlat="-44" maxlon="168" maxlat="-9">
|
||||
<name>Australia - Geographic Reference Image</name>
|
||||
<url>http://agri.openstreetmap.org/$z/$x/$y.png</url>
|
||||
<sourcetag>AGRI</sourcetag>
|
||||
</set>
|
||||
<set minlat="47.13" minlon="7.69" maxlat="47.63" maxlon="8.48">
|
||||
<name>Switzerland - Canton Aargau - AGIS 25cm 2011</name>
|
||||
<url>http://tiles.poole.ch/AGIS/OF2011/$z/$x/$y.png</url>
|
||||
<sourcetag>AGIS OF2011</sourcetag>
|
||||
</set>
|
||||
<set minlat="47.06" minlon="7.33" maxlat="47.5" maxlon="8.04">
|
||||
<name>Switzerland - Canton Solothurn - SOGIS 2007</name>
|
||||
<url>http://mapproxy.sosm.ch:8080/tiles/sogis2007/EPSG900913/$z/$x/$y.png?origin=nw</url>
|
||||
<sourcetag>Orthofoto 2007 WMS Solothurn</sourcetag>
|
||||
</set>
|
||||
<set minlat="48.9" minlon="14" maxlat="55" maxlon="24.2">
|
||||
<name>Poland - Media-Lab fleet GPS masstracks</name>
|
||||
<url>http://masstracks.media-lab.com.pl/$z/$x/$y.png</url>
|
||||
<sourcetag>masstracks</sourcetag>
|
||||
</set>
|
||||
<set minlat="-34.95" minlon="17.64" maxlat="-22.05" maxlon="32.87">
|
||||
<name>South Africa - CD:NGI Aerial</name>
|
||||
<url>http://${a|b|c}.aerial.openstreetmap.org.za/ngi-aerial/$z/$x/$y.jpg</url>
|
||||
<sourcetag>ngi-aerial</sourcetag>
|
||||
</set>
|
||||
</imagery>
|
||||
@@ -1,86 +0,0 @@
|
||||
var fs = require('fs'),
|
||||
cheerio = require('cheerio');
|
||||
|
||||
$ = cheerio.load(fs.readFileSync('imagery.xml'));
|
||||
|
||||
var imagery = [];
|
||||
|
||||
// CENSORSHIP! No, these are just layers that essentially duplicate other layers
|
||||
// or which have no clear use case.
|
||||
var censor = {
|
||||
'MapQuest Open Aerial': true,
|
||||
'OSM - OpenCycleMap': true,
|
||||
'OSM - MapQuest': true
|
||||
};
|
||||
|
||||
var replace = {
|
||||
'OSM - Mapnik': 'OpenStreetMap',
|
||||
'National Agriculture Imagery Program': 'NAIP'
|
||||
};
|
||||
|
||||
var description = {
|
||||
'MapBox Satellite': 'Satellite and aerial imagery.',
|
||||
'OpenStreetMap': 'The default OpenStreetMap layer.',
|
||||
'OSM US TIGER 2012 Roads Overlay': 'Public domain road data from the US Government.',
|
||||
'Bing aerial imagery': 'Satellite imagery.',
|
||||
'NAIP': 'National Agriculture Imagery Program'
|
||||
};
|
||||
|
||||
var scaleExtent = {
|
||||
'MapBox Satellite': [0, 16],
|
||||
'OpenStreetMap': [0, 18],
|
||||
'OSM US TIGER 2012 Roads Overlay': [0, 17],
|
||||
'Bing aerial imagery': [0, 20]
|
||||
};
|
||||
|
||||
$('set').each(function(i) {
|
||||
var elem = $(this);
|
||||
|
||||
var im = {
|
||||
name: $(this).find('name').first().text(),
|
||||
template: $(this).find('url').first().text()
|
||||
};
|
||||
|
||||
// no luck with mapquest servers currently...
|
||||
if (im.template.match(/mapquest/g)) return;
|
||||
if (censor[im.name]) return;
|
||||
|
||||
im.name = im.name.replace('OSM US', '');
|
||||
|
||||
if (replace[im.name]) im.name = replace[im.name];
|
||||
|
||||
if (description[im.name]) im.description = description[im.name];
|
||||
|
||||
if (scaleExtent[im.name]) im.scaleExtent = scaleExtent[im.name];
|
||||
|
||||
var subdomains = [];
|
||||
|
||||
im.template = im.template
|
||||
.replace('$quadkey', '{u}')
|
||||
.replace(/\$(\w)/g, function(m) {
|
||||
return '{' + m[1] + '}';
|
||||
})
|
||||
.replace(/\$\{([^}.]+)\}/g, function(m) {
|
||||
subdomains = m.slice(2, m.length - 1).split('|');
|
||||
return '{t}';
|
||||
});
|
||||
|
||||
if (subdomains.length) im.subdomains = subdomains;
|
||||
|
||||
if (elem.attr('minlat')) {
|
||||
im.extent = [
|
||||
[+elem.attr('minlon'),
|
||||
+elem.attr('minlat')],
|
||||
[+elem.attr('maxlon'),
|
||||
+elem.attr('maxlat')]];
|
||||
}
|
||||
|
||||
['default', 'sourcetag', 'logo', 'logo_url', 'terms_url'].forEach(function(a) {
|
||||
if (elem.find(a).length) {
|
||||
im[a] = elem.find(a).first().text();
|
||||
}
|
||||
});
|
||||
imagery.push(im);
|
||||
});
|
||||
|
||||
fs.writeFileSync('imagery.json', JSON.stringify(imagery, null, 4));
|
||||
82
data/update_imagery.js
Normal file
82
data/update_imagery.js
Normal file
@@ -0,0 +1,82 @@
|
||||
var fs = require('fs');
|
||||
var sources = require('editor-imagery-index/imagery.json');
|
||||
var imagery = [];
|
||||
|
||||
// CENSORSHIP! No, these are just layers that essentially duplicate other layers
|
||||
// or which have no clear use case.
|
||||
var censor = {
|
||||
"2u": true,
|
||||
"Hike & Bike": true,
|
||||
"OpenCycleMap": true,
|
||||
"OpenStreetMap (German Language)": true,
|
||||
"OpenStreetMap (German Style)": true,
|
||||
"OpenStreetMap (Sorbian Language)": true,
|
||||
"MapQuest OSM": true,
|
||||
"OpenStreetMap (Mapnik Black & White)": true,
|
||||
"Skobbler": true,
|
||||
|
||||
"Stadtplan Z\u00fcrich": true, // https://github.com/osmlab/editor-imagery-index/issues/14
|
||||
"Public Transport (\u00d6PNV)": true // https://github.com/osmlab/editor-imagery-index/issues/15
|
||||
};
|
||||
|
||||
var description = {
|
||||
'MapBox Satellite': 'Satellite and aerial imagery.',
|
||||
'OpenStreetMap (Mapnik)': 'The default OpenStreetMap layer.',
|
||||
'TIGER 2012 Roads Overlay': 'Public domain road data from the US Government.',
|
||||
'Bing aerial imagery': 'Satellite and aerial imagery.',
|
||||
'NAIP': 'National Agriculture Imagery Program'
|
||||
};
|
||||
|
||||
sources.forEach(function(source) {
|
||||
if (source.type !== 'tms' && source.type !== 'bing')
|
||||
return;
|
||||
if (source.name in censor)
|
||||
return;
|
||||
|
||||
var im = {
|
||||
name: source.name,
|
||||
type: source.type
|
||||
};
|
||||
|
||||
if (description[im.name]) im.description = description[im.name];
|
||||
|
||||
im.template = source.url;
|
||||
|
||||
var extent = source.extent || {};
|
||||
|
||||
if (extent.min_zoom || extent.max_zoom) {
|
||||
im.scaleExtent = [
|
||||
+(extent.min_zoom || 0),
|
||||
+(extent.max_zoom || 20)
|
||||
];
|
||||
}
|
||||
|
||||
if (extent.bbox) {
|
||||
im.extents = [[
|
||||
[+extent.bbox.min_lon, +extent.bbox.min_lat],
|
||||
[+extent.bbox.max_lon, +extent.bbox.max_lat]
|
||||
]];
|
||||
}
|
||||
|
||||
var attribution = source.attribution || {};
|
||||
if (attribution.url) {
|
||||
im.terms_url = attribution.url;
|
||||
}
|
||||
if (attribution.text) {
|
||||
im.terms_text = attribution.text;
|
||||
}
|
||||
|
||||
['id', 'default', 'overlay'].forEach(function(a) {
|
||||
if (source[a]) {
|
||||
im[a] = source[a];
|
||||
}
|
||||
});
|
||||
|
||||
imagery.push(im);
|
||||
});
|
||||
|
||||
imagery.sort(function(a, b) {
|
||||
return a.name.localeCompare(b.name);
|
||||
});
|
||||
|
||||
fs.writeFileSync('data/imagery.json', JSON.stringify(imagery, null, 4));
|
||||
@@ -7,31 +7,31 @@ iD.Background = function(context) {
|
||||
overlayLayers = [];
|
||||
|
||||
var backgroundSources = iD.data.imagery.map(function(source) {
|
||||
if (source.sourcetag === 'Bing') {
|
||||
if (source.type === 'bing') {
|
||||
return iD.BackgroundSource.Bing(source, dispatch);
|
||||
} else {
|
||||
return iD.BackgroundSource(source);
|
||||
}
|
||||
});
|
||||
|
||||
function findSource(sourcetag) {
|
||||
function findSource(id) {
|
||||
return _.find(backgroundSources, function(d) {
|
||||
return d.sourcetag && d.sourcetag === sourcetag;
|
||||
return d.id && d.id === id;
|
||||
});
|
||||
}
|
||||
|
||||
function updateImagery() {
|
||||
var b = background.baseLayerSource(),
|
||||
o = overlayLayers.map(function (d) { return d.source().sourcetag; }).join(','),
|
||||
o = overlayLayers.map(function (d) { return d.source().id; }).join(','),
|
||||
q = iD.util.stringQs(location.hash.substring(1));
|
||||
|
||||
var tag = b.sourcetag;
|
||||
if (!tag && b.name === 'Custom') {
|
||||
tag = 'custom:' + b.template;
|
||||
var id = b.id;
|
||||
if (!id && b.name === 'Custom') {
|
||||
id = 'custom:' + b.template;
|
||||
}
|
||||
|
||||
if (tag) {
|
||||
q.background = tag;
|
||||
if (id) {
|
||||
q.background = id;
|
||||
} else {
|
||||
delete q.background;
|
||||
}
|
||||
@@ -48,13 +48,13 @@ iD.Background = function(context) {
|
||||
if (b.name === 'Custom') {
|
||||
imageryUsed.push('Custom (' + b.template + ')');
|
||||
} else {
|
||||
imageryUsed.push(b.sourcetag || b.name);
|
||||
imageryUsed.push(b.id || b.name);
|
||||
}
|
||||
|
||||
overlayLayers.forEach(function (d) {
|
||||
var source = d.source();
|
||||
if (!source.isLocatorOverlay()) {
|
||||
imageryUsed.push(source.sourcetag || source.name);
|
||||
imageryUsed.push(source.id || source.name);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -17,29 +17,15 @@ iD.BackgroundSource = function(data) {
|
||||
};
|
||||
|
||||
source.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 data.template
|
||||
.replace('{t}', data.subdomains ?
|
||||
data.subdomains[(coord[0] + coord[1]) % data.subdomains.length] : '')
|
||||
.replace('{u}', u)
|
||||
.replace('{x}', coord[0])
|
||||
.replace('{y}', coord[1])
|
||||
// TMS-flipped y coordinate
|
||||
.replace('{ty}', Math.pow(2, coord[2]) - coord[1] - 1)
|
||||
.replace('{z}', coord[2])
|
||||
// JOSM style
|
||||
.replace('{zoom}', coord[2])
|
||||
.replace(/\{(switch\:[^\}]*)\}/, function(s, r) {
|
||||
var subdomains = r.split(':')[1].split(',');
|
||||
return subdomains[coord[2] % subdomains.length];
|
||||
.replace(/\{z(oom)?\}/, coord[2])
|
||||
.replace(/\{switch:([^}]+)\}/, function(s, r) {
|
||||
var subdomains = r.split(',');
|
||||
return subdomains[(coord[0] + coord[1]) % subdomains.length];
|
||||
});
|
||||
};
|
||||
|
||||
@@ -88,6 +74,25 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
|
||||
dispatch.change();
|
||||
});
|
||||
|
||||
var template = "http://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) {
|
||||
@@ -101,5 +106,8 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
|
||||
}).join(', ');
|
||||
};
|
||||
|
||||
bing.logo = "bing_maps.png";
|
||||
bing.terms_url = "http://opengeodata.org/microsoft-imagery-details";
|
||||
|
||||
return bing;
|
||||
};
|
||||
|
||||
@@ -14,7 +14,7 @@ iD.ui.Attribution = function(context) {
|
||||
.append('span')
|
||||
.attr('class', 'provided-by')
|
||||
.each(function(d) {
|
||||
var source = d.sourcetag || d.name;
|
||||
var source = d.terms_text || d.id || d.name;
|
||||
|
||||
if (d.logo) {
|
||||
source = '<img class="source-image" src="' + context.imagePath(d.logo) + '">';
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
"request": "~2.16.2",
|
||||
"jsonschema": "~0.3.2",
|
||||
"node-sprite": "~0.1.2",
|
||||
"delve": "0.2"
|
||||
"delve": "0.2",
|
||||
"editor-imagery-index": "git://github.com/osmlab/editor-imagery-index.git#gh-pages"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
|
||||
Reference in New Issue
Block a user