Add Sprint/AT&T coverage layers
This commit is contained in:
parent
645aa85751
commit
8c011b481a
127
layers/cellular.js
Normal file
127
layers/cellular.js
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
import { XYZ } from 'ol/source.js';
|
||||||
|
import TileLayer from 'ol/layer/Tile';
|
||||||
|
|
||||||
|
// from https://stackoverflow.com/q/32454234
|
||||||
|
var quadkey = function (x, y, z) {
|
||||||
|
var quadKey = [];
|
||||||
|
for (var i = z; i > 0; i--) {
|
||||||
|
var digit = '0';
|
||||||
|
var mask = 1 << (i - 1);
|
||||||
|
if ((x & mask) != 0) {
|
||||||
|
digit++;
|
||||||
|
}
|
||||||
|
if ((y & mask) != 0) {
|
||||||
|
digit++;
|
||||||
|
digit++;
|
||||||
|
}
|
||||||
|
quadKey.push(digit);
|
||||||
|
}
|
||||||
|
return quadKey.join('');
|
||||||
|
};
|
||||||
|
|
||||||
|
const cellular_layers = {
|
||||||
|
name: "Cellular Providers",
|
||||||
|
layers: [
|
||||||
|
// {
|
||||||
|
// name: "Verizon",
|
||||||
|
// // enabled: true,
|
||||||
|
// layer: new VectorTileLayer({
|
||||||
|
// source: new VectorTileSource({
|
||||||
|
// format: new MVT(),
|
||||||
|
// // https://api.mapbox.com/v4/gismaps.3knn09ds,gismaps.2x81tn8t,mapbox.mapbox-streets-v8,gismaps.aq7mk519,mapbox.country-boundaries-v1,gismaps.cbihlc9h,gismaps.7is2087g,gismaps.8hjkv530/7/31/46.vector.pbf
|
||||||
|
// // url: 'https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/{z}/{y}/{x}.pbf',
|
||||||
|
// url: 'https://api.mapbox.com/v4/gismaps.3knn09ds,gismaps.2x81tn8t,mapbox.mapbox-streets-v8,gismaps.aq7mk519,mapbox.country-boundaries-v1,gismaps.cbihlc9h,gismaps.7is2087g,gismaps.8hjkv530/{z}/{y}/{x}.pbf'
|
||||||
|
// }),
|
||||||
|
// }),
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
name: "AT&T Domestic",
|
||||||
|
layer: new TileLayer({
|
||||||
|
opacity: 0.5,
|
||||||
|
source: new XYZ({
|
||||||
|
tileUrlFunction: function (tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0];
|
||||||
|
var x = tileCoord[1];
|
||||||
|
var y = tileCoord[2];
|
||||||
|
return "https://geolink-igw.cloud.att.com/mapservice/quadkeytile?layer=attDomestic&quadkey=" + quadkey(x, y, z);
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "AT&T Prepaid",
|
||||||
|
layer: new TileLayer({
|
||||||
|
opacity: 0.5,
|
||||||
|
source: new XYZ({
|
||||||
|
tileUrlFunction: function (tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0];
|
||||||
|
var x = tileCoord[1];
|
||||||
|
var y = tileCoord[2];
|
||||||
|
return "https://geolink-igw.cloud.att.com/mapservice/quadkeytile?layer=attPrepaid&quadkey=" + quadkey(x, y, z);
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "AT&T International",
|
||||||
|
layer: new TileLayer({
|
||||||
|
opacity: 0.5,
|
||||||
|
source: new XYZ({
|
||||||
|
tileUrlFunction: function (tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0];
|
||||||
|
var x = tileCoord[1];
|
||||||
|
var y = tileCoord[2];
|
||||||
|
return "https://geolink-igw.cloud.att.com/mapservice/quadkeytile?layer=attIntl&quadkey=" + quadkey(x, y, z);
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Sprint 5G? (may also be T-Mo now); see <a href='https://coverage.sprint.com/IMPACT.jsp'>Sprint</a> for legends",
|
||||||
|
layer: new TileLayer({
|
||||||
|
opacity: 0.5,
|
||||||
|
source: new XYZ({
|
||||||
|
// url: 'https://coverage.sprint.com/MapTile/5GDataMap/Tiles/data_xp_5G/{z}/{x}:{y}/tile.png'
|
||||||
|
tileUrlFunction: function (tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0]+1;
|
||||||
|
var x = tileCoord[1]+1;
|
||||||
|
var y = tileCoord[2]+1;
|
||||||
|
return `https://coverage.sprint.com/MapTile/5GDataMap/Tiles/data_xp_5G/${z}/${x}:${y}/tile.png`;
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Sprint LTE? (may also be T-Mo now)",
|
||||||
|
layer: new TileLayer({
|
||||||
|
opacity: 0.5,
|
||||||
|
source: new XYZ({
|
||||||
|
// url: 'https://coverage.sprint.com/MapTile/5GDataMap/Tiles/data_xp_lte/{z}/{x}:{y}/tile.png'
|
||||||
|
tileUrlFunction: function (tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0]+1;
|
||||||
|
var x = tileCoord[1]+1;
|
||||||
|
var y = tileCoord[2]+1;
|
||||||
|
return `https://coverage.sprint.com/MapTile/5GDataMap/Tiles/data_xp_lte/${z}/${x}:${y}/tile.png`;
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Sprint non-LTE? (may also be T-Mo now)",
|
||||||
|
layer: new TileLayer({
|
||||||
|
opacity: 0.5,
|
||||||
|
source: new XYZ({
|
||||||
|
// url: 'https://coverage.sprint.com/MapTile/5GDataMap/Tiles/data_xp_5G/{z}/{x}:{y}/tile.png'
|
||||||
|
tileUrlFunction: function (tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0]+1;
|
||||||
|
var x = tileCoord[1]+1;
|
||||||
|
var y = tileCoord[2]+1;
|
||||||
|
return `https://coverage.sprint.com/MapTile/5GDataMap/Tiles/data_xp_3G/${z}/${x}:${y}/tile.png`;
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
export default cellular_layers;
|
|
@ -10,6 +10,7 @@ import chains from './chains/index.js';
|
||||||
import census_bureau from './census-bureau/index.js';
|
import census_bureau from './census-bureau/index.js';
|
||||||
import states from './states/index.js';
|
import states from './states/index.js';
|
||||||
import national_land from './national-land/index.js';
|
import national_land from './national-land/index.js';
|
||||||
|
import cellular from './cellular.js';
|
||||||
|
|
||||||
const layerCategories = [
|
const layerCategories = [
|
||||||
{ // Base maps
|
{ // Base maps
|
||||||
|
@ -77,6 +78,7 @@ const layerCategories = [
|
||||||
census_bureau,
|
census_bureau,
|
||||||
states,
|
states,
|
||||||
national_land,
|
national_land,
|
||||||
|
cellular,
|
||||||
];
|
];
|
||||||
|
|
||||||
export default layerCategories;
|
export default layerCategories;
|
||||||
|
|
Loading…
Reference in a new issue