createDefaultImageryProviderViewModels.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. import {
  2. ArcGisMapServerImageryProvider,
  3. buildModuleUrl,
  4. createWorldImageryAsync,
  5. IonImageryProvider,
  6. IonWorldImageryStyle,
  7. OpenStreetMapImageryProvider,
  8. TileMapServiceImageryProvider,
  9. ArcGisBaseMapType,
  10. } from "@cesium/engine";
  11. import ProviderViewModel from "./ProviderViewModel.js";
  12. /**
  13. * @private
  14. */
  15. function createDefaultImageryProviderViewModels() {
  16. const providerViewModels = [];
  17. providerViewModels.push(
  18. new ProviderViewModel({
  19. name: "Bing Maps Aerial",
  20. iconUrl: buildModuleUrl("Widgets/Images/ImageryProviders/bingAerial.png"),
  21. tooltip: "Bing Maps aerial imagery, provided by Cesium ion",
  22. category: "Cesium ion",
  23. creationFunction: function () {
  24. return createWorldImageryAsync({
  25. style: IonWorldImageryStyle.AERIAL,
  26. });
  27. },
  28. })
  29. );
  30. providerViewModels.push(
  31. new ProviderViewModel({
  32. name: "Bing Maps Aerial with Labels",
  33. iconUrl: buildModuleUrl(
  34. "Widgets/Images/ImageryProviders/bingAerialLabels.png"
  35. ),
  36. tooltip: "Bing Maps aerial imagery with labels, provided by Cesium ion",
  37. category: "Cesium ion",
  38. creationFunction: function () {
  39. return createWorldImageryAsync({
  40. style: IonWorldImageryStyle.AERIAL_WITH_LABELS,
  41. });
  42. },
  43. })
  44. );
  45. providerViewModels.push(
  46. new ProviderViewModel({
  47. name: "Bing Maps Roads",
  48. iconUrl: buildModuleUrl("Widgets/Images/ImageryProviders/bingRoads.png"),
  49. tooltip: "Bing Maps standard road maps, provided by Cesium ion",
  50. category: "Cesium ion",
  51. creationFunction: function () {
  52. return createWorldImageryAsync({
  53. style: IonWorldImageryStyle.ROAD,
  54. });
  55. },
  56. })
  57. );
  58. providerViewModels.push(
  59. new ProviderViewModel({
  60. name: "ArcGIS World Imagery",
  61. iconUrl: buildModuleUrl(
  62. "Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"
  63. ),
  64. tooltip:
  65. "\
  66. ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower \
  67. resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) \
  68. for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m \
  69. resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. \
  70. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the \
  71. GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). \
  72. For more information on this map, including the terms of use, visit us online at \n\
  73. https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9",
  74. category: "Other",
  75. creationFunction: function () {
  76. return ArcGisMapServerImageryProvider.fromBasemapType(
  77. ArcGisBaseMapType.SATELLITE,
  78. {
  79. enablePickFeatures: false,
  80. }
  81. );
  82. },
  83. })
  84. );
  85. providerViewModels.push(
  86. new ProviderViewModel({
  87. name: "ArcGIS World Hillshade",
  88. iconUrl: buildModuleUrl(
  89. "Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"
  90. ),
  91. tooltip:
  92. "\
  93. ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, \
  94. landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. \
  95. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available \
  96. down to ~1:9k. For more information on this map, including the terms of use, visit us online at \n\
  97. https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d",
  98. category: "Other",
  99. creationFunction: function () {
  100. return ArcGisMapServerImageryProvider.fromBasemapType(
  101. ArcGisBaseMapType.HILLSHADE,
  102. {
  103. enablePickFeatures: false,
  104. }
  105. );
  106. },
  107. })
  108. );
  109. providerViewModels.push(
  110. new ProviderViewModel({
  111. name: "Esri World Ocean",
  112. iconUrl: buildModuleUrl(
  113. "Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"
  114. ),
  115. tooltip:
  116. "\
  117. ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. \
  118. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. \
  119. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, \
  120. National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. \
  121. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. \
  122. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. \
  123. For more information on this map, including our terms of use, visit us online at \n\
  124. https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500",
  125. category: "Other",
  126. creationFunction: function () {
  127. return ArcGisMapServerImageryProvider.fromBasemapType(
  128. ArcGisBaseMapType.OCEANS,
  129. {
  130. enablePickFeatures: false,
  131. }
  132. );
  133. },
  134. })
  135. );
  136. providerViewModels.push(
  137. new ProviderViewModel({
  138. name: "Open\u00adStreet\u00adMap",
  139. iconUrl: buildModuleUrl(
  140. "Widgets/Images/ImageryProviders/openStreetMap.png"
  141. ),
  142. tooltip:
  143. "OpenStreetMap (OSM) is a collaborative project to create a free editable map \
  144. of the world.\nhttp://www.openstreetmap.org",
  145. category: "Other",
  146. creationFunction: function () {
  147. return new OpenStreetMapImageryProvider({
  148. url: "https://a.tile.openstreetmap.org/",
  149. });
  150. },
  151. })
  152. );
  153. providerViewModels.push(
  154. new ProviderViewModel({
  155. name: "Stamen Watercolor",
  156. iconUrl: buildModuleUrl(
  157. "Widgets/Images/ImageryProviders/stamenWatercolor.png"
  158. ),
  159. tooltip:
  160. "Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect \
  161. area washes and organic edges over a paper texture to add warm pop to any map.\nhttp://maps.stamen.com",
  162. category: "Other",
  163. creationFunction: function () {
  164. return new OpenStreetMapImageryProvider({
  165. url: "https://stamen-tiles.a.ssl.fastly.net/watercolor/",
  166. credit:
  167. "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.",
  168. });
  169. },
  170. })
  171. );
  172. providerViewModels.push(
  173. new ProviderViewModel({
  174. name: "Stamen Toner",
  175. iconUrl: buildModuleUrl(
  176. "Widgets/Images/ImageryProviders/stamenToner.png"
  177. ),
  178. tooltip: "A high contrast black and white map.\nhttp://maps.stamen.com",
  179. category: "Other",
  180. creationFunction: function () {
  181. return new OpenStreetMapImageryProvider({
  182. url: "https://stamen-tiles.a.ssl.fastly.net/toner/",
  183. credit:
  184. "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.",
  185. });
  186. },
  187. })
  188. );
  189. providerViewModels.push(
  190. new ProviderViewModel({
  191. name: "Sentinel-2",
  192. iconUrl: buildModuleUrl("Widgets/Images/ImageryProviders/sentinel-2.png"),
  193. tooltip:
  194. "Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",
  195. category: "Cesium ion",
  196. creationFunction: function () {
  197. return IonImageryProvider.fromAssetId(3954);
  198. },
  199. })
  200. );
  201. providerViewModels.push(
  202. new ProviderViewModel({
  203. name: "Blue Marble",
  204. iconUrl: buildModuleUrl("Widgets/Images/ImageryProviders/blueMarble.png"),
  205. tooltip: "Blue Marble Next Generation July, 2004 imagery from NASA.",
  206. category: "Cesium ion",
  207. creationFunction: function () {
  208. return IonImageryProvider.fromAssetId(3845);
  209. },
  210. })
  211. );
  212. providerViewModels.push(
  213. new ProviderViewModel({
  214. name: "Earth at night",
  215. iconUrl: buildModuleUrl(
  216. "Widgets/Images/ImageryProviders/earthAtNight.png"
  217. ),
  218. tooltip:
  219. "The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",
  220. category: "Cesium ion",
  221. creationFunction: function () {
  222. return IonImageryProvider.fromAssetId(3812);
  223. },
  224. })
  225. );
  226. providerViewModels.push(
  227. new ProviderViewModel({
  228. name: "Natural Earth\u00a0II",
  229. iconUrl: buildModuleUrl(
  230. "Widgets/Images/ImageryProviders/naturalEarthII.png"
  231. ),
  232. tooltip:
  233. "Natural Earth II, darkened for contrast.\nhttp://www.naturalearthdata.com/",
  234. category: "Cesium ion",
  235. creationFunction: function () {
  236. return TileMapServiceImageryProvider.fromUrl(
  237. buildModuleUrl("Assets/Textures/NaturalEarthII")
  238. );
  239. },
  240. })
  241. );
  242. return providerViewModels;
  243. }
  244. export default createDefaultImageryProviderViewModels;