geoblacklight 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +195 -0
  3. data/.github/ISSUE_TEMPLATE.md +17 -0
  4. data/.gitignore +21 -0
  5. data/.gitmodules +0 -0
  6. data/.hound.yml +8 -0
  7. data/.jshintignore +2 -0
  8. data/.jshintrc +67 -0
  9. data/.rubocop.yml +99 -0
  10. data/.rubocop_todo.yml +196 -0
  11. data/.solr_wrapper +5 -0
  12. data/CODE_OF_CONDUCT.md +76 -0
  13. data/CONTRIBUTING.md +49 -0
  14. data/Gemfile +39 -0
  15. data/LICENSE.txt +13 -0
  16. data/README.md +39 -0
  17. data/Rakefile +125 -0
  18. data/app/assets/images/blacklight/arrow-circle-down.svg +4 -0
  19. data/app/assets/images/blacklight/baruch-cuny.svg +6 -0
  20. data/app/assets/images/blacklight/berkeley.svg +7 -0
  21. data/app/assets/images/blacklight/book.svg +6 -0
  22. data/app/assets/images/blacklight/bookmark.svg +6 -0
  23. data/app/assets/images/blacklight/cd-rom.svg +6 -0
  24. data/app/assets/images/blacklight/chicago.svg +7 -0
  25. data/app/assets/images/blacklight/columbia.svg +6 -0
  26. data/app/assets/images/blacklight/cornell.svg +8 -0
  27. data/app/assets/images/blacklight/dvd-rom.svg +6 -0
  28. data/app/assets/images/blacklight/email.svg +6 -0
  29. data/app/assets/images/blacklight/esri-globe.svg +34 -0
  30. data/app/assets/images/blacklight/geoblacklight-icons.json +2079 -0
  31. data/app/assets/images/blacklight/globe.svg +4 -0
  32. data/app/assets/images/blacklight/harvard.svg +6 -0
  33. data/app/assets/images/blacklight/home.svg +4 -0
  34. data/app/assets/images/blacklight/illinois.svg +7 -0
  35. data/app/assets/images/blacklight/image.svg +6 -0
  36. data/app/assets/images/blacklight/indiana.svg +6 -0
  37. data/app/assets/images/blacklight/iowa.svg +6 -0
  38. data/app/assets/images/blacklight/leaf.svg +6 -0
  39. data/app/assets/images/blacklight/lewis-clark.svg +8 -0
  40. data/app/assets/images/blacklight/line.svg +7 -0
  41. data/app/assets/images/blacklight/logo.svg +1 -0
  42. data/app/assets/images/blacklight/map-marker.svg +6 -0
  43. data/app/assets/images/blacklight/map.svg +6 -0
  44. data/app/assets/images/blacklight/maryland.svg +6 -0
  45. data/app/assets/images/blacklight/massgis.svg +6 -0
  46. data/app/assets/images/blacklight/metadata.svg +6 -0
  47. data/app/assets/images/blacklight/michigan-state.svg +7 -0
  48. data/app/assets/images/blacklight/michigan.svg +6 -0
  49. data/app/assets/images/blacklight/minnesota.svg +6 -0
  50. data/app/assets/images/blacklight/mit.svg +6 -0
  51. data/app/assets/images/blacklight/mixed.svg +8 -0
  52. data/app/assets/images/blacklight/multilinestring.svg +9 -0
  53. data/app/assets/images/blacklight/multipoint.svg +6 -0
  54. data/app/assets/images/blacklight/multipolygon.svg +9 -0
  55. data/app/assets/images/blacklight/nyu.svg +9 -0
  56. data/app/assets/images/blacklight/ohio-state.svg +8 -0
  57. data/app/assets/images/blacklight/pagelines-brands.svg +6 -0
  58. data/app/assets/images/blacklight/paper-map.svg +6 -0
  59. data/app/assets/images/blacklight/penn-state.svg +7 -0
  60. data/app/assets/images/blacklight/point.svg +6 -0
  61. data/app/assets/images/blacklight/polygon.svg +7 -0
  62. data/app/assets/images/blacklight/polyline.svg +9 -0
  63. data/app/assets/images/blacklight/princeton.svg +6 -0
  64. data/app/assets/images/blacklight/public.svg +6 -0
  65. data/app/assets/images/blacklight/purdue.svg +7 -0
  66. data/app/assets/images/blacklight/raster.svg +6 -0
  67. data/app/assets/images/blacklight/restricted.svg +6 -0
  68. data/app/assets/images/blacklight/sms.svg +6 -0
  69. data/app/assets/images/blacklight/stanford.svg +6 -0
  70. data/app/assets/images/blacklight/table.svg +6 -0
  71. data/app/assets/images/blacklight/tags.svg +4 -0
  72. data/app/assets/images/blacklight/texas.svg +6 -0
  73. data/app/assets/images/blacklight/tufts.svg +6 -0
  74. data/app/assets/images/blacklight/ucla.svg +6 -0
  75. data/app/assets/images/blacklight/uva.svg +6 -0
  76. data/app/assets/images/blacklight/web_services.svg +6 -0
  77. data/app/assets/images/blacklight/wisconsin.svg +6 -0
  78. data/app/assets/javascripts/geoblacklight/basemaps.js +85 -0
  79. data/app/assets/javascripts/geoblacklight/controls.js +1 -0
  80. data/app/assets/javascripts/geoblacklight/controls/opacity.js +6 -0
  81. data/app/assets/javascripts/geoblacklight/downloaders.js +1 -0
  82. data/app/assets/javascripts/geoblacklight/downloaders/downloader.js +61 -0
  83. data/app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js +32 -0
  84. data/app/assets/javascripts/geoblacklight/geoblacklight.js +42 -0
  85. data/app/assets/javascripts/geoblacklight/modules.js +1 -0
  86. data/app/assets/javascripts/geoblacklight/modules/collapse.js +7 -0
  87. data/app/assets/javascripts/geoblacklight/modules/download.js +11 -0
  88. data/app/assets/javascripts/geoblacklight/modules/geosearch.js +133 -0
  89. data/app/assets/javascripts/geoblacklight/modules/help_text.js +7 -0
  90. data/app/assets/javascripts/geoblacklight/modules/home.js +16 -0
  91. data/app/assets/javascripts/geoblacklight/modules/item.js +13 -0
  92. data/app/assets/javascripts/geoblacklight/modules/layer_opacity.js +68 -0
  93. data/app/assets/javascripts/geoblacklight/modules/metadata.js +15 -0
  94. data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +53 -0
  95. data/app/assets/javascripts/geoblacklight/modules/relations.js +14 -0
  96. data/app/assets/javascripts/geoblacklight/modules/results.js +82 -0
  97. data/app/assets/javascripts/geoblacklight/modules/util.js +38 -0
  98. data/app/assets/javascripts/geoblacklight/templates/index_map_download.hbs +19 -0
  99. data/app/assets/javascripts/geoblacklight/templates/index_map_info.hbs +40 -0
  100. data/app/assets/javascripts/geoblacklight/viewers.js +1 -0
  101. data/app/assets/javascripts/geoblacklight/viewers/esri.js +77 -0
  102. data/app/assets/javascripts/geoblacklight/viewers/esri/dynamic_map_layer.js +85 -0
  103. data/app/assets/javascripts/geoblacklight/viewers/esri/feature_layer.js +76 -0
  104. data/app/assets/javascripts/geoblacklight/viewers/esri/image_map_layer.js +14 -0
  105. data/app/assets/javascripts/geoblacklight/viewers/esri/tiled_map_layer.js +50 -0
  106. data/app/assets/javascripts/geoblacklight/viewers/iiif.js +25 -0
  107. data/app/assets/javascripts/geoblacklight/viewers/index_map.js +70 -0
  108. data/app/assets/javascripts/geoblacklight/viewers/map.js +67 -0
  109. data/app/assets/javascripts/geoblacklight/viewers/oembed.js +13 -0
  110. data/app/assets/javascripts/geoblacklight/viewers/viewer.js +65 -0
  111. data/app/assets/javascripts/geoblacklight/viewers/wms.js +74 -0
  112. data/app/assets/stylesheets/geoblacklight/_blacklight_overrides.scss +51 -0
  113. data/app/assets/stylesheets/geoblacklight/_geoblacklight.scss +36 -0
  114. data/app/assets/stylesheets/geoblacklight/_styles.scss +4 -0
  115. data/app/assets/stylesheets/geoblacklight/application.scss +2 -0
  116. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +93 -0
  117. data/app/assets/stylesheets/geoblacklight/modules/facets.scss +5 -0
  118. data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +29 -0
  119. data/app/assets/stylesheets/geoblacklight/modules/home.scss +28 -0
  120. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +50 -0
  121. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +7 -0
  122. data/app/assets/stylesheets/geoblacklight/modules/item.scss +26 -0
  123. data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +87 -0
  124. data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +31 -0
  125. data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +43 -0
  126. data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +9 -0
  127. data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +7 -0
  128. data/app/assets/stylesheets/geoblacklight/modules/mixins.scss +5 -0
  129. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +14 -0
  130. data/app/assets/stylesheets/geoblacklight/modules/relations.scss +15 -0
  131. data/app/assets/stylesheets/geoblacklight/modules/results.scss +68 -0
  132. data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +5 -0
  133. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +60 -0
  134. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +70 -0
  135. data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +5 -0
  136. data/app/controllers/download_controller.rb +114 -0
  137. data/app/controllers/relation_controller.rb +20 -0
  138. data/app/controllers/wms_controller.rb +15 -0
  139. data/app/helpers/arcgis_helper.rb +12 -0
  140. data/app/helpers/blacklight_helper.rb +9 -0
  141. data/app/helpers/carto_helper.rb +29 -0
  142. data/app/helpers/geoblacklight_helper.rb +323 -0
  143. data/app/models/concerns/geoblacklight/solr_document.rb +113 -0
  144. data/app/models/concerns/geoblacklight/solr_document/arcgis.rb +10 -0
  145. data/app/models/concerns/geoblacklight/solr_document/carto.rb +28 -0
  146. data/app/models/concerns/geoblacklight/solr_document/finder.rb +38 -0
  147. data/app/models/concerns/geoblacklight/solr_document/inspection.rb +15 -0
  148. data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +69 -0
  149. data/app/presenters/geoblacklight/document_presenter.rb +23 -0
  150. data/app/views/catalog/_data_dictionary.html.erb +6 -0
  151. data/app/views/catalog/_document_action.html.erb +6 -0
  152. data/app/views/catalog/_document_split.html.erb +6 -0
  153. data/app/views/catalog/_download_generated_link.html.erb +4 -0
  154. data/app/views/catalog/_download_link.html.erb +3 -0
  155. data/app/views/catalog/_downloads_generated.html.erb +6 -0
  156. data/app/views/catalog/_downloads_primary.html.erb +14 -0
  157. data/app/views/catalog/_downloads_secondary.html.erb +39 -0
  158. data/app/views/catalog/_exports.html.erb +3 -0
  159. data/app/views/catalog/_facet_tag_item.html.erb +3 -0
  160. data/app/views/catalog/_facet_tag_layout.html.erb +2 -0
  161. data/app/views/catalog/_header_icons.html.erb +3 -0
  162. data/app/views/catalog/_home_text.html.erb +43 -0
  163. data/app/views/catalog/_icon_facet.html.erb +16 -0
  164. data/app/views/catalog/_index_split_default.html.erb +22 -0
  165. data/app/views/catalog/_metadata.html.erb +27 -0
  166. data/app/views/catalog/_relations_container.html.erb +1 -0
  167. data/app/views/catalog/_results_pagination.html.erb +12 -0
  168. data/app/views/catalog/_show_default_attribute_table.html.erb +19 -0
  169. data/app/views/catalog/_show_default_viewer_container.html.erb +12 -0
  170. data/app/views/catalog/_show_default_viewer_information.html.erb +4 -0
  171. data/app/views/catalog/_show_downloads.html.erb +34 -0
  172. data/app/views/catalog/_show_header_default.html.erb +4 -0
  173. data/app/views/catalog/_show_sidebar.html.erb +12 -0
  174. data/app/views/catalog/_show_tools.html.erb +25 -0
  175. data/app/views/catalog/_web_services.html.erb +8 -0
  176. data/app/views/catalog/_web_services_default.html.erb +8 -0
  177. data/app/views/catalog/_web_services_wfs.html.erb +8 -0
  178. data/app/views/catalog/_web_services_wms.html.erb +8 -0
  179. data/app/views/catalog/index.html.erb +13 -0
  180. data/app/views/catalog/metadata.html.erb +11 -0
  181. data/app/views/catalog/metadata/_content.html.erb +3 -0
  182. data/app/views/catalog/metadata/_markup.html.erb +8 -0
  183. data/app/views/catalog/metadata/_missing.html.erb +6 -0
  184. data/app/views/catalog/web_services.html.erb +10 -0
  185. data/app/views/download/hgl.html.erb +25 -0
  186. data/app/views/relation/_ancestors.html.erb +11 -0
  187. data/app/views/relation/_descendants.html.erb +18 -0
  188. data/app/views/relation/index.html.erb +13 -0
  189. data/app/views/relation/index.json.jbuilder +3 -0
  190. data/app/views/shared/_header_navbar.html.erb +38 -0
  191. data/config/initializers/rails_config.rb +3 -0
  192. data/config/locales/geoblacklight.en.yml +163 -0
  193. data/geoblacklight.gemspec +49 -0
  194. data/lib/generators/geoblacklight/install_generator.rb +105 -0
  195. data/lib/generators/geoblacklight/templates/Procfile +3 -0
  196. data/lib/generators/geoblacklight/templates/catalog_controller.rb +272 -0
  197. data/lib/generators/geoblacklight/templates/geoblacklight.js +10 -0
  198. data/lib/generators/geoblacklight/templates/geoblacklight.scss +4 -0
  199. data/lib/generators/geoblacklight/templates/package.json +14 -0
  200. data/lib/generators/geoblacklight/templates/settings.yml +127 -0
  201. data/lib/generators/geoblacklight/templates/webpacker.yml +67 -0
  202. data/lib/generators/geoblacklight/webpacker_generator.rb +35 -0
  203. data/lib/geoblacklight.rb +50 -0
  204. data/lib/geoblacklight/bounding_box.rb +45 -0
  205. data/lib/geoblacklight/catalog_helper_override.rb +13 -0
  206. data/lib/geoblacklight/constants.rb +28 -0
  207. data/lib/geoblacklight/download.rb +108 -0
  208. data/lib/geoblacklight/download/geojson_download.rb +22 -0
  209. data/lib/geoblacklight/download/geotiff_download.rb +20 -0
  210. data/lib/geoblacklight/download/hgl_download.rb +18 -0
  211. data/lib/geoblacklight/download/kmz_download.rb +22 -0
  212. data/lib/geoblacklight/download/shapefile_download.rb +20 -0
  213. data/lib/geoblacklight/engine.rb +27 -0
  214. data/lib/geoblacklight/exceptions.rb +27 -0
  215. data/lib/geoblacklight/geoblacklight_helper_behavior.rb +14 -0
  216. data/lib/geoblacklight/item_viewer.rb +54 -0
  217. data/lib/geoblacklight/metadata.rb +18 -0
  218. data/lib/geoblacklight/metadata/base.rb +93 -0
  219. data/lib/geoblacklight/metadata/fgdc.rb +14 -0
  220. data/lib/geoblacklight/metadata/html.rb +13 -0
  221. data/lib/geoblacklight/metadata/iso19139.rb +14 -0
  222. data/lib/geoblacklight/metadata_transformer.rb +33 -0
  223. data/lib/geoblacklight/metadata_transformer/base.rb +42 -0
  224. data/lib/geoblacklight/metadata_transformer/fgdc.rb +8 -0
  225. data/lib/geoblacklight/metadata_transformer/iso19139.rb +8 -0
  226. data/lib/geoblacklight/reference.rb +45 -0
  227. data/lib/geoblacklight/references.rb +132 -0
  228. data/lib/geoblacklight/relation/ancestors.rb +27 -0
  229. data/lib/geoblacklight/relation/descendants.rb +27 -0
  230. data/lib/geoblacklight/relation/relation_response.rb +24 -0
  231. data/lib/geoblacklight/routes.rb +7 -0
  232. data/lib/geoblacklight/routes/downloadable.rb +14 -0
  233. data/lib/geoblacklight/routes/exportable.rb +17 -0
  234. data/lib/geoblacklight/routes/wms.rb +13 -0
  235. data/lib/geoblacklight/version.rb +3 -0
  236. data/lib/geoblacklight/view_helper_override.rb +40 -0
  237. data/lib/geoblacklight/wms_layer.rb +35 -0
  238. data/lib/geoblacklight/wms_layer/feature_info_response.rb +32 -0
  239. data/lib/tasks/geoblacklight.rake +108 -0
  240. data/package.json +4 -0
  241. data/schema/format-values.md +50 -0
  242. data/schema/geoblacklight-schema-deprecated.md +39 -0
  243. data/schema/geoblacklight-schema.json +214 -0
  244. data/schema/geoblacklight-schema.md +323 -0
  245. data/schema/geometry-type-values.md +11 -0
  246. data/schema/references.md +23 -0
  247. data/schema/schema-commentary.md +198 -0
  248. data/schema/subjects.md +41 -0
  249. data/schema/type-values.md +10 -0
  250. data/solr/conf/_rest_managed.json +3 -0
  251. data/solr/conf/admin-extra.html +31 -0
  252. data/solr/conf/core.properties +5 -0
  253. data/solr/conf/elevate.xml +36 -0
  254. data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  255. data/solr/conf/protwords.txt +21 -0
  256. data/solr/conf/schema.xml +198 -0
  257. data/solr/conf/scripts.conf +24 -0
  258. data/solr/conf/solrconfig.xml +243 -0
  259. data/solr/conf/spellings.txt +2 -0
  260. data/solr/conf/stopwords.txt +58 -0
  261. data/solr/conf/stopwords_en.txt +58 -0
  262. data/solr/conf/synonyms.txt +31 -0
  263. data/solr/conf/xslt/example.xsl +132 -0
  264. data/solr/conf/xslt/example_atom.xsl +67 -0
  265. data/solr/conf/xslt/example_rss.xsl +66 -0
  266. data/solr/conf/xslt/luke.xsl +337 -0
  267. data/spec/controllers/catalog_controller_spec.rb +82 -0
  268. data/spec/controllers/download_controller_spec.rb +120 -0
  269. data/spec/controllers/relation_controller_spec.rb +11 -0
  270. data/spec/controllers/wms_controller_spec.rb +34 -0
  271. data/spec/factories/user.rb +7 -0
  272. data/spec/features/bookmarks_spec.rb +10 -0
  273. data/spec/features/configurable_basemap_spec.rb +35 -0
  274. data/spec/features/data_dictionary_download_spec.rb +16 -0
  275. data/spec/features/download_layer_spec.rb +93 -0
  276. data/spec/features/empty_search_spec.rb +11 -0
  277. data/spec/features/esri_viewer_spec.rb +42 -0
  278. data/spec/features/exports_spec.rb +36 -0
  279. data/spec/features/help_text_spec.rb +8 -0
  280. data/spec/features/home_page_spec.rb +40 -0
  281. data/spec/features/iiif_viewer_spec.rb +8 -0
  282. data/spec/features/index_map_spec.rb +31 -0
  283. data/spec/features/layer_inspection_spec.rb +10 -0
  284. data/spec/features/layer_opacity_spec.rb +20 -0
  285. data/spec/features/layer_preview_spec.rb +17 -0
  286. data/spec/features/layer_with_no_references_spec.rb +8 -0
  287. data/spec/features/linkified_attribute_table_spec.rb +11 -0
  288. data/spec/features/metadata_panel_spec.rb +78 -0
  289. data/spec/features/missing_metadata_spec.rb +24 -0
  290. data/spec/features/oembed_spec.rb +9 -0
  291. data/spec/features/relations_spec.rb +51 -0
  292. data/spec/features/saved_searches_spec.rb +13 -0
  293. data/spec/features/search_bar_spec.rb +12 -0
  294. data/spec/features/search_results_map_spec.rb +55 -0
  295. data/spec/features/search_results_overlap_ratio_spec.rb +55 -0
  296. data/spec/features/search_spec.rb +14 -0
  297. data/spec/features/show_page_metadata_spec.rb +12 -0
  298. data/spec/features/sms_spec.rb +15 -0
  299. data/spec/features/split_view.html.erb_spec.rb +75 -0
  300. data/spec/features/suppressed_records_spec.rb +14 -0
  301. data/spec/features/web_services_modal_spec.rb +25 -0
  302. data/spec/fixtures/fgdc/harvard-g7064-s2-1834-k3.xml +1 -0
  303. data/spec/fixtures/iso19139/stanford-cg357zz0321.xml +581 -0
  304. data/spec/fixtures/mods/fb897vt9938.mods +111 -0
  305. data/spec/fixtures/mods/stanford-cg357zz0321.mods +113 -0
  306. data/spec/fixtures/solr_documents/README.md +40 -0
  307. data/spec/fixtures/solr_documents/actual-papermap1.json +23 -0
  308. data/spec/fixtures/solr_documents/actual-point1.json +37 -0
  309. data/spec/fixtures/solr_documents/actual-polygon1.json +23 -0
  310. data/spec/fixtures/solr_documents/actual-raster1.json +38 -0
  311. data/spec/fixtures/solr_documents/baruch_ancestor1.json +46 -0
  312. data/spec/fixtures/solr_documents/baruch_ancestor2.json +46 -0
  313. data/spec/fixtures/solr_documents/baruch_documentation_download.json +49 -0
  314. data/spec/fixtures/solr_documents/bbox-spans-180.json +20 -0
  315. data/spec/fixtures/solr_documents/cornell_html_metadata.json +42 -0
  316. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +38 -0
  317. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +40 -0
  318. data/spec/fixtures/solr_documents/esri-feature-layer.json +46 -0
  319. data/spec/fixtures/solr_documents/esri-image-map-layer.json +42 -0
  320. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +22 -0
  321. data/spec/fixtures/solr_documents/esri-wms-layer.json +33 -0
  322. data/spec/fixtures/solr_documents/harvard_raster.json +44 -0
  323. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +30 -0
  324. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +37 -0
  325. data/spec/fixtures/solr_documents/index-map-polygon.json +37 -0
  326. data/spec/fixtures/solr_documents/index-map-stanford.json +37 -0
  327. data/spec/fixtures/solr_documents/index_map_point.json +27 -0
  328. data/spec/fixtures/solr_documents/metadata_no_dct_provenance_s.json +30 -0
  329. data/spec/fixtures/solr_documents/metadata_no_layer_geom_type_s.json +17 -0
  330. data/spec/fixtures/solr_documents/metadata_no_solr_geom.json +23 -0
  331. data/spec/fixtures/solr_documents/no_spatial.json +21 -0
  332. data/spec/fixtures/solr_documents/oembed.json +24 -0
  333. data/spec/fixtures/solr_documents/princeton-child1.json +30 -0
  334. data/spec/fixtures/solr_documents/princeton-child2.json +30 -0
  335. data/spec/fixtures/solr_documents/princeton-child3.json +30 -0
  336. data/spec/fixtures/solr_documents/princeton-child4.json +30 -0
  337. data/spec/fixtures/solr_documents/princeton-parent.json +25 -0
  338. data/spec/fixtures/solr_documents/public_direct_download.json +34 -0
  339. data/spec/fixtures/solr_documents/public_iiif_princeton.json +36 -0
  340. data/spec/fixtures/solr_documents/public_polygon_mit.json +27 -0
  341. data/spec/fixtures/solr_documents/restricted-line.json +37 -0
  342. data/spec/fixtures/solr_documents/umn_metro_result1.json +41 -0
  343. data/spec/fixtures/solr_documents/umn_state_result1.json +38 -0
  344. data/spec/fixtures/solr_documents/umn_state_result2.json +38 -0
  345. data/spec/fixtures/solr_documents/uva_slug_colon.json +25 -0
  346. data/spec/helpers/arcgis_helper_spec.rb +14 -0
  347. data/spec/helpers/carto_helper_spec.rb +11 -0
  348. data/spec/helpers/geoblacklight_helper_spec.rb +329 -0
  349. data/spec/javascripts/geoblacklight_spec.js +21 -0
  350. data/spec/javascripts/metadata_download_button_spec.js +14 -0
  351. data/spec/javascripts/spec_helper.js +32 -0
  352. data/spec/javascripts/util_spec.js +12 -0
  353. data/spec/lib/geoblacklight/bounding_box_spec.rb +27 -0
  354. data/spec/lib/geoblacklight/controller_override_spec.rb +1 -0
  355. data/spec/lib/geoblacklight/document_presenter_spec.rb +61 -0
  356. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +19 -0
  357. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +20 -0
  358. data/spec/lib/geoblacklight/download/hgl_download_spec.rb +60 -0
  359. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +20 -0
  360. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +19 -0
  361. data/spec/lib/geoblacklight/download_spec.rb +177 -0
  362. data/spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb +30 -0
  363. data/spec/lib/geoblacklight/item_viewer_spec.rb +63 -0
  364. data/spec/lib/geoblacklight/metadata/base_spec.rb +157 -0
  365. data/spec/lib/geoblacklight/metadata/html_spec.rb +18 -0
  366. data/spec/lib/geoblacklight/metadata_spec.rb +42 -0
  367. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +35 -0
  368. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +23 -0
  369. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +23 -0
  370. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +69 -0
  371. data/spec/lib/geoblacklight/reference_spec.rb +64 -0
  372. data/spec/lib/geoblacklight/references_spec.rb +216 -0
  373. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +32 -0
  374. data/spec/lib/geoblacklight/relation/descendants_spec.rb +32 -0
  375. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +43 -0
  376. data/spec/lib/geoblacklight/view_helper_override_spec.rb +37 -0
  377. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +50 -0
  378. data/spec/lib/geoblacklight/wms_layer_spec.rb +99 -0
  379. data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +61 -0
  380. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +40 -0
  381. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +16 -0
  382. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +251 -0
  383. data/spec/models/concerns/geoblacklight/spatial_search_behavior_spec.rb +84 -0
  384. data/spec/routing/catalog_routing_spec.rb +8 -0
  385. data/spec/spec_helper.rb +79 -0
  386. data/spec/support/backport_test_helpers.rb +45 -0
  387. data/spec/support/features.rb +5 -0
  388. data/spec/support/features/session_helpers.rb +20 -0
  389. data/spec/teaspoon_env.rb +213 -0
  390. data/spec/test_app_templates/Gemfile.extra +1 -0
  391. data/spec/test_app_templates/lib/generators/test_app_generator.rb +49 -0
  392. data/spec/test_app_templates/metadata/fgdc.html +129 -0
  393. data/spec/test_app_templates/metadata/fgdc.xml +145 -0
  394. data/spec/test_app_templates/metadata/iso.html +275 -0
  395. data/spec/test_app_templates/metadata/iso.xml +511 -0
  396. data/spec/test_app_templates/solr_documents +1 -0
  397. data/spec/views/catalog/_document_split.html.erb_spec.rb +5 -0
  398. data/spec/views/catalog/_index_split.html.erb_spec.rb +5 -0
  399. data/spec/views/catalog/_results_pagination.html.erb_spec.rb +9 -0
  400. data/spec/views/catalog/_show_downloads.html.erb_spec.rb +41 -0
  401. data/spec/views/catalog/_show_tools.html.erb_spec.rb +39 -0
  402. data/template.rb +19 -0
  403. data/vendor/assets/images/layers-2x.png +0 -0
  404. data/vendor/assets/images/layers.png +0 -0
  405. data/vendor/assets/images/marker-icon-2x.png +0 -0
  406. data/vendor/assets/images/marker-icon.png +0 -0
  407. data/vendor/assets/images/marker-shadow.png +0 -0
  408. data/vendor/assets/javascripts/esri-leaflet.js +5 -0
  409. data/vendor/assets/javascripts/esri-leaflet.js.map +1 -0
  410. data/vendor/assets/javascripts/leaflet-iiif.js +302 -0
  411. data/vendor/assets/javascripts/leaflet-src.js.map +1 -0
  412. data/vendor/assets/javascripts/leaflet.js.erb +13922 -0
  413. data/vendor/assets/javascripts/native.history.js +1 -0
  414. data/vendor/assets/javascripts/readmore.js +618 -0
  415. data/vendor/assets/javascripts/readmore.js.map +1 -0
  416. data/vendor/assets/stylesheets/leaflet-label.css +54 -0
  417. data/vendor/assets/stylesheets/leaflet.css +635 -0
  418. metadata +967 -0
@@ -0,0 +1,27 @@
1
+ module Geoblacklight
2
+ module Relation
3
+ class Ancestors
4
+ def initialize(id, repository)
5
+ @search_id = id
6
+ @repository = repository
7
+ end
8
+
9
+ def create_search_params
10
+ { fq: ["{!join from=#{Settings.FIELDS.SOURCE} to=layer_slug_s}layer_slug_s:#{@search_id}"],
11
+ fl: [Settings.FIELDS.TITLE, 'layer_slug_s'] }
12
+ end
13
+
14
+ def execute_query
15
+ @repository.connection.send_and_receive(
16
+ @repository.blacklight_config.solr_path,
17
+ params: create_search_params
18
+ )
19
+ end
20
+
21
+ def results
22
+ response = execute_query
23
+ response['response']
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ module Geoblacklight
2
+ module Relation
3
+ class Descendants
4
+ def initialize(id, repository)
5
+ @search_id = id
6
+ @repository = repository
7
+ end
8
+
9
+ def create_search_params
10
+ { fq: "#{Settings.FIELDS.SOURCE}:#{@search_id}",
11
+ fl: [Settings.FIELDS.TITLE, 'layer_slug_s'] }
12
+ end
13
+
14
+ def execute_query
15
+ @repository.connection.send_and_receive(
16
+ @repository.blacklight_config.solr_path,
17
+ params: create_search_params
18
+ )
19
+ end
20
+
21
+ def results
22
+ response = execute_query
23
+ response['response']
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,24 @@
1
+ module Geoblacklight
2
+ module Relation
3
+ class RelationResponse
4
+ attr_reader :search_id, :link_id
5
+ def initialize(id, repository)
6
+ @link_id = id
7
+ @search_id = RSolr.solr_escape(id)
8
+ @repository = repository
9
+ end
10
+
11
+ def ancestors
12
+ @ancestors ||= Geoblacklight::Relation::Ancestors.new(@search_id, @repository).results
13
+ end
14
+
15
+ def descendants
16
+ @descendants ||= Geoblacklight::Relation::Descendants.new(@search_id, @repository).results
17
+ end
18
+
19
+ def empty?
20
+ !(ancestors['numFound'] > 0 || descendants['numFound'] > 0)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,7 @@
1
+ module Geoblacklight
2
+ module Routes
3
+ require 'geoblacklight/routes/exportable'
4
+ require 'geoblacklight/routes/downloadable'
5
+ require 'geoblacklight/routes/wms'
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ module Geoblacklight
2
+ module Routes
3
+ class Downloadable
4
+ def initialize(defaults = {})
5
+ @defaults = defaults
6
+ end
7
+
8
+ def call(mapper, _options = {})
9
+ mapper.get 'file/:id', action: 'file', as: :file
10
+ mapper.get 'hgl/:id', action: 'hgl', as: :hgl
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ module Geoblacklight
2
+ module Routes
3
+ class Exportable
4
+ def initialize(defaults = {})
5
+ @defaults = defaults
6
+ end
7
+
8
+ def call(mapper, _options = {})
9
+ mapper.member do
10
+ mapper.get 'web_services'
11
+ mapper.get 'metadata'
12
+ mapper.get 'relations' => 'relation#index'
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module Geoblacklight
2
+ module Routes
3
+ class Wms
4
+ def initialize(defaults = {})
5
+ @defaults = defaults
6
+ end
7
+
8
+ def call(mapper, _options = {})
9
+ mapper.post 'handle'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module Geoblacklight
2
+ VERSION = '2.3.0'.freeze
3
+ end
@@ -0,0 +1,40 @@
1
+ module Geoblacklight
2
+ module ViewHelperOverride
3
+ include CatalogHelperOverride
4
+
5
+ def spatial_parameters?
6
+ params[:bbox]
7
+ end
8
+
9
+ # Overrides BL method to enable results for spatial only params
10
+ def has_search_parameters?
11
+ spatial_parameters? || super
12
+ end
13
+
14
+ def query_has_constraints?(localized_params = params)
15
+ has_search_parameters? || super(localized_params)
16
+ end
17
+
18
+ def render_search_to_s(params)
19
+ super + render_search_to_s_bbox(params)
20
+ end
21
+
22
+ def render_search_to_s_bbox(params)
23
+ return ''.html_safe if params['bbox'].blank?
24
+ render_search_to_s_element(t('geoblacklight.bbox_label'), render_filter_value(params['bbox']))
25
+ end
26
+
27
+ def render_constraints_filters(localized_params = params)
28
+ content = super(localized_params)
29
+ localized_params = localized_params.to_unsafe_h unless localized_params.is_a?(Hash)
30
+
31
+ if localized_params[:bbox]
32
+ path = search_action_path(remove_spatial_filter_group(:bbox, localized_params))
33
+ content << render_constraint_element(t('geoblacklight.bbox_label'),
34
+ localized_params[:bbox], remove: path)
35
+ end
36
+
37
+ content
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,35 @@
1
+ module Geoblacklight
2
+ class WmsLayer
3
+ def initialize(params)
4
+ @params = params.to_h.merge(Settings.WMS_PARAMS)
5
+ @response = Geoblacklight::FeatureInfoResponse.new(request_response)
6
+ end
7
+
8
+ def url
9
+ @params['URL']
10
+ end
11
+
12
+ def search_params
13
+ @params.except('URL')
14
+ end
15
+
16
+ def feature_info
17
+ @response.check
18
+ end
19
+
20
+ def request_response
21
+ conn = Faraday.new(url: url)
22
+ conn.get do |request|
23
+ request.params = search_params
24
+ request.options.timeout = Settings.TIMEOUT_WMS
25
+ request.options.open_timeout = Settings.TIMEOUT_WMS
26
+ end
27
+ rescue Faraday::ConnectionFailed => error
28
+ Geoblacklight.logger.error error.inspect
29
+ { error: error.inspect }
30
+ rescue Faraday::TimeoutError => error
31
+ Geoblacklight.logger.error error.inspect
32
+ { error: error.inspect }
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,32 @@
1
+ module Geoblacklight
2
+ class FeatureInfoResponse
3
+ def initialize(response)
4
+ @response = response
5
+ end
6
+
7
+ def check
8
+ if error?
9
+ @response
10
+ else
11
+ format
12
+ end
13
+ end
14
+
15
+ def format
16
+ page = Nokogiri::HTML(@response.body)
17
+ table_values = { values: [] }
18
+ page.css('th').each do |th|
19
+ table_values[:values].push([th.text])
20
+ end
21
+ page.css('td').each_with_index do |td, index|
22
+ table_values[:values][index].push(td.text) unless index >= table_values[:values].count
23
+ end
24
+ table_values
25
+ end
26
+
27
+ def error?
28
+ @response[:error] ||
29
+ @response.headers['content-type'].slice(0, 9) == 'text/xml'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,108 @@
1
+ require 'rails/generators'
2
+ require 'generators/geoblacklight/install_generator'
3
+
4
+ namespace :geoblacklight do
5
+ desc 'Run Solr and GeoBlacklight for interactive development'
6
+ task :server, [:rails_server_args] do |_t, args|
7
+ require 'solr_wrapper'
8
+ SolrWrapper.wrap(port: '8983') do |solr|
9
+ solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path('../../', File.dirname(__FILE__)), 'solr', 'conf')) do
10
+ puts "\nSolr server running: http://localhost:#{solr.port}/solr/#/blacklight-core"
11
+ puts "\n^C to stop"
12
+ puts ' '
13
+ begin
14
+ Rake::Task['geoblacklight:solr:seed'].invoke
15
+ system "bundle exec rails s #{args[:rails_server_args]}"
16
+ rescue Interrupt
17
+ puts 'Shutting down...'
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ desc 'Run Solr and GeoBlacklight for interactive development with Webpack enabled'
24
+ task :webpack do |_t|
25
+ require 'solr_wrapper'
26
+ SolrWrapper.wrap(port: '8983') do |solr|
27
+ solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path('../../', File.dirname(__FILE__)), 'solr', 'conf')) do
28
+ puts "\nSolr server running: http://localhost:#{solr.port}/solr/#/blacklight-core"
29
+ puts "\n^C to stop"
30
+ puts ' '
31
+ begin
32
+ Rake::Task['geoblacklight:solr:seed'].invoke
33
+ system "foreman start"
34
+ rescue Interrupt
35
+ puts 'Shutting down...'
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ namespace :index do
42
+ desc "Put sample data into solr"
43
+ task :seed => :environment do
44
+ docs = Dir['spec/fixtures/solr_documents/*.json'].map { |f| JSON.parse File.read(f) }.flatten
45
+ Blacklight.default_index.connection.add docs
46
+ Blacklight.default_index.connection.commit
47
+ end
48
+
49
+ desc "Ingests a GeoHydra transformed.json"
50
+ task :ingest_all => :environment do
51
+ docs = JSON::parse(File.read("#{Rails.root}/tmp/transformed.json"))
52
+ docs.each do |doc|
53
+ Blacklight.default_index.connection.add doc
54
+ Blacklight.default_index.connection.commit
55
+ end
56
+ end
57
+
58
+ desc "Ingests a directory of geoblacklight.json files"
59
+ task :ingest, [:directory] => :environment do |_t, args|
60
+ args.with_defaults(directory: 'data')
61
+ Dir.glob(File.join(args[:directory], '**', 'geoblacklight.json')).each do |fn|
62
+ puts "Ingesting #{fn}"
63
+ begin
64
+ Blacklight.default_index.connection.add(JSON.parse(File.read(fn)))
65
+ rescue => e
66
+ puts "Failed to ingest #{fn}: #{e.inspect}"
67
+ end
68
+ end
69
+ puts "Committing changes to Solr"
70
+ Blacklight.default_index.connection.commit
71
+ end
72
+ end
73
+
74
+ namespace :downloads do
75
+ desc 'Delete all cached downloads'
76
+ task delete: :environment do
77
+ FileUtils.rm_rf Dir.glob("#{Rails.root}/tmp/cache/downloads/*")
78
+ end
79
+ desc 'Create download directory'
80
+ task mkdir: :environment do
81
+ FileUtils.mkdir_p Dir.glob("#{Rails.root}/tmp/cache/downloads")
82
+ end
83
+ desc 'Precaches a download'
84
+ task :precache, [:doc_id, :download_type, :timeout] => [:environment] do |t, args|
85
+ begin
86
+ fail 'Please supply required arguments [document_id, download_type and timeout]' unless args[:doc_id] && args[:download_type] && args[:timeout]
87
+ document = Geoblacklight::SolrDocument.find(args[:doc_id])
88
+ fail Blacklight::Exceptions::RecordNotFound if document[:layer_slug_s] != args[:doc_id]
89
+ download = "Geoblacklight::#{args[:download_type].capitalize}Download"
90
+ .constantize.new(document, timeout: args[:timeout].to_i)
91
+ download.get
92
+ Rails.logger.info "Successfully downloaded #{download.file_name}"
93
+ Rails.logger.info "#{Geoblacklight::ShapefileDownload.file_path}"
94
+ rescue Geoblacklight::Exceptions::ExternalDownloadFailed => error
95
+ Rails.logger.error error.message + ' ' + error.url
96
+ rescue NameError
97
+ Rails.logger.error "Could not find that download type \"#{args[:download_type]}\""
98
+ end
99
+ end
100
+ end
101
+
102
+ namespace :solr do
103
+ desc "Put sample data into solr"
104
+ task :seed => :environment do
105
+ Rake::Task['geoblacklight:index:seed'].invoke
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "geoblacklight",
3
+ "version": "2.1.2"
4
+ }
@@ -0,0 +1,50 @@
1
+ ## GeoBlacklight Format Controlled Vocabulary
2
+
3
+ #### Type: Dataset
4
+ | Format | Associated Geometry Type(s) |
5
+ |:----------------------------|:-------------|
6
+ |ArcGRID |Raster |
7
+ |CD-ROM |Vector or Raster |
8
+ |DEM |Vector or Raster |
9
+ |DVD-ROM |Vector or Raster |
10
+ |Feature Class |Vector or Raster |
11
+ |Geodatabase |Vector or Raster |
12
+ |GeoJPEG |Raster |
13
+ |GeoJSON |Vector |
14
+ |GeoPackage |Vector or Raster |
15
+ |GeoPDF |Vector or Raster |
16
+ |GeoTIFF |Raster |
17
+ |KML |Vector |
18
+ |KMZ |Vector or Raster |
19
+ |LAS | |
20
+ |LAZ | |
21
+ |Mixed |Vector or Raster |
22
+ |Pulsewaves | |
23
+ |Raster Dataset |Raster |
24
+ |Shapefile |Vector |
25
+ |SQLite Database|Vector or Raster |
26
+ |Tabular Data |- |
27
+
28
+ #### Type: Image
29
+
30
+ | Format |
31
+ |:----------------------------|
32
+ |JPEG |
33
+ |JPEG2000 |
34
+ |Mixed |
35
+ |MrSID |
36
+ |PDF |
37
+ |PNG |
38
+ |TIFF |
39
+
40
+
41
+ #### Type: Interactive Resource
42
+ | Format |
43
+ |:----------------------------|
44
+ |Web Application|
45
+
46
+ #### Type: Physical Object
47
+ | Format |
48
+ |:----------------------------|
49
+ |Cartographic Material|
50
+ |Paper Map|
@@ -0,0 +1,39 @@
1
+ ## <a name="resource-layer">layer</a>
2
+
3
+
4
+ A GIS data layer. See [this example](https://github.com/OpenGeoMetadata/edu.stanford.purl/blob/master/bb/099/zb/1450/geoblacklight.json) metadata layer.
5
+
6
+ ### Attributes
7
+
8
+ | Name | Type | Description | Example |
9
+ | ------- | ------- | ------- | ------- |
10
+ | **dc_creator_sm** | *array* | Author(s) of the layer. *Optional* | `"George Washington, Thomas Jefferson"` |
11
+ | **dc_description_s** | *string* | Description for the layer. *Optional* | `"My Description"` |
12
+ | **dc_format_s** | *string* | File format for the layer, ideally using a controlled vocabulary. *Optional* | `"Shapefile, GeoTIFF, ArcGRID"` |
13
+ | **dc_identifier_s** | *string* | Unique identifier for layer as a URI. It should be globally unique across all institutions, assumed not to be end-user visible, and is usually of the form `http://institution/id`. See https://github.com/geoblacklight/geoblacklight/wiki/Schema for more detailed documentation. | `"http://purl.stanford.edu/vr593vj7147"` |
14
+ | **dc_language_s** | *string* | Language for the layer. *Optional*. Note that future versions of the schema may make this a multi-valued field. | `"English"` |
15
+ | **dc_publisher_s** | *string* | Publisher of the layer. *Optional* | `"ML InfoMap"` |
16
+ | **dc_relation_sm** | *array* | *DEPRECATED* (use `dct_isPartOf_sm`). A reference to a related resource for this layer. *Optional* | `"http://purl.stanford.edu/vr593vj7147"` |
17
+ | **dc_rights_s** | *string* | Access rights for the layer.<br/> **one of:**`"Public"` or `"Restricted"` | `"Public"` |
18
+ | **dc_source_sm** | *array* | The identity of a layer from which this layer's data was derived. *Optional* | `"stanford-vr593vj7147"` |
19
+ | **dc_subject_sm** | *array* | Subjects for the layer, preferrably in a controlled vocabulary. *Optional* | `"Census, Human settlements"` |
20
+ | **dc_title_s** | *string* | Title for the layer. | `"My Title"` |
21
+ | **dc_type_s** | *string* | Resource type of the layer, using DCMI Type Vocabulary, usually a `Dataset`. *Optional*<br/> **one of:**`"Dataset"` or `"Image"` or `"PhysicalObject"` | `"Dataset"` |
22
+ | **dct_isPartOf_sm** | *array* | Holding entity for the layer, such as the title of a collection. *Optional* | `"Village Maps of India"` |
23
+ | **dct_issued_dt** | *date-time* | Issued date for the layer, using XML Schema dateTime format (YYYY-MM-DDThh:mm:ssZ). *Optional* | `"2015-01-01T12:00:00Z"` |
24
+ | **dct_provenance_s** | *string* | Institution who holds the layer. | `"Stanford"` |
25
+ | **dct_references_s** | *string* | External resources that are available for the layer. The value is a JSON hash where each key is a URI for the protocol or format, and the value is the URL to the external resource. See `dct_references_s` [detailed documentation](http://geoblacklight.org/tutorial/2015/02/09/geoblacklight-overview.html). *Optional*<br/> **pattern:** `\{.*\}` | `"{ ... }"` |
26
+ | **dct_spatial_sm** | *array* | Spatial coverage and place names for the layer, preferrably in a controlled vocabulary. *Optional* | `"Paris, San Francisco"` |
27
+ | **dct_temporal_sm** | *array* | Temporal coverage for the layer, typically years or dates. Note that this field is not in a specific date format. *Optional* | `"1989, circa 2010, 2007-2009"` |
28
+ | **geoblacklight_version** | *string* | The version of the GeoBlacklight Schema to which this metadata record conforms.<br/> **one of:**`"1.0"` | `"1.0"` |
29
+ | **georss_box_s** | *string* | *DEPRECATED* (use `solr_geom`): Bounding box for the layer, as maximum values for S W N E. | `"12.6 -119.4 19.9 84.8"` |
30
+ | **georss_point_s** | *string* | *DEPRECATED* (use `georss_box_s`): Point representation for layer as y, x - i.e., centroid | `"12.6 -119.4"` |
31
+ | **layer_geom_type_s** | *string* | Geometry type for layer data, using controlled vocabulary.<br/> **one of:**`"Point"` or `"Line"` or `"Polygon"` or `"Raster"` or `"Scanned Map"` or `"Image"` or `"Mixed"` | `"Point"` |
32
+ | **layer_id_s** | *string* | The complete identifier for the layer via WMS/WFS/WCS protocol. *Optional* | `"druid:vr593vj7147"` |
33
+ | **layer_modified_dt** | *date-time* | Last modification date for the metadata record, using XML Schema dateTime format (YYYY-MM-DDThh:mm:ssZ). *Optional* | `"2015-01-01T12:00:00Z"` |
34
+ | **layer_slug_s** | *string* | Identifies a layer in human-readable keywords. Note this value is visible to the user, and used for Permalinks. The value should be alpha-numeric characters separated by dashes, and is typically of the form `institution-keyword1-keyword2`. It should also be globally unique across all institutions in *your* GeoBlacklight index. See https://github.com/geoblacklight/geoblacklight/wiki/Schema for more detailed documentation.<br/> **pattern:** `^[-a-zA-Z0-9]+$` | `"stanford-andhra-pradesh-village-boundaries"` |
35
+ | **solr_geom** | *string* | Bounding box of the layer as a ENVELOPE WKT (from the CQL standard) using coordinates in (West, East, North, South) order. Note that this field is indexed as a Solr spatial (RPT) field.<br/> **pattern:** `ENVELOPE(.*,.*,.*,.*)` | `"ENVELOPE(76.76, 84.76, 19.91, 12.62)"` |
36
+ | **solr_year_i** | *integer* | *DEPRECATED* (only used by the Blacklight range plugin, not core GeoBlacklight, and generally you want a multi-valued field here): *Derived from* `dct_temporal_sm`. Year for which layer is valid and only a single value. Note that this field is indexed as a Solr numeric field. | `"1989"` |
37
+ | **uuid** | *string* | *DEPRECATED* (use `dc_identifier_s`): Unique identifier for layer that is globally unique. | `"http://purl.stanford.edu/vr593vj7147"` |
38
+
39
+