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.
- checksums.yaml +7 -0
- data/.circleci/config.yml +195 -0
- data/.github/ISSUE_TEMPLATE.md +17 -0
- data/.gitignore +21 -0
- data/.gitmodules +0 -0
- data/.hound.yml +8 -0
- data/.jshintignore +2 -0
- data/.jshintrc +67 -0
- data/.rubocop.yml +99 -0
- data/.rubocop_todo.yml +196 -0
- data/.solr_wrapper +5 -0
- data/CODE_OF_CONDUCT.md +76 -0
- data/CONTRIBUTING.md +49 -0
- data/Gemfile +39 -0
- data/LICENSE.txt +13 -0
- data/README.md +39 -0
- data/Rakefile +125 -0
- data/app/assets/images/blacklight/arrow-circle-down.svg +4 -0
- data/app/assets/images/blacklight/baruch-cuny.svg +6 -0
- data/app/assets/images/blacklight/berkeley.svg +7 -0
- data/app/assets/images/blacklight/book.svg +6 -0
- data/app/assets/images/blacklight/bookmark.svg +6 -0
- data/app/assets/images/blacklight/cd-rom.svg +6 -0
- data/app/assets/images/blacklight/chicago.svg +7 -0
- data/app/assets/images/blacklight/columbia.svg +6 -0
- data/app/assets/images/blacklight/cornell.svg +8 -0
- data/app/assets/images/blacklight/dvd-rom.svg +6 -0
- data/app/assets/images/blacklight/email.svg +6 -0
- data/app/assets/images/blacklight/esri-globe.svg +34 -0
- data/app/assets/images/blacklight/geoblacklight-icons.json +2079 -0
- data/app/assets/images/blacklight/globe.svg +4 -0
- data/app/assets/images/blacklight/harvard.svg +6 -0
- data/app/assets/images/blacklight/home.svg +4 -0
- data/app/assets/images/blacklight/illinois.svg +7 -0
- data/app/assets/images/blacklight/image.svg +6 -0
- data/app/assets/images/blacklight/indiana.svg +6 -0
- data/app/assets/images/blacklight/iowa.svg +6 -0
- data/app/assets/images/blacklight/leaf.svg +6 -0
- data/app/assets/images/blacklight/lewis-clark.svg +8 -0
- data/app/assets/images/blacklight/line.svg +7 -0
- data/app/assets/images/blacklight/logo.svg +1 -0
- data/app/assets/images/blacklight/map-marker.svg +6 -0
- data/app/assets/images/blacklight/map.svg +6 -0
- data/app/assets/images/blacklight/maryland.svg +6 -0
- data/app/assets/images/blacklight/massgis.svg +6 -0
- data/app/assets/images/blacklight/metadata.svg +6 -0
- data/app/assets/images/blacklight/michigan-state.svg +7 -0
- data/app/assets/images/blacklight/michigan.svg +6 -0
- data/app/assets/images/blacklight/minnesota.svg +6 -0
- data/app/assets/images/blacklight/mit.svg +6 -0
- data/app/assets/images/blacklight/mixed.svg +8 -0
- data/app/assets/images/blacklight/multilinestring.svg +9 -0
- data/app/assets/images/blacklight/multipoint.svg +6 -0
- data/app/assets/images/blacklight/multipolygon.svg +9 -0
- data/app/assets/images/blacklight/nyu.svg +9 -0
- data/app/assets/images/blacklight/ohio-state.svg +8 -0
- data/app/assets/images/blacklight/pagelines-brands.svg +6 -0
- data/app/assets/images/blacklight/paper-map.svg +6 -0
- data/app/assets/images/blacklight/penn-state.svg +7 -0
- data/app/assets/images/blacklight/point.svg +6 -0
- data/app/assets/images/blacklight/polygon.svg +7 -0
- data/app/assets/images/blacklight/polyline.svg +9 -0
- data/app/assets/images/blacklight/princeton.svg +6 -0
- data/app/assets/images/blacklight/public.svg +6 -0
- data/app/assets/images/blacklight/purdue.svg +7 -0
- data/app/assets/images/blacklight/raster.svg +6 -0
- data/app/assets/images/blacklight/restricted.svg +6 -0
- data/app/assets/images/blacklight/sms.svg +6 -0
- data/app/assets/images/blacklight/stanford.svg +6 -0
- data/app/assets/images/blacklight/table.svg +6 -0
- data/app/assets/images/blacklight/tags.svg +4 -0
- data/app/assets/images/blacklight/texas.svg +6 -0
- data/app/assets/images/blacklight/tufts.svg +6 -0
- data/app/assets/images/blacklight/ucla.svg +6 -0
- data/app/assets/images/blacklight/uva.svg +6 -0
- data/app/assets/images/blacklight/web_services.svg +6 -0
- data/app/assets/images/blacklight/wisconsin.svg +6 -0
- data/app/assets/javascripts/geoblacklight/basemaps.js +85 -0
- data/app/assets/javascripts/geoblacklight/controls.js +1 -0
- data/app/assets/javascripts/geoblacklight/controls/opacity.js +6 -0
- data/app/assets/javascripts/geoblacklight/downloaders.js +1 -0
- data/app/assets/javascripts/geoblacklight/downloaders/downloader.js +61 -0
- data/app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js +32 -0
- data/app/assets/javascripts/geoblacklight/geoblacklight.js +42 -0
- data/app/assets/javascripts/geoblacklight/modules.js +1 -0
- data/app/assets/javascripts/geoblacklight/modules/collapse.js +7 -0
- data/app/assets/javascripts/geoblacklight/modules/download.js +11 -0
- data/app/assets/javascripts/geoblacklight/modules/geosearch.js +133 -0
- data/app/assets/javascripts/geoblacklight/modules/help_text.js +7 -0
- data/app/assets/javascripts/geoblacklight/modules/home.js +16 -0
- data/app/assets/javascripts/geoblacklight/modules/item.js +13 -0
- data/app/assets/javascripts/geoblacklight/modules/layer_opacity.js +68 -0
- data/app/assets/javascripts/geoblacklight/modules/metadata.js +15 -0
- data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +53 -0
- data/app/assets/javascripts/geoblacklight/modules/relations.js +14 -0
- data/app/assets/javascripts/geoblacklight/modules/results.js +82 -0
- data/app/assets/javascripts/geoblacklight/modules/util.js +38 -0
- data/app/assets/javascripts/geoblacklight/templates/index_map_download.hbs +19 -0
- data/app/assets/javascripts/geoblacklight/templates/index_map_info.hbs +40 -0
- data/app/assets/javascripts/geoblacklight/viewers.js +1 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri.js +77 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/dynamic_map_layer.js +85 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/feature_layer.js +76 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/image_map_layer.js +14 -0
- data/app/assets/javascripts/geoblacklight/viewers/esri/tiled_map_layer.js +50 -0
- data/app/assets/javascripts/geoblacklight/viewers/iiif.js +25 -0
- data/app/assets/javascripts/geoblacklight/viewers/index_map.js +70 -0
- data/app/assets/javascripts/geoblacklight/viewers/map.js +67 -0
- data/app/assets/javascripts/geoblacklight/viewers/oembed.js +13 -0
- data/app/assets/javascripts/geoblacklight/viewers/viewer.js +65 -0
- data/app/assets/javascripts/geoblacklight/viewers/wms.js +74 -0
- data/app/assets/stylesheets/geoblacklight/_blacklight_overrides.scss +51 -0
- data/app/assets/stylesheets/geoblacklight/_geoblacklight.scss +36 -0
- data/app/assets/stylesheets/geoblacklight/_styles.scss +4 -0
- data/app/assets/stylesheets/geoblacklight/application.scss +2 -0
- data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +93 -0
- data/app/assets/stylesheets/geoblacklight/modules/facets.scss +5 -0
- data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +29 -0
- data/app/assets/stylesheets/geoblacklight/modules/home.scss +28 -0
- data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +50 -0
- data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +7 -0
- data/app/assets/stylesheets/geoblacklight/modules/item.scss +26 -0
- data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +87 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +31 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +43 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +9 -0
- data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +7 -0
- data/app/assets/stylesheets/geoblacklight/modules/mixins.scss +5 -0
- data/app/assets/stylesheets/geoblacklight/modules/modal.scss +14 -0
- data/app/assets/stylesheets/geoblacklight/modules/relations.scss +15 -0
- data/app/assets/stylesheets/geoblacklight/modules/results.scss +68 -0
- data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +5 -0
- data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +60 -0
- data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +70 -0
- data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +5 -0
- data/app/controllers/download_controller.rb +114 -0
- data/app/controllers/relation_controller.rb +20 -0
- data/app/controllers/wms_controller.rb +15 -0
- data/app/helpers/arcgis_helper.rb +12 -0
- data/app/helpers/blacklight_helper.rb +9 -0
- data/app/helpers/carto_helper.rb +29 -0
- data/app/helpers/geoblacklight_helper.rb +323 -0
- data/app/models/concerns/geoblacklight/solr_document.rb +113 -0
- data/app/models/concerns/geoblacklight/solr_document/arcgis.rb +10 -0
- data/app/models/concerns/geoblacklight/solr_document/carto.rb +28 -0
- data/app/models/concerns/geoblacklight/solr_document/finder.rb +38 -0
- data/app/models/concerns/geoblacklight/solr_document/inspection.rb +15 -0
- data/app/models/concerns/geoblacklight/spatial_search_behavior.rb +69 -0
- data/app/presenters/geoblacklight/document_presenter.rb +23 -0
- data/app/views/catalog/_data_dictionary.html.erb +6 -0
- data/app/views/catalog/_document_action.html.erb +6 -0
- data/app/views/catalog/_document_split.html.erb +6 -0
- data/app/views/catalog/_download_generated_link.html.erb +4 -0
- data/app/views/catalog/_download_link.html.erb +3 -0
- data/app/views/catalog/_downloads_generated.html.erb +6 -0
- data/app/views/catalog/_downloads_primary.html.erb +14 -0
- data/app/views/catalog/_downloads_secondary.html.erb +39 -0
- data/app/views/catalog/_exports.html.erb +3 -0
- data/app/views/catalog/_facet_tag_item.html.erb +3 -0
- data/app/views/catalog/_facet_tag_layout.html.erb +2 -0
- data/app/views/catalog/_header_icons.html.erb +3 -0
- data/app/views/catalog/_home_text.html.erb +43 -0
- data/app/views/catalog/_icon_facet.html.erb +16 -0
- data/app/views/catalog/_index_split_default.html.erb +22 -0
- data/app/views/catalog/_metadata.html.erb +27 -0
- data/app/views/catalog/_relations_container.html.erb +1 -0
- data/app/views/catalog/_results_pagination.html.erb +12 -0
- data/app/views/catalog/_show_default_attribute_table.html.erb +19 -0
- data/app/views/catalog/_show_default_viewer_container.html.erb +12 -0
- data/app/views/catalog/_show_default_viewer_information.html.erb +4 -0
- data/app/views/catalog/_show_downloads.html.erb +34 -0
- data/app/views/catalog/_show_header_default.html.erb +4 -0
- data/app/views/catalog/_show_sidebar.html.erb +12 -0
- data/app/views/catalog/_show_tools.html.erb +25 -0
- data/app/views/catalog/_web_services.html.erb +8 -0
- data/app/views/catalog/_web_services_default.html.erb +8 -0
- data/app/views/catalog/_web_services_wfs.html.erb +8 -0
- data/app/views/catalog/_web_services_wms.html.erb +8 -0
- data/app/views/catalog/index.html.erb +13 -0
- data/app/views/catalog/metadata.html.erb +11 -0
- data/app/views/catalog/metadata/_content.html.erb +3 -0
- data/app/views/catalog/metadata/_markup.html.erb +8 -0
- data/app/views/catalog/metadata/_missing.html.erb +6 -0
- data/app/views/catalog/web_services.html.erb +10 -0
- data/app/views/download/hgl.html.erb +25 -0
- data/app/views/relation/_ancestors.html.erb +11 -0
- data/app/views/relation/_descendants.html.erb +18 -0
- data/app/views/relation/index.html.erb +13 -0
- data/app/views/relation/index.json.jbuilder +3 -0
- data/app/views/shared/_header_navbar.html.erb +38 -0
- data/config/initializers/rails_config.rb +3 -0
- data/config/locales/geoblacklight.en.yml +163 -0
- data/geoblacklight.gemspec +49 -0
- data/lib/generators/geoblacklight/install_generator.rb +105 -0
- data/lib/generators/geoblacklight/templates/Procfile +3 -0
- data/lib/generators/geoblacklight/templates/catalog_controller.rb +272 -0
- data/lib/generators/geoblacklight/templates/geoblacklight.js +10 -0
- data/lib/generators/geoblacklight/templates/geoblacklight.scss +4 -0
- data/lib/generators/geoblacklight/templates/package.json +14 -0
- data/lib/generators/geoblacklight/templates/settings.yml +127 -0
- data/lib/generators/geoblacklight/templates/webpacker.yml +67 -0
- data/lib/generators/geoblacklight/webpacker_generator.rb +35 -0
- data/lib/geoblacklight.rb +50 -0
- data/lib/geoblacklight/bounding_box.rb +45 -0
- data/lib/geoblacklight/catalog_helper_override.rb +13 -0
- data/lib/geoblacklight/constants.rb +28 -0
- data/lib/geoblacklight/download.rb +108 -0
- data/lib/geoblacklight/download/geojson_download.rb +22 -0
- data/lib/geoblacklight/download/geotiff_download.rb +20 -0
- data/lib/geoblacklight/download/hgl_download.rb +18 -0
- data/lib/geoblacklight/download/kmz_download.rb +22 -0
- data/lib/geoblacklight/download/shapefile_download.rb +20 -0
- data/lib/geoblacklight/engine.rb +27 -0
- data/lib/geoblacklight/exceptions.rb +27 -0
- data/lib/geoblacklight/geoblacklight_helper_behavior.rb +14 -0
- data/lib/geoblacklight/item_viewer.rb +54 -0
- data/lib/geoblacklight/metadata.rb +18 -0
- data/lib/geoblacklight/metadata/base.rb +93 -0
- data/lib/geoblacklight/metadata/fgdc.rb +14 -0
- data/lib/geoblacklight/metadata/html.rb +13 -0
- data/lib/geoblacklight/metadata/iso19139.rb +14 -0
- data/lib/geoblacklight/metadata_transformer.rb +33 -0
- data/lib/geoblacklight/metadata_transformer/base.rb +42 -0
- data/lib/geoblacklight/metadata_transformer/fgdc.rb +8 -0
- data/lib/geoblacklight/metadata_transformer/iso19139.rb +8 -0
- data/lib/geoblacklight/reference.rb +45 -0
- data/lib/geoblacklight/references.rb +132 -0
- data/lib/geoblacklight/relation/ancestors.rb +27 -0
- data/lib/geoblacklight/relation/descendants.rb +27 -0
- data/lib/geoblacklight/relation/relation_response.rb +24 -0
- data/lib/geoblacklight/routes.rb +7 -0
- data/lib/geoblacklight/routes/downloadable.rb +14 -0
- data/lib/geoblacklight/routes/exportable.rb +17 -0
- data/lib/geoblacklight/routes/wms.rb +13 -0
- data/lib/geoblacklight/version.rb +3 -0
- data/lib/geoblacklight/view_helper_override.rb +40 -0
- data/lib/geoblacklight/wms_layer.rb +35 -0
- data/lib/geoblacklight/wms_layer/feature_info_response.rb +32 -0
- data/lib/tasks/geoblacklight.rake +108 -0
- data/package.json +4 -0
- data/schema/format-values.md +50 -0
- data/schema/geoblacklight-schema-deprecated.md +39 -0
- data/schema/geoblacklight-schema.json +214 -0
- data/schema/geoblacklight-schema.md +323 -0
- data/schema/geometry-type-values.md +11 -0
- data/schema/references.md +23 -0
- data/schema/schema-commentary.md +198 -0
- data/schema/subjects.md +41 -0
- data/schema/type-values.md +10 -0
- data/solr/conf/_rest_managed.json +3 -0
- data/solr/conf/admin-extra.html +31 -0
- data/solr/conf/core.properties +5 -0
- data/solr/conf/elevate.xml +36 -0
- data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/solr/conf/protwords.txt +21 -0
- data/solr/conf/schema.xml +198 -0
- data/solr/conf/scripts.conf +24 -0
- data/solr/conf/solrconfig.xml +243 -0
- data/solr/conf/spellings.txt +2 -0
- data/solr/conf/stopwords.txt +58 -0
- data/solr/conf/stopwords_en.txt +58 -0
- data/solr/conf/synonyms.txt +31 -0
- data/solr/conf/xslt/example.xsl +132 -0
- data/solr/conf/xslt/example_atom.xsl +67 -0
- data/solr/conf/xslt/example_rss.xsl +66 -0
- data/solr/conf/xslt/luke.xsl +337 -0
- data/spec/controllers/catalog_controller_spec.rb +82 -0
- data/spec/controllers/download_controller_spec.rb +120 -0
- data/spec/controllers/relation_controller_spec.rb +11 -0
- data/spec/controllers/wms_controller_spec.rb +34 -0
- data/spec/factories/user.rb +7 -0
- data/spec/features/bookmarks_spec.rb +10 -0
- data/spec/features/configurable_basemap_spec.rb +35 -0
- data/spec/features/data_dictionary_download_spec.rb +16 -0
- data/spec/features/download_layer_spec.rb +93 -0
- data/spec/features/empty_search_spec.rb +11 -0
- data/spec/features/esri_viewer_spec.rb +42 -0
- data/spec/features/exports_spec.rb +36 -0
- data/spec/features/help_text_spec.rb +8 -0
- data/spec/features/home_page_spec.rb +40 -0
- data/spec/features/iiif_viewer_spec.rb +8 -0
- data/spec/features/index_map_spec.rb +31 -0
- data/spec/features/layer_inspection_spec.rb +10 -0
- data/spec/features/layer_opacity_spec.rb +20 -0
- data/spec/features/layer_preview_spec.rb +17 -0
- data/spec/features/layer_with_no_references_spec.rb +8 -0
- data/spec/features/linkified_attribute_table_spec.rb +11 -0
- data/spec/features/metadata_panel_spec.rb +78 -0
- data/spec/features/missing_metadata_spec.rb +24 -0
- data/spec/features/oembed_spec.rb +9 -0
- data/spec/features/relations_spec.rb +51 -0
- data/spec/features/saved_searches_spec.rb +13 -0
- data/spec/features/search_bar_spec.rb +12 -0
- data/spec/features/search_results_map_spec.rb +55 -0
- data/spec/features/search_results_overlap_ratio_spec.rb +55 -0
- data/spec/features/search_spec.rb +14 -0
- data/spec/features/show_page_metadata_spec.rb +12 -0
- data/spec/features/sms_spec.rb +15 -0
- data/spec/features/split_view.html.erb_spec.rb +75 -0
- data/spec/features/suppressed_records_spec.rb +14 -0
- data/spec/features/web_services_modal_spec.rb +25 -0
- data/spec/fixtures/fgdc/harvard-g7064-s2-1834-k3.xml +1 -0
- data/spec/fixtures/iso19139/stanford-cg357zz0321.xml +581 -0
- data/spec/fixtures/mods/fb897vt9938.mods +111 -0
- data/spec/fixtures/mods/stanford-cg357zz0321.mods +113 -0
- data/spec/fixtures/solr_documents/README.md +40 -0
- data/spec/fixtures/solr_documents/actual-papermap1.json +23 -0
- data/spec/fixtures/solr_documents/actual-point1.json +37 -0
- data/spec/fixtures/solr_documents/actual-polygon1.json +23 -0
- data/spec/fixtures/solr_documents/actual-raster1.json +38 -0
- data/spec/fixtures/solr_documents/baruch_ancestor1.json +46 -0
- data/spec/fixtures/solr_documents/baruch_ancestor2.json +46 -0
- data/spec/fixtures/solr_documents/baruch_documentation_download.json +49 -0
- data/spec/fixtures/solr_documents/bbox-spans-180.json +20 -0
- data/spec/fixtures/solr_documents/cornell_html_metadata.json +42 -0
- data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +38 -0
- data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +40 -0
- data/spec/fixtures/solr_documents/esri-feature-layer.json +46 -0
- data/spec/fixtures/solr_documents/esri-image-map-layer.json +42 -0
- data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +22 -0
- data/spec/fixtures/solr_documents/esri-wms-layer.json +33 -0
- data/spec/fixtures/solr_documents/harvard_raster.json +44 -0
- data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +30 -0
- data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +37 -0
- data/spec/fixtures/solr_documents/index-map-polygon.json +37 -0
- data/spec/fixtures/solr_documents/index-map-stanford.json +37 -0
- data/spec/fixtures/solr_documents/index_map_point.json +27 -0
- data/spec/fixtures/solr_documents/metadata_no_dct_provenance_s.json +30 -0
- data/spec/fixtures/solr_documents/metadata_no_layer_geom_type_s.json +17 -0
- data/spec/fixtures/solr_documents/metadata_no_solr_geom.json +23 -0
- data/spec/fixtures/solr_documents/no_spatial.json +21 -0
- data/spec/fixtures/solr_documents/oembed.json +24 -0
- data/spec/fixtures/solr_documents/princeton-child1.json +30 -0
- data/spec/fixtures/solr_documents/princeton-child2.json +30 -0
- data/spec/fixtures/solr_documents/princeton-child3.json +30 -0
- data/spec/fixtures/solr_documents/princeton-child4.json +30 -0
- data/spec/fixtures/solr_documents/princeton-parent.json +25 -0
- data/spec/fixtures/solr_documents/public_direct_download.json +34 -0
- data/spec/fixtures/solr_documents/public_iiif_princeton.json +36 -0
- data/spec/fixtures/solr_documents/public_polygon_mit.json +27 -0
- data/spec/fixtures/solr_documents/restricted-line.json +37 -0
- data/spec/fixtures/solr_documents/umn_metro_result1.json +41 -0
- data/spec/fixtures/solr_documents/umn_state_result1.json +38 -0
- data/spec/fixtures/solr_documents/umn_state_result2.json +38 -0
- data/spec/fixtures/solr_documents/uva_slug_colon.json +25 -0
- data/spec/helpers/arcgis_helper_spec.rb +14 -0
- data/spec/helpers/carto_helper_spec.rb +11 -0
- data/spec/helpers/geoblacklight_helper_spec.rb +329 -0
- data/spec/javascripts/geoblacklight_spec.js +21 -0
- data/spec/javascripts/metadata_download_button_spec.js +14 -0
- data/spec/javascripts/spec_helper.js +32 -0
- data/spec/javascripts/util_spec.js +12 -0
- data/spec/lib/geoblacklight/bounding_box_spec.rb +27 -0
- data/spec/lib/geoblacklight/controller_override_spec.rb +1 -0
- data/spec/lib/geoblacklight/document_presenter_spec.rb +61 -0
- data/spec/lib/geoblacklight/download/geojson_download_spec.rb +19 -0
- data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +20 -0
- data/spec/lib/geoblacklight/download/hgl_download_spec.rb +60 -0
- data/spec/lib/geoblacklight/download/kmz_download_spec.rb +20 -0
- data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +19 -0
- data/spec/lib/geoblacklight/download_spec.rb +177 -0
- data/spec/lib/geoblacklight/geoblacklight_helper_behavior_spec.rb +30 -0
- data/spec/lib/geoblacklight/item_viewer_spec.rb +63 -0
- data/spec/lib/geoblacklight/metadata/base_spec.rb +157 -0
- data/spec/lib/geoblacklight/metadata/html_spec.rb +18 -0
- data/spec/lib/geoblacklight/metadata_spec.rb +42 -0
- data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +35 -0
- data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +23 -0
- data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +23 -0
- data/spec/lib/geoblacklight/metadata_transformer_spec.rb +69 -0
- data/spec/lib/geoblacklight/reference_spec.rb +64 -0
- data/spec/lib/geoblacklight/references_spec.rb +216 -0
- data/spec/lib/geoblacklight/relation/ancestors_spec.rb +32 -0
- data/spec/lib/geoblacklight/relation/descendants_spec.rb +32 -0
- data/spec/lib/geoblacklight/relation/relation_response_spec.rb +43 -0
- data/spec/lib/geoblacklight/view_helper_override_spec.rb +37 -0
- data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +50 -0
- data/spec/lib/geoblacklight/wms_layer_spec.rb +99 -0
- data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +61 -0
- data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +40 -0
- data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +16 -0
- data/spec/models/concerns/geoblacklight/solr_document_spec.rb +251 -0
- data/spec/models/concerns/geoblacklight/spatial_search_behavior_spec.rb +84 -0
- data/spec/routing/catalog_routing_spec.rb +8 -0
- data/spec/spec_helper.rb +79 -0
- data/spec/support/backport_test_helpers.rb +45 -0
- data/spec/support/features.rb +5 -0
- data/spec/support/features/session_helpers.rb +20 -0
- data/spec/teaspoon_env.rb +213 -0
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +49 -0
- data/spec/test_app_templates/metadata/fgdc.html +129 -0
- data/spec/test_app_templates/metadata/fgdc.xml +145 -0
- data/spec/test_app_templates/metadata/iso.html +275 -0
- data/spec/test_app_templates/metadata/iso.xml +511 -0
- data/spec/test_app_templates/solr_documents +1 -0
- data/spec/views/catalog/_document_split.html.erb_spec.rb +5 -0
- data/spec/views/catalog/_index_split.html.erb_spec.rb +5 -0
- data/spec/views/catalog/_results_pagination.html.erb_spec.rb +9 -0
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +41 -0
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +39 -0
- data/template.rb +19 -0
- data/vendor/assets/images/layers-2x.png +0 -0
- data/vendor/assets/images/layers.png +0 -0
- data/vendor/assets/images/marker-icon-2x.png +0 -0
- data/vendor/assets/images/marker-icon.png +0 -0
- data/vendor/assets/images/marker-shadow.png +0 -0
- data/vendor/assets/javascripts/esri-leaflet.js +5 -0
- data/vendor/assets/javascripts/esri-leaflet.js.map +1 -0
- data/vendor/assets/javascripts/leaflet-iiif.js +302 -0
- data/vendor/assets/javascripts/leaflet-src.js.map +1 -0
- data/vendor/assets/javascripts/leaflet.js.erb +13922 -0
- data/vendor/assets/javascripts/native.history.js +1 -0
- data/vendor/assets/javascripts/readmore.js +618 -0
- data/vendor/assets/javascripts/readmore.js.map +1 -0
- data/vendor/assets/stylesheets/leaflet-label.css +54 -0
- data/vendor/assets/stylesheets/leaflet.css +635 -0
- 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,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,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
|
data/package.json
ADDED
|
@@ -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
|
+
|