createDefaultImageryProviderViewModels.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. import buildModuleUrl from '../../Core/buildModuleUrl.js';
  2. import ArcGisMapServerImageryProvider from '../../Scene/ArcGisMapServerImageryProvider.js';
  3. import createWorldImagery from '../../Scene/createWorldImagery.js';
  4. import IonImageryProvider from '../../Scene/IonImageryProvider.js';
  5. import IonWorldImageryStyle from '../../Scene/IonWorldImageryStyle.js';
  6. import MapboxStyleImageryProvider from '../../Scene/MapboxStyleImageryProvider.js';
  7. import OpenStreetMapImageryProvider from '../../Scene/OpenStreetMapImageryProvider.js';
  8. import TileMapServiceImageryProvider from '../../Scene/TileMapServiceImageryProvider.js';
  9. import ProviderViewModel from '../BaseLayerPicker/ProviderViewModel.js';
  10. /**
  11. * @private
  12. */
  13. function createDefaultImageryProviderViewModels() {
  14. var providerViewModels = [];
  15. providerViewModels.push(new ProviderViewModel({
  16. name : 'Bing Maps Aerial',
  17. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/bingAerial.png'),
  18. tooltip : 'Bing Maps aerial imagery, provided by Cesium ion',
  19. category: 'Cesium ion',
  20. creationFunction : function() {
  21. return createWorldImagery({
  22. style : IonWorldImageryStyle.AERIAL
  23. });
  24. }
  25. }));
  26. providerViewModels.push(new ProviderViewModel({
  27. name : 'Bing Maps Aerial with Labels',
  28. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/bingAerialLabels.png'),
  29. tooltip : 'Bing Maps aerial imagery with labels, provided by Cesium ion',
  30. category : 'Cesium ion',
  31. creationFunction : function() {
  32. return createWorldImagery({
  33. style : IonWorldImageryStyle.AERIAL_WITH_LABELS
  34. });
  35. }
  36. }));
  37. providerViewModels.push(new ProviderViewModel({
  38. name : 'Bing Maps Roads',
  39. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/bingRoads.png'),
  40. tooltip : 'Bing Maps standard road maps, provided by Cesium ion',
  41. category : 'Cesium ion',
  42. creationFunction : function() {
  43. return createWorldImagery({
  44. style : IonWorldImageryStyle.ROAD
  45. });
  46. }
  47. }));
  48. providerViewModels.push(new ProviderViewModel({
  49. name: 'Mapbox Satellite',
  50. tooltip: 'Mapbox satellite imagery https://www.mapbox.com/maps/',
  51. iconUrl: buildModuleUrl('Widgets/Images/ImageryProviders/mapboxSatellite.png'),
  52. category : 'Other',
  53. creationFunction: function() {
  54. return new MapboxStyleImageryProvider({
  55. styleId: 'satellite-v9'
  56. });
  57. }
  58. }));
  59. providerViewModels.push(new ProviderViewModel({
  60. name: 'Mapbox Streets',
  61. tooltip: 'Mapbox streets imagery https://www.mapbox.com/maps/',
  62. iconUrl: buildModuleUrl('Widgets/Images/ImageryProviders/mapboxTerrain.png'),
  63. category : 'Other',
  64. creationFunction: function() {
  65. return new MapboxStyleImageryProvider({
  66. styleId: 'satellite-streets-v11'
  67. });
  68. }
  69. }));
  70. providerViewModels.push(new ProviderViewModel({
  71. name: 'Mapbox Streets Classic',
  72. tooltip: 'Mapbox streets basic imagery https://www.mapbox.com/maps/',
  73. iconUrl: buildModuleUrl('Widgets/Images/ImageryProviders/mapboxStreets.png'),
  74. category : 'Other',
  75. creationFunction: function() {
  76. return new MapboxStyleImageryProvider({
  77. styleId: 'streets-v11'
  78. });
  79. }
  80. }));
  81. providerViewModels.push(new ProviderViewModel({
  82. name : 'ESRI World Imagery',
  83. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/esriWorldImagery.png'),
  84. tooltip : '\
  85. World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution \
  86. satellite imagery worldwide. The map includes NASA Blue Marble: Next Generation 500m resolution imagery at small scales \
  87. (above 1:1,000,000), i-cubed 15m eSAT imagery at medium-to-large scales (down to 1:70,000) for the world, and USGS 15m Landsat \
  88. imagery for Antarctica. The map features 0.3m resolution imagery in the continental United States and 0.6m resolution imagery in \
  89. parts of Western Europe from DigitalGlobe. In other parts of the world, 1 meter resolution imagery is available from GeoEye IKONOS, \
  90. i-cubed Nationwide Prime, Getmapping, AeroGRID, IGN Spain, and IGP Portugal. Additionally, imagery at different resolutions has been \
  91. contributed by the GIS User Community.\nhttp://www.esri.com',
  92. category : 'Other',
  93. creationFunction : function() {
  94. return new ArcGisMapServerImageryProvider({
  95. url : 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer',
  96. enablePickFeatures : false
  97. });
  98. }
  99. }));
  100. providerViewModels.push(new ProviderViewModel({
  101. name : 'ESRI World Street Map',
  102. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/esriWorldStreetMap.png'),
  103. tooltip : '\
  104. This worldwide street map presents highway-level data for the world. Street-level data includes the United States; much of \
  105. Canada; Japan; most countries in Europe; Australia and New Zealand; India; parts of South America including Argentina, Brazil, \
  106. Chile, Colombia, and Venezuela; Ghana; and parts of southern Africa including Botswana, Lesotho, Namibia, South Africa, and Swaziland.\n\
  107. http://www.esri.com',
  108. category : 'Other',
  109. creationFunction : function() {
  110. return new ArcGisMapServerImageryProvider({
  111. url : 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer',
  112. enablePickFeatures : false
  113. });
  114. }
  115. }));
  116. providerViewModels.push(new ProviderViewModel({
  117. name : 'ESRI National Geographic',
  118. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/esriNationalGeographic.png'),
  119. tooltip : '\
  120. This web map contains the National Geographic World Map service. This map service is designed to be used as a general reference map \
  121. for informational and educational purposes as well as a basemap by GIS professionals and other users for creating web maps and web \
  122. mapping applications.\nhttp://www.esri.com',
  123. category : 'Other',
  124. creationFunction : function() {
  125. return new ArcGisMapServerImageryProvider({
  126. url : 'https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/',
  127. enablePickFeatures : false
  128. });
  129. }
  130. }));
  131. providerViewModels.push(new ProviderViewModel({
  132. name : 'Open\u00adStreet\u00adMap',
  133. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/openStreetMap.png'),
  134. tooltip : 'OpenStreetMap (OSM) is a collaborative project to create a free editable map \
  135. of the world.\nhttp://www.openstreetmap.org',
  136. category : 'Other',
  137. creationFunction : function() {
  138. return new OpenStreetMapImageryProvider({
  139. url : 'https://a.tile.openstreetmap.org/'
  140. });
  141. }
  142. }));
  143. providerViewModels.push(new ProviderViewModel({
  144. name : 'Stamen Watercolor',
  145. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/stamenWatercolor.png'),
  146. tooltip : 'Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect \
  147. area washes and organic edges over a paper texture to add warm pop to any map.\nhttp://maps.stamen.com',
  148. category : 'Other',
  149. creationFunction : function() {
  150. return new OpenStreetMapImageryProvider({
  151. url : 'https://stamen-tiles.a.ssl.fastly.net/watercolor/',
  152. credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
  153. });
  154. }
  155. }));
  156. providerViewModels.push(new ProviderViewModel({
  157. name : 'Stamen Toner',
  158. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/stamenToner.png'),
  159. tooltip : 'A high contrast black and white map.\nhttp://maps.stamen.com',
  160. category : 'Other',
  161. creationFunction : function() {
  162. return new OpenStreetMapImageryProvider({
  163. url : 'https://stamen-tiles.a.ssl.fastly.net/toner/',
  164. credit : 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
  165. });
  166. }
  167. }));
  168. providerViewModels.push(new ProviderViewModel({
  169. name : 'Sentinel-2',
  170. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/sentinel-2.png'),
  171. tooltip : 'Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).',
  172. category : 'Cesium ion',
  173. creationFunction : function() {
  174. return new IonImageryProvider({ assetId: 3954 });
  175. }
  176. }));
  177. providerViewModels.push(new ProviderViewModel({
  178. name : 'Blue Marble',
  179. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/blueMarble.png'),
  180. tooltip : 'Blue Marble Next Generation July, 2004 imagery from NASA.',
  181. category : 'Cesium ion',
  182. creationFunction : function() {
  183. return new IonImageryProvider({ assetId: 3845 });
  184. }
  185. }));
  186. providerViewModels.push(new ProviderViewModel({
  187. name : 'Earth at night',
  188. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/earthAtNight.png'),
  189. tooltip : 'The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.',
  190. category : 'Cesium ion',
  191. creationFunction : function() {
  192. return new IonImageryProvider({ assetId: 3812 });
  193. }
  194. }));
  195. providerViewModels.push(new ProviderViewModel({
  196. name : 'Natural Earth\u00a0II',
  197. iconUrl : buildModuleUrl('Widgets/Images/ImageryProviders/naturalEarthII.png'),
  198. tooltip : 'Natural Earth II, darkened for contrast.\nhttp://www.naturalearthdata.com/',
  199. category : 'Cesium ion',
  200. creationFunction : function() {
  201. return new TileMapServiceImageryProvider({
  202. url : buildModuleUrl('Assets/Textures/NaturalEarthII')
  203. });
  204. }
  205. }));
  206. return providerViewModels;
  207. }
  208. export default createDefaultImageryProviderViewModels;