createDefaultImageryProviderViewModels.js 8.7 KB

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