From f9bad485b102275785ef1845949760556971ed59 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Fri, 29 Mar 2024 12:54:36 -0700 Subject: [PATCH 01/18] Update to GeoBlacklight v4.3 --- Gemfile | 2 +- Gemfile.lock | 28 +- app/assets/stylesheets/geoblacklight.scss | 1 - app/controllers/application_controller.rb | 7 + app/controllers/catalog_controller.rb | 235 ++-- .../earthworks_geoblacklight_helper.rb | 21 - .../concerns/featured_content_behavior.rb | 43 - app/models/concerns/status_extension.rb | 2 +- app/models/concerns/wms_rewrite_concern.rb | 10 +- app/models/search_builder.rb | 20 +- app/models/solr_document.rb | 13 +- app/views/catalog/_home_text.html.erb | 8 +- app/views/layouts/blacklight/base.html.erb | 2 +- config/locales/geoblacklight.en.yml | 4 +- config/settings.yml | 365 ++++-- config/solr_configs/schema.xml | 120 +- config/solr_configs/solrconfig.xml | 54 +- package-lock.json | 1059 +++++++++++++++++ package.json | 6 + spec/factories/layer.rb | 4 +- spec/features/bookmarks_spec.rb | 11 - spec/features/canonical_urls_spec.rb | 2 +- .../features/custom_featured_searches_spec.rb | 9 - spec/features/facets_spec.rb | 12 - spec/features/page_title_spec.rb | 2 +- spec/features/record_spec.rb | 11 - .../solr_documents/actual-papermap1.json | 46 +- .../solr_documents/actual-point1.json | 39 +- .../solr_documents/actual-polygon1.json | 41 +- .../solr_documents/actual-raster1.json | 80 +- spec/fixtures/solr_documents/collection.json | 44 +- .../solr_documents/harvard-unavailable.json | 47 +- .../solr_documents/harvard_raster.json | 50 +- .../solr_documents/part_of_collection.json | 50 +- .../solr_documents/public-stanford.json | 67 +- .../solr_documents/public_iiif_princeton.json | 55 +- .../solr_documents/public_polygon_mit.json | 45 +- .../solr_documents/restricted-line.json | 73 +- .../solr_documents/stanford-dy750qs3024.json | 35 +- .../solr_documents/stanford-paper-map.json | 40 +- .../solr_documents/stanford-ts545zc6250.json | 53 +- .../solr_documents/stanford_index_map.json | 53 +- .../solr_documents/stanford_odbl.json | 69 +- .../external-data/author_search_spec.rb | 13 - .../external-data/geo_search_spec.rb | 9 - spec/lib/earthworks/harvester_spec.rb | 4 +- .../concerns/geomonitor_concern_spec.rb | 8 +- .../concerns/wms_rewrite_concern_spec.rb | 30 +- spec/models/search_builder_spec.rb | 72 -- 49 files changed, 2058 insertions(+), 1016 deletions(-) delete mode 100644 app/models/concerns/featured_content_behavior.rb create mode 100644 package-lock.json create mode 100644 package.json delete mode 100644 spec/features/bookmarks_spec.rb delete mode 100644 spec/features/custom_featured_searches_spec.rb delete mode 100644 spec/features/facets_spec.rb delete mode 100644 spec/features/record_spec.rb delete mode 100644 spec/integration/external-data/author_search_spec.rb delete mode 100644 spec/integration/external-data/geo_search_spec.rb delete mode 100644 spec/models/search_builder_spec.rb diff --git a/Gemfile b/Gemfile index 1cbc9af3..cefbf3bf 100644 --- a/Gemfile +++ b/Gemfile @@ -71,7 +71,7 @@ end gem 'blacklight', '~> 7.33' gem 'rsolr' # required for Blacklight -gem "geoblacklight", '~> 3.8' +gem "geoblacklight", '~> 4.3.0' gem 'faraday', '~> 2.0' gem "devise" gem "devise-guests", ">= 0.3.3" diff --git a/Gemfile.lock b/Gemfile.lock index db1e6051..37a29204 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,6 +94,7 @@ GEM bcrypt (3.1.20) bcrypt_pbkdf (1.1.1-arm64-darwin) bcrypt_pbkdf (1.1.1-x86_64-darwin) + bigdecimal (3.1.8) bindex (0.8.1) blacklight (7.37.0) deprecation @@ -191,7 +192,6 @@ GEM ed25519 docile (1.4.0) domain_name (0.6.20240107) - ed25519 (1.3.0) drb (2.2.1) dry-cli (1.0.0) erubi (1.13.0) @@ -224,19 +224,20 @@ GEM rsolr sanitize thor - geoblacklight (3.8.0) - blacklight (~> 7.8) + geoblacklight (4.3.0) + blacklight (~> 7.0) coderay config deprecation - faraday (>= 1.0) - geo_combine (~> 0.8) + faraday (~> 2.0) + geo_combine (~> 0.9) handlebars_assets mime-types - rails (>= 5.2.4, < 7.1) + rails (>= 6.1, < 7.2) rgeo-geojson + sprockets-rails (~> 3.0) + vite_rails (~> 3.0) git (2.1.1) - activesupport (>= 5.0) addressable (~> 2.8) process_executer (~> 1.1) rchardet (~> 1.8) @@ -352,6 +353,10 @@ GEM rack (>= 1.0, < 4) rack-mini-profiler (2.3.4) rack (>= 1.2.0) + rack-proxy (0.7.7) + rack + rack-session (2.0.0) + rack (>= 3.0.0) rack-test (2.1.0) rack (>= 1.3) rackup (2.1.0) @@ -523,6 +528,13 @@ GEM activesupport (>= 5.2.0, < 8.0) concurrent-ruby (~> 1.0) method_source (~> 1.0) + vite_rails (3.0.17) + railties (>= 5.1, < 8) + vite_ruby (~> 3.0, >= 3.2.2) + vite_ruby (3.5.0) + dry-cli (>= 0.7, < 2) + rack-proxy (~> 0.6, >= 0.6.1) + zeitwerk (~> 2.2) warden (1.2.9) rack (>= 2.0.9) web-console (4.2.1) @@ -569,7 +581,7 @@ DEPENDENCIES faraday (~> 2.0) geo_combine (>= 0.9) geo_monitor (~> 0.7)! - geoblacklight (~> 3.8) + geoblacklight (~> 4.3.0) honeybadger http jbuilder (~> 2.5) diff --git a/app/assets/stylesheets/geoblacklight.scss b/app/assets/stylesheets/geoblacklight.scss index 7537ccf2..6df19998 100644 --- a/app/assets/stylesheets/geoblacklight.scss +++ b/app/assets/stylesheets/geoblacklight.scss @@ -1,2 +1 @@ @import 'geoblacklight/geoblacklight'; -@import 'leaflet-label'; diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8204ca4c..d6bee864 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -4,6 +4,8 @@ class ApplicationController < ActionController::Base # Please be sure to impelement current_user and user_session. Blacklight depends on # these methods in order to perform user specific actions. + before_action :allow_geoblacklight_params + layout :determine_layout if respond_to? :layout # Prevent CSRF attacks by raising an exception. @@ -14,4 +16,9 @@ class ApplicationController < ActionController::Base def after_sign_out_path_for(_resource_or_scope) '/Shibboleth.sso/Logout' end + + def allow_geoblacklight_params + # Blacklight::Parameters will pass these to params.permit + blacklight_config.search_state_fields.append(Settings.GBL_PARAMS) + end end diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index 013643fa..29cadf73 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -1,6 +1,7 @@ require 'blacklight/catalog' require 'legacy_id_map' +# rubocop:disable Metrics/ClassLength class CatalogController < ApplicationController include BlacklightRangeLimit::ControllerOverride include Blacklight::Catalog @@ -8,6 +9,11 @@ class CatalogController < ApplicationController rescue_from Blacklight::Exceptions::RecordNotFound, with: :redirect_from_legacy_id configure_blacklight do |config| + # Ensures that JSON representations of Solr Documents can be retrieved using + # the path /catalog/:id/raw + # Please see https://github.com/projectblacklight/blacklight/pull/2006/ + config.raw_endpoint.enabled = true + ## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params config.default_solr_params = { :start => 0, @@ -20,21 +26,23 @@ class CatalogController < ApplicationController # parameters included in the Blacklight-jetty document requestHandler. config.default_document_solr_params = { qt: 'document', - q: '{!raw f=layer_slug_s v=$id}' + q: "{!raw f=#{Settings.FIELDS.ID} v=$id}" } + # GeoBlacklight Defaults + # * Adds the "map" split view for catalog#index + config.view.split(partials: ['index']) + config.view.delete_field('list') + # solr field configuration for search results/index views # config.index.show_link = 'title_display' # config.index.record_display_type = 'format' - config.index.title_field = 'dc_title_s' - - config.raw_endpoint.enabled = true + config.index.title_field = Settings.FIELDS.TITLE config.crawler_detector = ->(req) { req.env['HTTP_USER_AGENT']&.include?('bot') } # solr field configuration for document/show views - config.show.display_type_field = 'format' config.show.partials << 'rights_metadata' config.show.partials << 'show_message' @@ -47,10 +55,6 @@ class CatalogController < ApplicationController # Configure the index document presenter. config.index.document_presenter_class = Geoblacklight::DocumentPresenter - # Custom GeoBlacklight fields which currently map to GeoBlacklight-Schema - # v0.3.2 - config.wxs_identifier_field = 'layer_id_s' - # solr fields that will be treated as facets by the blacklight application # The ordering of the field names is the order of the display # @@ -77,7 +81,6 @@ class CatalogController < ApplicationController # config.add_facet_field 'lc_1letter_facet', :label => 'Call Number' # config.add_facet_field 'subject_geo_facet', :label => 'Region' # config.add_facet_field 'solr_bbox', :fq => "solr_bbox:IsWithin(-88,26,-79,36)", :label => 'Spatial' - # config.add_facet_field 'example_pivot_field', :label => 'Pivot Field', :pivot => ['format', 'language_facet'] # config.add_facet_field 'example_query_facet_field', :label => 'Publish Date', :query => { @@ -86,108 +89,137 @@ class CatalogController < ApplicationController # :years_25 => { :label => 'within 25 Years', :fq => "pub_date:[#{Time.now.year - 25 } TO *]" } # } - config.add_facet_field Settings.FIELDS.PROVENANCE, label: 'Institution', limit: 8, partial: 'icon_facet' - config.add_facet_field Settings.FIELDS.CREATOR, label: 'Author', limit: 6 - config.add_facet_field Settings.FIELDS.PUBLISHER, label: 'Publisher', limit: 6 - config.add_facet_field Settings.FIELDS.SUBJECT, label: 'Subject', limit: 6 - config.add_facet_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place', limit: 6 - # config.add_facet_field 'dct_isPartOf_sm', :label => 'Collection', :limit => 6 - config.add_facet_field Settings.FIELDS.SOURCE, show: false, label: 'Collection' - - config.add_facet_field 'solr_year_i', label: 'Year', limit: 10, range: { - # :num_segments => 6, - assumed_boundaries: [0o001, 2016] - # :segments => true + # DEFAULT FACETS + # to add additional facets, use the keys defined in the settings.yml file + config.add_facet_field Settings.FIELDS.PROVIDER, label: 'Provider', limit: 8, + item_component: Geoblacklight::IconFacetItemComponent + config.add_facet_field Settings.FIELDS.CREATOR, label: 'Creator', limit: 8 + config.add_facet_field Settings.FIELDS.PUBLISHER, label: 'Publisher', limit: 8 + config.add_facet_field Settings.FIELDS.SUBJECT, label: 'Subject', limit: 8 + config.add_facet_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place', limit: 8 + config.add_facet_field Settings.FIELDS.INDEX_YEAR, label: 'Year', limit: 10, range: { + assumed_boundaries: [1100, Time.zone.now.year + 2] } - - # Needed as a fallback for dc_rights_s facet selections that were previously linked, does not show up in UI - config.add_facet_field 'dc_rights_s', label: 'Rights', partial: 'icon_facet', show: false - - config.add_facet_field 'access', label: 'Access', - query: { - restricted: { - label: 'Restricted', fq: 'dc_rights_s:Restricted' - }, - public: { - label: 'Public', fq: 'dc_rights_s:Public' - }, - available: { - label: 'Available', - fq: "(layer_availability_score_f:[#{Settings.GEOMONITOR_TOLERANCE} TO 1])" - }, - unavailable: { - label: 'Unavailable', - fq: "layer_availability_score_f:[0 TO #{Settings.GEOMONITOR_TOLERANCE}]" - } - }, - partial: 'icon_facet' - config.add_facet_field 'layer_geom_type_s', label: 'Data type', limit: 8, partial: 'icon_facet' - config.add_facet_field 'dc_format_s', label: 'Format', limit: 3 + config.add_facet_field Settings.FIELDS.ACCESS_RIGHTS, label: 'Access', limit: 8, + item_component: Geoblacklight::IconFacetItemComponent + config.add_facet_field 'availability', + label: 'Availability', + query: { + available: { + label: 'Available', + fq: "(layer_availability_score_f:[#{Settings.GEOMONITOR_TOLERANCE} TO 1])" + }, + unavailable: { + label: 'Unavailable', + fq: "layer_availability_score_f:[0 TO #{Settings.GEOMONITOR_TOLERANCE}]" + } + }, + item_component: Geoblacklight::IconFacetItemComponent + config.add_facet_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', limit: 8 + config.add_facet_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', limit: 8 + config.add_facet_field Settings.FIELDS.FORMAT, label: 'Format', limit: 8 + + # GEOBLACKLIGHT APPLICATION FACETS + + # Map-Based "Search Here" Feature + # item_presenter - Defines how the facet appears in the GBL UI + # filter_query_builder - Defines the query generated for Solr + # filter_class - Defines how to add/remove facet from query + # label - Defines the label used in contstraints container + config.add_facet_field Settings.FIELDS.GEOMETRY, + item_presenter: Geoblacklight::BboxItemPresenter, + filter_class: Geoblacklight::BboxFilterField, + filter_query_builder: Geoblacklight::BboxFilterQuery, + within_boost: Settings.BBOX_WITHIN_BOOST, + overlap_boost: Settings.OVERLAP_RATIO_BOOST, + overlap_field: Settings.FIELDS.OVERLAP_FIELD, + label: 'Bounding Box' + + # Item Relationship Facets + # * Not displayed to end user (show: false) + # * Must be present for relationship "Browse all 4 records" links to work + # * Label value becomes the search contraint filter name + config.add_facet_field Settings.FIELDS.MEMBER_OF, label: 'Member Of', show: false + config.add_facet_field Settings.FIELDS.IS_PART_OF, label: 'Is Part Of', show: false + config.add_facet_field Settings.FIELDS.RELATION, label: 'Related', show: false + config.add_facet_field Settings.FIELDS.REPLACES, label: 'Replaces', show: false + config.add_facet_field Settings.FIELDS.IS_REPLACED_BY, label: 'Is Replaced By', show: false + config.add_facet_field Settings.FIELDS.SOURCE, label: 'Source', show: false + config.add_facet_field Settings.FIELDS.VERSION, label: 'Is Version Of', show: false # Have BL send all facet field names to Solr, which has been the default # previously. Simply remove these lines if you'd rather use Solr request # handler defaults, or have no facets. config.add_facet_fields_to_solr_request! + # SEARCH RESULTS FIELDS # solr fields to be displayed in the index (search results) view # The ordering of the field names is the order of the display - # config.add_index_field 'title_display', :label => 'Title:' - # config.add_index_field 'title_vern_display', :label => 'Title:' - # config.add_index_field 'author_display', :label => 'Author:' - # config.add_index_field 'author_vern_display', :label => 'Author:' - # config.add_index_field 'format', :label => 'Format:' - # config.add_index_field 'language_facet', :label => 'Language:' - # config.add_index_field 'published_display', :label => 'Published:' - # config.add_index_field 'published_vern_display', :label => 'Published:' - # config.add_index_field 'lc_callnum_display', :label => 'Call number:' - - # config.add_index_field 'dc_title_t', :label => 'Display Name:' - # config.add_index_field 'dct_provenance_s', :label => 'Institution:' - # config.add_index_field 'dc_rights_s', :label => 'Access:' - # # config.add_index_field 'Area', :label => 'Area:' - # config.add_index_field 'dc_subject_sm', :label => 'Keywords:' - config.add_index_field Settings.FIELDS.YEAR + config.add_index_field Settings.FIELDS.INDEX_YEAR config.add_index_field Settings.FIELDS.CREATOR config.add_index_field Settings.FIELDS.DESCRIPTION, helper_method: :snippit config.add_index_field Settings.FIELDS.PUBLISHER + # ITEM VIEW FIELDS # solr fields to be displayed in the show (single result) view # The ordering of the field names is the order of the display # item_prop: [String] property given to span with Schema.org item property # link_to_search: [Boolean] that can be passed to link to a facet search # helper_method: [Symbol] method that can be used to render the value - config.add_show_field Settings.FIELDS.CREATOR, label: 'Author(s)', itemprop: 'author', link_to_facet: true + config.add_show_field Settings.FIELDS.CREATOR, label: 'Creator', itemprop: 'creator', link_to_facet: true config.add_show_field Settings.FIELDS.DESCRIPTION, label: 'Description', itemprop: 'description', helper_method: :render_value_as_truncate_abstract - config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher' - config.add_show_field Settings.FIELDS.PART_OF, label: 'Collection', itemprop: 'isPartOf' - config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place(s)', itemprop: 'spatial', link_to_facet: true - config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject(s)', itemprop: 'keywords', link_to_facet: true - config.add_show_field Settings.FIELDS.TEMPORAL, label: 'Year', itemprop: 'temporal' - config.add_show_field Settings.FIELDS.PROVENANCE, label: 'Held by', link_to_facet: true + config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher', link_to_facet: true + config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place(s)', itemprop: 'spatial', + link_to_facet: true + config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject', itemprop: 'keywords', link_to_facet: true + config.add_show_field Settings.FIELDS.DATE_ISSUED, label: 'Date Issued', itemprop: 'issued' + config.add_show_field Settings.FIELDS.TEMPORAL_COVERAGE, label: 'Temporal Coverage', itemprop: 'temporal' + config.add_show_field Settings.FIELDS.PROVIDER, label: 'Provider', link_to_facet: true + config.add_show_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', itemprop: 'class', + link_to_facet: true + config.add_show_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', itemprop: 'type', link_to_facet: true + config.add_show_field Settings.FIELDS.RIGHTS, label: 'Rights', itemprop: 'rights' + config.add_show_field Settings.FIELDS.RIGHTS_HOLDER, label: 'Rights Holder', itemprop: 'rights_holder' + config.add_show_field Settings.FIELDS.LICENSE, label: 'License', itemprop: 'license' + config.add_show_field Settings.FIELDS.ACCESS_RIGHTS, label: 'Access Rights', itemprop: 'access_rights' + config.add_show_field Settings.FIELDS.FORMAT, label: 'Format', itemprop: 'format', link_to_facet: true config.add_show_field( - Settings.FIELDS.REFERENCES, + Settings.FIELDS.IDENTIFIER, label: 'More details at', accessor: [:external_url], if: proc { |_, _, doc| doc.external_url }, helper_method: :render_references_url ) - # config.add_show_field 'dc_title_t', :label => 'Title:' - # config.add_show_field 'title_display', :label => 'Title:' - # config.add_show_field 'title_vern_display', :label => 'Title:' - # config.add_show_field 'subtitle_display', :label => 'Subtitle:' - # config.add_show_field 'subtitle_vern_display', :label => 'Subtitle:' - # config.add_show_field 'author_display', :label => 'Author:' - # config.add_show_field 'author_vern_display', :label => 'Author:' - # config.add_show_field 'format', :label => 'Format:' - # config.add_show_field 'url_fulltext_display', :label => 'URL:' - # config.add_show_field 'url_suppl_display', :label => 'More Information:' - # config.add_show_field 'language_facet', :label => 'Language:' - # config.add_show_field 'published_display', :label => 'Published:' - # config.add_show_field 'published_vern_display', :label => 'Published:' - # config.add_show_field 'lc_callnum_display', :label => 'Call number:' - # config.add_show_field 'isbn_t', :label => 'ISBN:' + # ADDITIONAL FIELDS + # The following fields are not user friendly and are not set to appear on the item show page. + # They contain non-literal values, codes, URIs, or are otherwise designed to power features in the interface. + # These values might need a translations to be readable by users. + + # config.add_show_field Settings.FIELDS.LANGUAGE, label: 'Language', itemprop: 'language' + # config.add_show_field Settings.FIELDS.KEYWORD, label: 'Keyword(s)', itemprop: 'keyword' + + # config.add_show_field Settings.FIELDS.INDEX_YEAR, label: 'Year', itemprop: 'year' + # config.add_show_field Settings.FIELDS.DATE_RANGE, label: 'Date Range', itemprop: 'date_range' + + # config.add_show_field Settings.FIELDS.CENTROID, label: 'Centroid', itemprop: 'centroid' + # config.add_show_field Settings.FIELDS.OVERLAP_FIELD, label: 'Overlap BBox', itemprop: 'overlap_field' + + # config.add_show_field Settings.FIELDS.RELATION, label: 'Relation', itemprop: 'relation' + # config.add_show_field Settings.FIELDS.MEMBER_OF, label: 'Member Of', itemprop: 'member_of' + # config.add_show_field Settings.FIELDS.IS_PART_OF, label: 'Is Part Of', itemprop: 'is_part_of' + # config.add_show_field Settings.FIELDS.VERSION, label: 'Version', itemprop: 'version' + # config.add_show_field Settings.FIELDS.REPLACES, label: 'Replaces', itemprop: 'replaces' + # config.add_show_field Settings.FIELDS.IS_REPLACED_BY, label: 'Is Replaced By', itemprop: 'is_replaced_by' + + # config.add_show_field Settings.FIELDS.WXS_IDENTIFIER, label: 'Web Service Layer', itemprop: 'wxs_identifier' + # config.add_show_field Settings.FIELDS.ID, label: 'ID', itemprop: 'id' + # config.add_show_field Settings.FIELDS.IDENTIFIER, label: 'Identifier', itemprop: 'identifier' + + # config.add_show_field Settings.FIELDS.MODIFIED, label: 'Date Modified', itemprop: 'modified' + # config.add_show_field Settings.FIELDS.METADATA_VERSION, label: 'Metadata Version', itemprop: 'metadata_version' + # config.add_show_field Settings.FIELDS.SUPPRESSED, label: 'Suppressed', itemprop: 'suppresed' # "fielded" search configuration. Used by pulldown among other places. # For supported keys in hash, see rdoc for Blacklight::SearchFields @@ -208,8 +240,8 @@ class CatalogController < ApplicationController # since we aren't specifying it otherwise. # config.add_search_field 'text', :label => 'All Fields' - # config.add_search_field 'dc_title_ti', :label => 'Title' - # config.add_search_field 'dc_description_ti', :label => 'Description' + # config.add_search_field 'dct_title_ti', :label => 'Title' + # config.add_search_field 'dct_description_ti', :label => 'Description' # Now we see how to over-ride Solr request handler defaults, in this # case for a BL "search field", which is really a dismax aggregate @@ -261,11 +293,10 @@ class CatalogController < ApplicationController # label in pulldown is followed by the name of the SOLR field to sort by and # whether the sort is ascending or descending (it must be asc or desc # except in the relevancy case). - config.add_sort_field 'score desc, dc_title_sort asc', label: 'relevance' - config.add_sort_field 'solr_year_i desc, dc_title_sort asc', label: 'year' - config.add_sort_field 'dc_publisher_sort asc, dc_title_sort asc', label: 'publisher' - config.add_sort_field 'dc_title_sort asc', label: 'title' - config.add_sort_field 'layer_modified_dt asc', label: 'Layer modified date (for API use only)', if: false + config.add_sort_field 'score desc, dct_title_sort asc', label: 'relevance' + config.add_sort_field "#{Settings.FIELDS.INDEX_YEAR} desc, dct_title_sort asc", label: 'year' + config.add_sort_field 'dct_title_sort asc', label: 'title' + config.add_sort_field "#{Settings.FIELDS.MODIFIED} asc", label: 'Layer modified date (for API use only)', if: false # If there are more than this many search results, no spelling ("did you # mean") suggestion is offered. @@ -280,17 +311,15 @@ class CatalogController < ApplicationController config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params) # Custom tools for GeoBlacklight - # rubocop:disable Layout/LineLength - config.add_show_tools_partial :web_services, if: proc { |_context, _config, options| - options[:document] && (Settings.WEBSERVICES_SHOWN & options[:document].references.refs.map { |r| r.type.to_s }).any? - } config.add_show_tools_partial :metadata, if: proc { |_context, _config, options| options[:document] && (Settings.METADATA_SHOWN & options[:document].references.refs.map { |r| r.type.to_s }).any? } config.add_show_tools_partial :arcgis, partial: 'arcgis', if: proc { |_context, _config, options| options[:document] && options[:document].arcgis_urls.present? } - # rubocop:enable Layout/LineLength + config.add_show_tools_partial :data_dictionary, partial: 'data_dictionary', if: proc { |_context, _config, options| + options[:document] && options[:document].data_dictionary_download.present? + } config.show.document_actions.delete(:sms) # Configure basemap provider @@ -301,6 +330,17 @@ class CatalogController < ApplicationController config.autocomplete_path = 'suggest' end + def web_services + @response, @documents = action_documents + + respond_to do |format| + format.html do + return render layout: false if request.xhr? + # Otherwise draw the full page + end + end + end + ## # Overrides default Blacklight method to return true for an empty q value # @return [Boolean] @@ -316,3 +356,4 @@ def redirect_from_legacy_id end end end +# rubocop:enable Metrics/ClassLength diff --git a/app/helpers/earthworks_geoblacklight_helper.rb b/app/helpers/earthworks_geoblacklight_helper.rb index c637c05a..54cadbc6 100644 --- a/app/helpers/earthworks_geoblacklight_helper.rb +++ b/app/helpers/earthworks_geoblacklight_helper.rb @@ -5,25 +5,4 @@ def document_available? (@document.public? && @document.available?) || (@document.same_institution? && user_signed_in? && @document.available?) end - - ## - # Override from GeoBlacklight to include custom `featured` param - def has_search_parameters? - params[:featured].present? || super - end - - ## - # Override from GeoBlacklight to include custom `featured` param - def render_constraints_filters(localized_params = params) - content = super(localized_params) - localized_params = localized_params.to_unsafe_h unless localized_params.is_a?(Hash) - - if localized_params[:featured] - value = localized_params[:featured].humanize.split.map(&:capitalize).join(' ') - path = search_action_path(remove_spatial_filter_group(:featured, localized_params)) - content << render_constraint_element('Featured', value, remove: path) - end - - content - end end diff --git a/app/models/concerns/featured_content_behavior.rb b/app/models/concerns/featured_content_behavior.rb deleted file mode 100644 index 40786b10..00000000 --- a/app/models/concerns/featured_content_behavior.rb +++ /dev/null @@ -1,43 +0,0 @@ -module FeaturedContentBehavior - extend ActiveSupport::Concern - - def add_featured_content(solr_params) - featured_content_params = send(:"#{blacklight_params[:featured]}_content_params") - featured_content_params.each do |param| - solr_params[:fq] ||= [] - solr_params[:fq] << param - end - - solr_params - rescue NoMethodError - solr_params - end - - private - - # rubocop:disable Layout/LineLength - def scanned_maps_content_params - [ - 'layer_geom_type_s:Image OR layer_geom_type_s:"Paper Map"' - ] - end - - def geospatial_data_content_params - [ - '-layer_geom_type_s:Image AND -layer_geom_type_s:"Paper Map" AND -layer_geom_type_s:Mixed AND -layer_geom_type_s:Table' - ] - end - - def census_data_content_params - [ - 'dc_title_ti:census OR dc_description_ti:census OR dc_publisher_ti:census OR dc_subject_tmi:census' - ] - end - - def california_data_content_params - [ - 'dc_title_ti:california OR dc_description_ti:california OR dc_publisher_ti:california OR dc_subject_tmi:california' - ] - end - # rubocop:enable Layout/LineLength -end diff --git a/app/models/concerns/status_extension.rb b/app/models/concerns/status_extension.rb index 2be8bcee..bab1e403 100644 --- a/app/models/concerns/status_extension.rb +++ b/app/models/concerns/status_extension.rb @@ -7,7 +7,7 @@ module StatusExtension def update_index data = [{ layer_availability_score_f: { set: layer.availability_score }, - layer_slug_s: layer.slug + id: layer.id }] Indexer.new.solr_update(data) end diff --git a/app/models/concerns/wms_rewrite_concern.rb b/app/models/concerns/wms_rewrite_concern.rb index c8308f6d..28b8b5f9 100644 --- a/app/models/concerns/wms_rewrite_concern.rb +++ b/app/models/concerns/wms_rewrite_concern.rb @@ -2,19 +2,11 @@ module WmsRewriteConcern extend Geoblacklight::SolrDocument def viewer_endpoint - if is_stanford_restricted? + if stanford? && restricted? # replace wms prefix with webauthed proxy super.gsub(%r{.+?(?=/geoserver)}, Settings.PROXY_URL) else super end end - - def is_stanford_restricted? - stanford? && restricted? - end - - def stanford? - fetch(:dct_provenance_s).casecmp('stanford').zero? - end end diff --git a/app/models/search_builder.rb b/app/models/search_builder.rb index c264bc0d..45f022a6 100644 --- a/app/models/search_builder.rb +++ b/app/models/search_builder.rb @@ -1,23 +1,5 @@ class SearchBuilder < Blacklight::SearchBuilder include Blacklight::Solr::SearchBuilderBehavior include BlacklightRangeLimit::RangeLimitBuilder - - include Geoblacklight::SpatialSearchBehavior - include ::FeaturedContentBehavior - - self.default_processor_chain += %i[add_featured_content] - - def add_spatial_params(solr_params) - if blacklight_params[:bbox] - solr_params[:bq] ||= [] - solr_params[:bq] = - ["#{Settings.GEOMETRY_FIELD}:\"IsWithin(#{envelope_bounds})\"^300"] - solr_params[:fq] ||= [] - solr_params[:fq] << - "#{Settings.GEOMETRY_FIELD}:\"Intersects(#{envelope_bounds})\"" - end - solr_params - rescue Geoblacklight::Exceptions::WrongBoundingBoxFormat - solr_params - end + include Geoblacklight::SuppressedRecordsSearchBehavior end diff --git a/app/models/solr_document.rb b/app/models/solr_document.rb index c3ea4118..505637e0 100644 --- a/app/models/solr_document.rb +++ b/app/models/solr_document.rb @@ -5,15 +5,10 @@ class SolrDocument include RightsMetadataConcern include WmsRewriteConcern - # self.unique_key = 'id' - self.unique_key = 'layer_slug_s' - - field_semantics[:author] = :dc_creator_sm - field_semantics[:title] = :dc_title_s - field_semantics[:year] = :dct_temporal_sm + alias stanford? same_institution? def institution - fetch(Settings.FIELDS.PROVENANCE) + fetch(Settings.FIELDS.PROVIDER, '') end def contact_email @@ -25,11 +20,11 @@ def department end def collection? - fetch(Settings.FIELDS.GEOM_TYPE, nil) == 'Collection' + fetch(Settings.FIELDS.RESOURCE_CLASS, []).include? 'Collections' end def mixed? - fetch(Settings.FIELDS.GEOM_TYPE, nil) == 'Mixed' + fetch(Settings.FIELDS.RESOURCE_CLASS, []) == 'Other' end # Email uses the semantic field mappings below to generate the body of an email. diff --git a/app/views/catalog/_home_text.html.erb b/app/views/catalog/_home_text.html.erb index 2adb81b2..04c808b6 100644 --- a/app/views/catalog/_home_text.html.erb +++ b/app/views/catalog/_home_text.html.erb @@ -16,7 +16,7 @@
- <%= link_to search_catalog_path(featured: 'geospatial_data', q: '') do %> + <%= link_to search_catalog_path(f: { gbl_resourceClass_sm: ['Datasets']}) do %> <%= image_tag 'geospatial_data.png', alt: '' %>

Geospatial data

<% end %> @@ -26,7 +26,7 @@
- <%= link_to search_catalog_path(featured: 'scanned_maps', q: '') do %> + <%= link_to search_catalog_path(f: { gbl_resourceClass_sm: ['Maps'] }) do %> <%= image_tag 'scanned_maps.png', alt: '' %>

Scanned maps

<% end %> @@ -36,7 +36,7 @@
- <%= link_to search_catalog_path(featured: 'census_data', q: '') do %> + <%= link_to search_catalog_path(f: { dct_subject_sm: ['Census']}) do %> <%= image_tag 'census_data.png', alt: '' %>

Census data

<% end %> @@ -46,7 +46,7 @@
- <%= link_to search_catalog_path(featured: 'california_data', q: '') do %> + <%= link_to search_catalog_path(f: { dct_spatial_sm: ['California'] }) do %> <%= image_tag 'california_data.png', alt: '' %>

California data

<% end %> diff --git a/app/views/layouts/blacklight/base.html.erb b/app/views/layouts/blacklight/base.html.erb index 21ad13ec..8ce85852 100644 --- a/app/views/layouts/blacklight/base.html.erb +++ b/app/views/layouts/blacklight/base.html.erb @@ -15,7 +15,7 @@ gtag('js', new Date()); const config = {}; - <% if Settings.analytics_debug %> + <% if Settings.ANALYTICS_DEBUG %> config.debug_mode = true <% end %> diff --git a/config/locales/geoblacklight.en.yml b/config/locales/geoblacklight.en.yml index a19b4106..f261a217 100644 --- a/config/locales/geoblacklight.en.yml +++ b/config/locales/geoblacklight.en.yml @@ -3,5 +3,5 @@ en: home: headline: 'Discover and download GIS data and maps' relations: - ancestor: Item belongs to a collection - descendant: Collection items + member_of_ancestors: 'Item belongs to a collection' + member_of_descendants: 'Collection items' diff --git a/config/settings.yml b/config/settings.yml index 1d2be9d6..16770d65 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -1,63 +1,98 @@ -BING_SITE_VERIFICATION: '4E61263975C6ABBF2ECE5A8CA5E592B7' - -THROTTLE_TRAFFIC: false - # ArcGIS Online Base URL -ARCGIS_BASE_URL: 'https://www.arcgis.com/home/webmap/viewer.html' +ARCGIS_BASE_URL: "https://www.arcgis.com/home/webmap/viewer.html" -EMAIL_TO: 'fake-email@example.com' +# DOWNLOAD_PATH is set in production but defaults to this tmp dir when not set +# DOWNLOAD_PATH: './tmp/cache/downloads' -#Main Solr geometry field used for spatial search and bounding box. Should be type 'rpt' -GEOMETRY_FIELD: 'solr_geom' +# Main Solr geometry field used for spatial search and bounding box. Should be type 'rpt' +GEOMETRY_FIELD: "solr_geom" -#Solr field mappings -FIELDS: - :FILE_FORMAT: 'dc_format_s' - :GEOMETRY: 'solr_geom' - :WXS_IDENTIFIER: 'layer_id_s' - :RIGHTS: 'dc_rights_s' - :PROVENANCE: 'dct_provenance_s' - :GEOM_TYPE: 'layer_geom_type_s' - :SPATIAL_COVERAGE: 'dct_spatial_sm' - :SUBJECT: 'dc_subject_sm' - :REFERENCES: 'dct_references_s' - :YEAR: 'solr_year_i' - :CREATOR: 'dc_creator_sm' - :DESCRIPTION: 'dc_description_s' - :PUBLISHER: 'dc_publisher_s' - :PART_OF: 'dct_isPartOf_sm' - :TEMPORAL: 'dct_temporal_sm' - :TITLE: 'dc_title_s' - :SOURCE: 'dc_source_sm' - :ISSUED: 'dct_issued_s' +# The bq boost value for spatial search matches within a bounding box +BBOX_WITHIN_BOOST: "10" -GEOMONITOR_TOLERANCE: 0.2 -analytics_debug: true -GOOGLE_SITE_VERIFICATION: '654321sitever' -HOSTNAME: 'HOST' -HOST_URL: 'http://www.example.com' -INSTITUTION: 'Stanford' +# The bf boost value for overlap ratio +OVERLAP_RATIO_BOOST: "2" -# Metadata shown in tool panel -METADATA_SHOWN: - - 'fgdc' - - 'iso19139' - - 'mods' - -NEWRELIC_APP_NAME: 'should be specific to stage and prod' -NEWRELIC_LICENSE_KEY: 'this is private' -NEWRELIC_ENABLED: false +# Homepage Map Geometry +# Leave null to default to entire world +# Add a stringified GeoJSON object to scope initial render (example from UMass) +HOMEPAGE_MAP_GEOM: null +# HOMEPAGE_MAP_GEOM: '{"type":"Polygon","coordinates":[[[-73.58,42.93],[-73.58,41.20],[-69.90,41.20],[-69.90,42.93]]]}' -PROXY_URL: 'http://www.example.com/restricted' +# Non-search-field GeoBlacklight application permitted params +GBL_PARAMS: + - :bbox + - :email + - :file + - :format + - :id + - :logo + - :provider + - :type + - :BBOX + - :HEIGHT + - :LAYERS + - :QUERY_LAYERS + - :URL + - :WIDTH + - :X + - :Y -REDIS_URL: 'redis://localhost:6379/' - -RESTRICTED_URL: 'http://www.example-services.com' +# Solr field mappings +FIELDS: + :ACCESS_RIGHTS: "dct_accessRights_s" + :ALTERNATIVE_TITLE: "dct_alternative_sm" + :CENTROID: "dcat_centroid" + :CREATOR: "dct_creator_sm" + :DATE_ISSUED: "dct_issued_s" + :DATE_RANGE: "gbl_dateRange_drsim" + :DESCRIPTION: "dct_description_sm" + :DISPLAY_NOTE: "gbl_displayNote_sm" + :FORMAT: "dct_format_s" + :FILE_SIZE: "gbl_fileSize_s" + :GEOREFERENCED: "gbl_georeferenced_b" + :ID: "id" + :IDENTIFIER: "dct_identifier_sm" + :INDEX_YEAR: "gbl_indexYear_im" + :IS_PART_OF: "dct_isPartOf_sm" + :IS_REPLACED_BY: "dct_isReplacedBy_sm" + :THEME: "dcat_theme_sm" + :KEYWORD: "dcat_keyword_sm" + :LANGUAGE: "dct_language_sm" + :LAYER_MODIFIED: "gbl_mdModified_dt" + :LICENSE: "dct_license_sm" + :MEMBER_OF: "pcdm_memberOf_sm" + :METADATA_VERSION: "gbl_mdVersion_s" + :MODIFIED: "gbl_mdModified_dt" + :OVERLAP_FIELD: "solr_bboxtype" + :PUBLISHER: "dct_publisher_sm" + :PROVIDER: "schema_provider_s" + :REFERENCES: "dct_references_s" + :RELATION: "dct_relation_sm" + :REPLACES: "dct_replaces_sm" + :RESOURCE_CLASS: "gbl_resourceClass_sm" + :RESOURCE_TYPE: "gbl_resourceType_sm" + :RIGHTS: "dct_rights_sm" + :RIGHTS_HOLDER: "dct_rightsHolder_sm" + :SOURCE: "dct_source_sm" + :SPATIAL_COVERAGE: "dct_spatial_sm" + :GEOMETRY: "locn_geometry" + :SUBJECT: "dct_subject_sm" + :SUPPRESSED: "gbl_suppressed_b" + :TEMPORAL_COVERAGE: "dct_temporal_sm" + :TITLE: "dct_title_s" + :VERSION: "dct_isVersionOf_sm" + :WXS_IDENTIFIER: "gbl_wxsIdentifier_s" -SOLR_COMMIT_WITHIN: 5000 +# Institution deployed at +INSTITUTION: "Stanford" -# DOWNLOAD_PATH is set in production but defaults to this tmp dir when not set -# DOWNLOAD_PATH: './tmp/cache/downloads' +# Metadata shown in tool panel +METADATA_SHOWN: + - "mods" + - "fgdc" + - "iso19139" + - "html" # (For external Download) timeout and open_timeout parameters for Faraday TIMEOUT_DOWNLOAD: 16 @@ -70,52 +105,184 @@ USE_GEOM_FOR_RELATIONS_ICON: true # Web services shown in tool panel WEBSERVICES_SHOWN: - - 'wms' - - 'wfs' - - 'iiif' + - "wms" + - "tms" + - "wfs" + - "xyz" + - "wmts" + - "tilejson" + - "iiif" + - "feature_layer" + - "tiled_map_layer" + - "dynamic_map_layer" + - "image_map_layer" + - "cog" + - "pmtiles" + +# Display Notes to display / Non-prefixed default bootstrap class is alert-secondary +DISPLAY_NOTES_SHOWN: + danger: + bootstrap_alert_class: alert-danger + icon: fire-solid + note_prefix: "Danger: " + info: + bootstrap_alert_class: alert-info + icon: circle-info-solid + note_prefix: "Info: " + tip: + bootstrap_alert_class: alert-success + icon: lightbulb-solid + note_prefix: "Tip: " + warning: + bootstrap_alert_class: alert-warning + icon: triangle-exclamation-solid + note_prefix: "Warning: " +# Relationships to display +RELATIONSHIPS_SHOWN: + MEMBER_OF_ANCESTORS: + field: pcdm_memberOf_sm + icon: collection + inverse: :MEMBER_OF_DESCENDANTS + label: geoblacklight.relations.member_of_ancestors + query_type: ancestors + MEMBER_OF_DESCENDANTS: + field: pcdm_memberOf_sm + icon: child-item + inverse: :MEMBER_OF_ANCESTORS + label: geoblacklight.relations.member_of_descendants + query_type: descendants + PART_OF_ANCESTORS: + field: dct_isPartOf_sm + icon: parent-item + inverse: :PART_OF_DESCENDANTS + label: geoblacklight.relations.part_of_ancestors + query_type: ancestors + PART_OF_DESCENDANTS: + field: dct_isPartOf_sm + icon: child-item + inverse: :PART_OF_ANCESTORS + label: geoblacklight.relations.part_of_descendants + query_type: descendants + RELATION_ANCESTORS: + field: dct_relation_sm + icon: nil + inverse: :RELATION_DESCENDANTS + label: geoblacklight.relations.relation_ancestors + query_type: ancestors + RELATION_DESCENDANTS: + field: dct_relation_sm + icon: nil + inverse: :RELATION_ANCESTORS + label: geoblacklight.relations.relation_descendants + query_type: descendants + REPLACES_ANCESTORS: + field: dct_replaces_sm + icon: nil + inverse: :REPLACES_DESCENDANTS + label: geoblacklight.relations.replaces_ancestors + query_type: ancestors + REPLACES_DESCENDANTS: + field: dct_replaces_sm + icon: nil + inverse: :REPLACES_ANCESTORS + label: geoblacklight.relations.replaces_descendants + query_type: descendants + SOURCE_ANCESTORS: + field: dct_source_sm + icon: parent-item + inverse: :SOURCE_DESCENDANTS + label: geoblacklight.relations.source_ancestors + query_type: ancestors + SOURCE_DESCENDANTS: + field: dct_source_sm + icon: child-item + inverse: :SOURCE_ANCESTORS + label: geoblacklight.relations.source_descendants + query_type: descendants + VERSION_OF_ANCESTORS: + field: dct_isVersionOf_sm + icon: parent-item + inverse: :VERSION_OF_DESCENDANTS + label: geoblacklight.relations.version_of_ancestors + query_type: ancestors + VERSION_OF_DESCENDANTS: + field: dct_isVersionOf_sm + icon: child-item + inverse: :VERSION_OF_ANCESTORS + label: geoblacklight.relations.version_of_descendants + query_type: descendants + +# WMS Parameters WMS_PARAMS: - :SERVICE: 'WMS' - :VERSION: '1.1.1' - :REQUEST: 'GetFeatureInfo' - :STYLES: '' - :SRS: 'EPSG:4326' - :EXCEPTIONS: 'application/json' - :INFO_FORMAT: 'text/html' + :SERVICE: "WMS" + :VERSION: "1.1.1" + :REQUEST: "GetFeatureInfo" + :STYLES: "" + :SRS: "EPSG:4326" + :EXCEPTIONS: "application/json" + :INFO_FORMAT: "text/html" # Settings for leaflet -OPACITY_CONTROL: &opacity_control - CONTROLS: - - 'Opacity' - LEAFLET: MAP: LAYERS: - DETECT_RETINA: false + DETECT_RETINA: true INDEX: DEFAULT: &default color: "#1eb300" - weight: "1" - radius: "4" + weight: 1 + radius: 4 UNAVAILABLE: <<: *default color: "#b3001e" SELECTED: <<: *default color: "#006bde" - VIEWERS: WMS: - <<: *opacity_control + CONTROLS: + - "Opacity" + - "Fullscreen" TILEDMAPLAYER: - <<: *opacity_control + CONTROLS: + - "Opacity" + - "Fullscreen" FEATURELAYER: - <<: *opacity_control + CONTROLS: + - "Opacity" + - "Fullscreen" DYNAMICMAPLAYER: - <<: *opacity_control + CONTROLS: + - "Opacity" + - "Fullscreen" IMAGEMAPLAYER: - <<: *opacity_control + CONTROLS: + - "Opacity" + - "Fullscreen" + +# Toggle the help text feature that offers users context +HELP_TEXT: + viewer_protocol: + - "dynamic_map_layer" + - "feature_layer" + - "iiif" + - "iiif_manifest" + - "image_map_layer" + - "index_map" + - "tiled_map_layer" + - "wms" + - "tms" + - "oembed" + - "pmtiles" + - "cog" +# Enable catalog#show sidebar static map for items with the following viewer protocols +SIDEBAR_STATIC_MAP: + - "iiif" + - "iiif_manifest" + +# Full names and contact info for institutions contributing metadata INSTITUTIONS: NYU: department: NYU Data Services @@ -195,38 +362,50 @@ INSTITUTIONS: Colorado State: department: Geospatial Centroid at Colorado State University email: gis@colostate.edu - Arizona: + Arizona: department: University of Arizona Library Geospatial Hub email: glenningram@email.arizona.edu Virginia Tech: department: Virginia Tech University Libraries email: gisdata@vt.edu -# Toggle the help text feature that offers users context -HELP_TEXT: - viewer_protocol: - - 'dynamic_map_layer' - - 'feature_layer' - - 'iiif' - - 'iiif_manifest' - - 'image_map_layer' - - 'index_map' - - 'tiled_map_layer' - - 'wms' - - 'oembed' +# Search engine settings +BING_SITE_VERIFICATION: "4E61263975C6ABBF2ECE5A8CA5E592B7" +GOOGLE_SITE_VERIFICATION: "654321sitever" + +# Turn on to enable rack-attack throttling +THROTTLE_TRAFFIC: false + +# Turn off in production to store events via google analytics +ANALYTICS_DEBUG: true +# Settings for feedback submission form +HOSTNAME: "HOST" +EMAIL_TO: "fake-email@example.com" RECAPTCHA: SITE_KEY: 6Lc6BAAAAAAAAChqRbQZcn_yyyyyyyyyyyyyyyyy SECRET_KEY: 6Lc6BAAAAAAAAKN3DRm6VA_xxxxxxxxxxxxxxxxx -GEO_BLACKLIGHT_HARVEST_SITES: - MIT: - host: https://geodata.mit.edu - params: - f: - dct_provenance_s: - - MIT +# Used to generate canonical links and JSON-LD content in the +HOST_URL: "http://www.example.com" + +# New Relic settings +NEWRELIC_APP_NAME: "should be specific to stage and prod" +NEWRELIC_LICENSE_KEY: "this is private" +NEWRELIC_ENABLED: false + +# Geoserver URLs +PROXY_URL: "http://www.example.com/restricted" +RESTRICTED_URL: "http://www.example-services.com" + +# Server used for background jobs +REDIS_URL: "redis://localhost:6379/" + +# GeoMonitor settings +SOLR_COMMIT_WITHIN: 5000 +GEOMONITOR_TOLERANCE: 0.2 +# GeoCombine settings (harvesting/indexing from OpenGeoMetadata) # Repositories listed here will be harvested and indexed by rake tasks. See: # https://github.com/OpenGeoMetadata # If supplied, "provenance" value overrides the dct_provenance_s in the record diff --git a/config/solr_configs/schema.xml b/config/solr_configs/schema.xml index a64a725a..50627869 100644 --- a/config/solr_configs/schema.xml +++ b/config/solr_configs/schema.xml @@ -1,29 +1,43 @@ - - layer_slug_s + + id - - - + + + + + + + + + + + + + - + - @@ -44,26 +58,8 @@ - - - + + @@ -80,6 +76,9 @@ A Trie based date field for faster date range queries and date faceting. --> + + + @@ -134,54 +133,65 @@ - - + + + + + - - - - - - - - - + + + + + + + + + - - + - - + + - - - + + - - - - - + + + + + - - - - - + + + + + + + + diff --git a/config/solr_configs/solrconfig.xml b/config/solr_configs/solrconfig.xml index f0ece28f..a68c5163 100644 --- a/config/solr_configs/solrconfig.xml +++ b/config/solr_configs/solrconfig.xml @@ -18,7 +18,7 @@ this file, see http://wiki.apache.org/solr/SolrConfigXml. --> - 6.1.0 + 8.11.2 ${solr.data.dir:} @@ -109,54 +109,54 @@ 0 0.01 *,score - score desc, dc_title_sort asc + score desc, dct_title_sort asc *:* text^1 - dc_description_ti^2 - dc_creator_tmi^3 - dc_publisher_ti^3 + dct_description_ti^2 + dct_creator_tmi^3 + dct_publisher_ti^3 dct_isPartOf_tmi^4 - dc_subject_tmi^5 + dct_subject_tmi^5 dct_spatial_tmi^5 dct_temporal_tmi^5 - dc_title_ti^6 - dc_rights_ti^7 - dct_provenance_ti^8 + dct_title_ti^6 + dct_accessRights_ti^7 + dct_provider_ti^8 layer_geom_type_ti^9 layer_slug_ti^10 - dc_identifier_ti^10 + dct_identifier_ti^10 text^1 - dc_description_ti^2 - dc_creator_tmi^3 - dc_publisher_ti^3 + dct_description_ti^2 + dct_creator_tmi^3 + dct_publisher_ti^3 dct_isPartOf_tmi^4 - dc_subject_tmi^5 + dct_subject_tmi^5 dct_spatial_tmi^5 dct_temporal_tmi^5 - dc_title_ti^6 - dc_rights_ti^7 - dct_provenance_ti^8 + dct_title_ti^6 + dct_accessRights_ti^7 + dct_provider_ti^8 layer_geom_type_ti^9 layer_slug_ti^10 - dc_identifier_ti^10 + dct_identifier_ti^10 true 1 10 dct_isPartOf_sm - dct_provenance_s + schema_provider_s dct_spatial_sm - dc_creator_sm - dc_format_s - dc_language_s - dc_publisher_s - dc_rights_s - dc_subject_sm - layer_geom_type_s - solr_year_i + dct_creator_sm + dct_format_s + dct_language_sm + dct_publisher_sm + dct_accessRights_s + dct_subject_sm + locn_geometry_s + gbl_indexYear_im true diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..85bcda40 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1059 @@ +{ + "name": "earthworks", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "vite": "^5.2.11", + "vite-plugin-ruby": "^5.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/vite": { + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-ruby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-ruby/-/vite-plugin-ruby-5.0.0.tgz", + "integrity": "sha512-c8PjTp21Ah/ttgnNUyu0qvCXZI08Jr9I24oUKg3TRIRhF5GcOZ++6wtlTCrNFd9COEQbpXHxlRIXd/MEg0iZJw==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "fast-glob": "^3.3.2" + }, + "peerDependencies": { + "vite": ">=5.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..c23fdb0a --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "devDependencies": { + "vite": "^5.2.11", + "vite-plugin-ruby": "^5.0.0" + } +} diff --git a/spec/factories/layer.rb b/spec/factories/layer.rb index fc4110ec..475f2910 100644 --- a/spec/factories/layer.rb +++ b/spec/factories/layer.rb @@ -1,5 +1,3 @@ FactoryBot.define do - factory :layer, class: 'GeoMonitor::Layer' do - sequence(:slug) { |n| "institution-#{n}" } - end + factory :layer, class: 'GeoMonitor::Layer' end diff --git a/spec/features/bookmarks_spec.rb b/spec/features/bookmarks_spec.rb deleted file mode 100644 index 14224de4..00000000 --- a/spec/features/bookmarks_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -require 'rails_helper' - -describe 'Blacklight Bookmarks' do - it 'index has created bookmarks' do - skip('Passes locally, not on Travis.') if ENV['CI'] - visit solr_document_path 'columbia-columbia-landinfo-global-aet' - click_on 'Bookmark' - visit bookmarks_path - expect(page).to have_css '.document', count: 1 - end -end diff --git a/spec/features/canonical_urls_spec.rb b/spec/features/canonical_urls_spec.rb index f29a064f..f0a92051 100644 --- a/spec/features/canonical_urls_spec.rb +++ b/spec/features/canonical_urls_spec.rb @@ -7,7 +7,7 @@ end it 'not Stanford' do - visit solr_document_path 'mit-us-ma-e25zcta5dct-2000' + visit solr_document_path 'princeton-02870w62c' expect(page).to have_no_css 'link[rel="canonical"]', visible: false end end diff --git a/spec/features/custom_featured_searches_spec.rb b/spec/features/custom_featured_searches_spec.rb deleted file mode 100644 index a5b716bf..00000000 --- a/spec/features/custom_featured_searches_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'rails_helper' - -describe 'Custom featured searches' do - it 'breadcrumbs are present' do - visit search_catalog_path(q: '', featured: 'geospatial_data') - expect(page).to have_css '.filter-name', text: 'Featured' - expect(page).to have_css '.filter-value', text: 'Geospatial Data' - end -end diff --git a/spec/features/facets_spec.rb b/spec/features/facets_spec.rb deleted file mode 100644 index 4e2fdc42..00000000 --- a/spec/features/facets_spec.rb +++ /dev/null @@ -1,12 +0,0 @@ -require 'rails_helper' - -describe 'Custom facets' do - describe 'dc_rights_s' do - it 'handles a query, but not show up in facet bar' do - visit search_catalog_path(q: '', f: { dc_rights_s: ['Restricted'] }) - expect(page).to have_no_css '.facet-select', text: 'Rights' - expect(page).to have_css '.filter-name', text: 'Rights' - expect(page).to have_css '.document', count: 2 - end - end -end diff --git a/spec/features/page_title_spec.rb b/spec/features/page_title_spec.rb index c388857e..fcad24fd 100644 --- a/spec/features/page_title_spec.rb +++ b/spec/features/page_title_spec.rb @@ -17,6 +17,6 @@ describe 'Show page' do it 'have title' do visit solr_document_path 'stanford-cg357zz0321' - expect(page.title).to eq '10 Meter Countours: Russian River Basin, California in EarthWorks' + expect(page.title).to eq '10 Meter Contours: Russian River Basin, California in EarthWorks' end end diff --git a/spec/features/record_spec.rb b/spec/features/record_spec.rb deleted file mode 100644 index df829298..00000000 --- a/spec/features/record_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe 'Record view' do - it 'does not have empty values indexed' do - visit solr_document_path('columbia-columbia-landinfo-global-aet') - - expect(page).to have_no_css('dt', text: 'Publisher') - end -end diff --git a/spec/fixtures/solr_documents/actual-papermap1.json b/spec/fixtures/solr_documents/actual-papermap1.json index 590d6453..25afc1a6 100644 --- a/spec/fixtures/solr_documents/actual-papermap1.json +++ b/spec/fixtures/solr_documents/actual-papermap1.json @@ -1,25 +1,23 @@ { - "uuid": "urn:arrowsmith.mit.edu:MIT.001145244", - "dc_description_s": "Panel title. Depths shown by isolines. \"Geological map [copyright] NERC 1996.\" Also available on flat sheet. \"Sheet 1\"--on panel. Includes text, notes, organizations' logos, and ancillary map of \"Orogenic terranes of Britain, Ireland and surrounding seas.\"", - "dc_format_s": "Paper", - "dc_identifier_s": "urn:arrowsmith.mit.edu:MIT.001145244", - "dc_language_s": "English", - "dc_publisher_s": "British Geological Survey", - "dc_rights_s": "Public", - "dc_title_s": "1:1 500 000 series [cartographic material] : tectonic map of Britain, Ireland and adjacent areas / British Geological Survey ; Geological Survey of Ireland ; Geological Survey of Northern Ireland.", - "dc_type_s": "Dataset", - "dct_references_s": "{\"http://schema.org/url\":\"http://library.mit.edu/item/001145244\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.html\"}", - "dct_temporal_sm": [ - "1996" - ], - "dct_issued_s": "2000", - "dct_provenance_s": "MIT", - "georss_box_s": "49.0 -13.0 62.0 4.0", - "georss_polygon_s": "62.0 -13.0 62.0 4.0 49.0 4.0 49.0 -13.0 62.0 -13.0", - "layer_slug_s": "mit-001145244", - "layer_id_s": "MIT:001145244", - "layer_geom_type_s": "Paper Map", - "layer_modified_dt": "2014-12-04T21:32:59Z", - "solr_geom": "ENVELOPE(-13.0, 4.0, 62.0, 49.0)", - "solr_year_i": 1996 - } \ No newline at end of file + "dct_description_sm": [ + "Panel title. Depths shown by isolines. \"Geological map [copyright] NERC 1996.\" Also available on flat sheet. \"Sheet 1\"--on panel. Includes text, notes, organizations' logos, and ancillary map of \"Orogenic terranes of Britain, Ireland and surrounding seas.\"" + ], + "dct_format_s": "Paper", + "dct_identifier_sm": ["urn:arrowsmith.mit.edu:MIT.001145244"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["British Geological Survey"], + "dct_accessRights_s": "Public", + "dct_title_s": "1:1 500 000 series [cartographic material] : tectonic map of Britain, Ireland and adjacent areas / British Geological Survey ; Geological Survey of Ireland ; Geological Survey of Northern Ireland.", + "dct_references_s": "{\"http://schema.org/url\":\"http://library.mit.edu/item/001145244\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/MIT:001145244/fgdc.html\"}", + "dct_temporal_sm": ["1996"], + "dct_issued_s": "2000", + "schema_provider_s": "MIT", + "id": "mit-001145244", + "gbl_wxsIdentifier_s": "MIT:001145244", + "gbl_mdModified_dt": "2014-12-04T21:32:59Z", + "dcat_bbox": "ENVELOPE(-13.0, 4.0, 62.0, 49.0)", + "locn_geometry": "ENVELOPE(-13.0, 4.0, 62.0, 49.0)", + "gbl_indexYear_im": [1996], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/actual-point1.json b/spec/fixtures/solr_documents/actual-point1.json index d0cccdd5..1da2b7ed 100644 --- a/spec/fixtures/solr_documents/actual-point1.json +++ b/spec/fixtures/solr_documents/actual-point1.json @@ -1,28 +1,29 @@ { - "uuid": "urn:columbia.edu:Columbia.landinfo_global_aet", - "dc_description_s": "Actual Evapotrans is a point theme representing the sum of evaporation and plant transpiration to the atmosphere from throughout the world. Measurements are represented by points at every.5 degrees and provided for every month of the year. This dataset is a part of the Global Climate Database from the Global Change Department National Institute of Public Health and Environmental Protection.", - "dc_format_s": "Shapefile", - "dc_identifier_s": "urn:columbia.edu:Columbia.landinfo_global_aet", - "dc_language_s": "English", - "dc_rights_s": "Public", - "dc_title_s": "Actual Evapotrans", - "dc_publisher_s": "", - "dc_type_s": "Dataset", + "dct_description_sm": [ + "Actual Evapotrans is a point theme representing the sum of evaporation and plant transpiration to the atmosphere from throughout the world. Measurements are represented by points at every.5 degrees and provided for every month of the year. This dataset is a part of the Global Climate Database from the Global Change Department National Institute of Public Health and Environmental Protection." + ], + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["urn:columbia.edu:Columbia.landinfo_global_aet"], + "dct_language_sm": ["eng"], + "dct_accessRights_s": "Public", + "dct_title_s": "Actual Evapotrans", + "dct_publisher_sm": [""], "dct_references_s": "{\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/Columbia:Columbia.landinfo_global_aet/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/Columbia:Columbia.landinfo_global_aet/fgdc.html\"}", "dct_spatial_sm": [ "World", "Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet. Erat me exerci eorum anteposuerit quam. Liber feugait iis lorem assum imperdiet. Nibh luptatum ipsum quis notare tation. Clari seacula aliquam futurum nunc sed. Lectorum eu lius velit tation lius. Delenit placerat claritas diam hendrerit diam. Dolor vero non nulla anteposuerit imperdiet." ], - "dct_temporal_sm": [ - "1996" - ], - "dct_provenance_s": "Columbia", + "dct_temporal_sm": ["1996"], + "schema_provider_s": "Columbia", "georss_box_s": "-56.0 -179.5 83.0 180.0", "georss_polygon_s": "83.0 -179.5 83.0 180.0 -56.0 180.0 -56.0 -179.5 83.0 -179.5", - "layer_slug_s": "columbia-columbia-landinfo-global-aet", - "layer_id_s": "Columbia:Columbia.landinfo_global_aet", - "layer_geom_type_s": "Point", - "layer_modified_dt": "2014-12-12T19:54:57Z", - "solr_geom": "ENVELOPE(-179.5, 180.0, 83.0, -56.0)", - "solr_year_i": 1996 + "id": "columbia-columbia-landinfo-global-aet", + "gbl_wxsIdentifier_s": "Columbia:Columbia.landinfo_global_aet", + "gbl_mdModified_dt": "2014-12-12T19:54:57Z", + "dcat_bbox": "ENVELOPE(-179.5, 180.0, 83.0, -56.0)", + "locn_geometry": "ENVELOPE(-179.5, 180.0, 83.0, -56.0)", + "gbl_indexYear_im": [1996], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Point data"], + "gbl_mdVersion_s": "Aardvark" } diff --git a/spec/fixtures/solr_documents/actual-polygon1.json b/spec/fixtures/solr_documents/actual-polygon1.json index e37462c7..7d3a6f91 100644 --- a/spec/fixtures/solr_documents/actual-polygon1.json +++ b/spec/fixtures/solr_documents/actual-polygon1.json @@ -1,25 +1,26 @@ { - "uuid": "urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04", - "dc_description_s": "This polygon dataset is a 100 foot grid overlay for Cambridge, MA.", - "dc_format_s": "Shapefile", - "dc_identifier_s": "urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04", - "dc_language_s": "English", - "dc_publisher_s": "Cambridge (Mass.) Geographic Information Systems", - "dc_rights_s": "Public", - "dc_title_s": "100 Foot Grid Cambridge MA 2004", - "dc_type_s": "Dataset", - "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://geoserver01.uit.tufts.edu/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://geoserver01.uit.tufts.edu/wms\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.html\"}", - "dct_temporal_sm": [ - "2004" + "dct_description_sm": [ + "This polygon dataset is a 100 foot grid overlay for Cambridge, MA." ], + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["urn:geodata.tufts.edu:Tufts.CambridgeGrid100_04"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Cambridge (Mass.) Geographic Information Systems"], + "dct_accessRights_s": "Public", + "dct_title_s": "100 Foot Grid Cambridge MA 2004", + "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://geoserver01.uit.tufts.edu/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://geoserver01.uit.tufts.edu/wms\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04/fgdc.html\"}", + "dct_temporal_sm": ["2004"], "dct_issued_s": "2005", - "dct_provenance_s": "Tufts", + "schema_provider_s": "Tufts", "georss_box_s": "42.34757 -71.163984 42.408316 -71.052581", "georss_polygon_s": "42.408316 -71.163984 42.408316 -71.052581 42.34757 -71.052581 42.34757 -71.163984 42.408316 -71.163984", - "layer_slug_s": "tufts-cambridgegrid100-04", - "layer_id_s": "sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2014-12-04T21:33:07Z", - "solr_geom": "ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)", - "solr_year_i": 2004 -} \ No newline at end of file + "id": "tufts-cambridgegrid100-04", + "gbl_wxsIdentifier_s": "sde:GISPORTAL.GISOWNER01.CAMBRIDGEGRID100_04", + "gbl_mdModified_dt": "2014-12-04T21:33:07Z", + "dcat_bbox": "ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)", + "locn_geometry": "ENVELOPE(-71.163984, -71.052581, 42.408316, 42.34757)", + "gbl_indexYear_im": [2004], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/actual-raster1.json b/spec/fixtures/solr_documents/actual-raster1.json index 00769480..365b9ddf 100644 --- a/spec/fixtures/solr_documents/actual-raster1.json +++ b/spec/fixtures/solr_documents/actual-raster1.json @@ -1,43 +1,39 @@ { - "uuid": "http://purl.stanford.edu/dp018hs9766", - "dc_identifier_s": "http://purl.stanford.edu/dp018hs9766", - "dc_title_s": "1-Meter Shaded Relief Multibeam Bathymetry Image (Color): Elkhorn Slough, California, 2005", - "dc_description_s": "This layer is a 10-color shaded relief GeoTIFF that contains high-resolution bathymetric data collected from the Elkhorn Slough region of Monterey Bay, California. The survey for Elkhorn Slough was conducted 8/12/2005 - 8/15/2005. Elkhorn Slough, one of the largest remaining coastal wetlands in California, has been directly subjected to tidal scour since the opening of Moss Landing Harbor in 1946. This erosion endangers the habitat of several rare and endangered species and disrupts the wetland ecosystem as a whole. In 2003, the Seafloor Mapping Lab of California State University, Monterey Bay created the most detailed bathymetry model of the Slough to date using a combination of multi-beam sonar, single-beam sonar and aerial photography. This layer was created as part of the California Seafloor Mapping Project.This project was conducted to determine changes in the pattern of erosion and deposition in Elkhorn Slough since surveys conducted in 1993, 2001 and 2003. Marine data offered here represent the efforts of a comprehensive state waters mapping program for California launched by the California State Coastal Conservancy, Ocean Protection Council, Department of Fish and Game, and the NOAA National Marine Sanctuary Program. The ultimate goal is the creation of a high-resolution 1:24,000 scale geologic and habitat base map series covering all of California's 14,500 km2 state waters out to the 3 mile limit, and support of the state's Marine Life Protection Act Initiative (MLPA) goal to create a statewide network of Marine Protected Areas (MPAs). This statewide project requires, involves and leverages expertise from industry, resource management agencies and academia. The tiered mapping campaign involves the use of state-of-the-art sonar, LIDAR (aerial laser) and video seafloor mapping technologies; computer aided classification and visualization; expert geologic and habitat interpretations codified into strip maps spanning California's land/sea boundary; and the creation of an online, publicly accessible data repository for the dissemination of all mapping products.\n", - "dc_rights_s": "Restricted", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/dp018hs9766\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:dp018hs9766/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/dp018hs9766.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wcs\":\"http://kurma-podd1.stanford.edu/geoserver/wcs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://kurma-podd1.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:dp018hs9766", - "layer_slug_s": "stanford-dp018hs9766", - "layer_geom_type_s": "Raster", - "layer_modified_dt": "2014-12-03T02:15:20Z", - "dc_format_s": "GeoTIFF", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Seafloor Mapping Lab", - "dc_creator_sm": [ - "Seafloor Mapping Lab" - ], - "dc_subject_sm": [ - "Continental margins", - "Multibeam mapping", - "Elevation", - "Imagery and Base Maps", - "Inland Waters" - ], - "dct_issued_s": "2006", - "dct_temporal_sm": [ - "2005" - ], - "dct_spatial_sm": [ - "Elkhorn Slough (Calif.)", - "Monterey Bay (Calif.)" - ], - "dc_relation_sm": [ - "http://sws.geonames.org/5346182/about.rdf", - "http://sws.geonames.org/5374363/about.rdf" - ], - "georss_box_s": "36.8085911 -121.7948738 36.8606925 -121.7389503", - "georss_polygon_s": "36.8085911 -121.7948738 36.8606925 -121.7948738 36.8606925 -121.7389503 36.8085911 -121.7389503 36.8085911 -121.7948738", - "solr_geom": "ENVELOPE(-121.7948738, -121.7389503, 36.8606925, 36.8085911)", - "solr_year_i": 2005 - } \ No newline at end of file + "dct_identifier_sm": ["http://purl.stanford.edu/dp018hs9766"], + "dct_title_s": "1-Meter Shaded Relief Multibeam Bathymetry Image (Color): Elkhorn Slough, California, 2005", + "dct_description_sm": [ + "This layer is a 10-color shaded relief GeoTIFF that contains high-resolution bathymetric data collected from the Elkhorn Slough region of Monterey Bay, California. The survey for Elkhorn Slough was conducted 8/12/2005 - 8/15/2005. Elkhorn Slough, one of the largest remaining coastal wetlands in California, has been directly subjected to tidal scour since the opening of Moss Landing Harbor in 1946. This erosion endangers the habitat of several rare and endangered species and disrupts the wetland ecosystem as a whole. In 2003, the Seafloor Mapping Lab of California State University, Monterey Bay created the most detailed bathymetry model of the Slough to date using a combination of multi-beam sonar, single-beam sonar and aerial photography. This layer was created as part of the California Seafloor Mapping Project.This project was conducted to determine changes in the pattern of erosion and deposition in Elkhorn Slough since surveys conducted in 1993, 2001 and 2003. Marine data offered here represent the efforts of a comprehensive state waters mapping program for California launched by the California State Coastal Conservancy, Ocean Protection Council, Department of Fish and Game, and the NOAA National Marine Sanctuary Program. The ultimate goal is the creation of a high-resolution 1:24,000 scale geologic and habitat base map series covering all of California's 14,500 km2 state waters out to the 3 mile limit, and support of the state's Marine Life Protection Act Initiative (MLPA) goal to create a statewide network of Marine Protected Areas (MPAs). This statewide project requires, involves and leverages expertise from industry, resource management agencies and academia. The tiered mapping campaign involves the use of state-of-the-art sonar, LIDAR (aerial laser) and video seafloor mapping technologies; computer aided classification and visualization; expert geologic and habitat interpretations codified into strip maps spanning California's land/sea boundary; and the creation of an online, publicly accessible data repository for the dissemination of all mapping products.\n" + ], + "dct_accessRights_s": "Restricted", + "schema_provider_s": "Stanford", + "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/dp018hs9766\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:dp018hs9766/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/dp018hs9766.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:dp018hs9766/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wcs\":\"http://kurma-podd1.stanford.edu/geoserver/wcs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://kurma-podd1.stanford.edu/geoserver/wms\"}", + "gbl_wxsIdentifier_s": "druid:dp018hs9766", + "id": "stanford-dp018hs9766", + "gbl_mdModified_dt": "2014-12-03T02:15:20Z", + "dct_format_s": "GeoTIFF", + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Seafloor Mapping Lab"], + "dct_creator_sm": ["Seafloor Mapping Lab"], + "dct_subject_sm": [ + "Continental margins", + "Multibeam mapping", + "Elevation", + "Imagery and Base Maps", + "Inland Waters" + ], + "dct_issued_s": "2006", + "dct_temporal_sm": ["2005"], + "dct_spatial_sm": ["Elkhorn Slough (Calif.)", "Monterey Bay (Calif.)"], + "dc_relation_sm": [ + "http://sws.geonames.org/5346182/about.rdf", + "http://sws.geonames.org/5374363/about.rdf" + ], + "georss_box_s": "36.8085911 -121.7948738 36.8606925 -121.7389503", + "georss_polygon_s": "36.8085911 -121.7948738 36.8606925 -121.7948738 36.8606925 -121.7389503 36.8085911 -121.7389503 36.8085911 -121.7948738", + "dcat_bbox": "ENVELOPE(-121.7948738, -121.7389503, 36.8606925, 36.8085911)", + "locn_geometry": "ENVELOPE(-121.7948738, -121.7389503, 36.8606925, 36.8085911)", + "gbl_indexYear_im": [2005], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Raster data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/collection.json b/spec/fixtures/solr_documents/collection.json index 654063e3..ad0fa82f 100644 --- a/spec/fixtures/solr_documents/collection.json +++ b/spec/fixtures/solr_documents/collection.json @@ -1,31 +1,25 @@ { - "dc_identifier_s": "http://purl.stanford.edu/bq589tv8583", - "dc_title_s": "Metropolitan Transportation Commission GIS Maps & Data", - "dc_description_s": "by Bay Area Metropolitan Transportation Commission These are geospatial data layers acquired from the Bay Area Metropolitan Transportation Commission (MTC) spatial data library. Layers contain feature data related to transportation, administrative boundaries, demographics, environmental factors, census activities, and regional projects. New data layers are added on an ongoing basis.", - "dc_rights_s": "Public", - "layer_modified_dt": "2020-03-21T21:39:02Z", - "dct_issued_s": "c2010", - "layer_geom_type_s": "Collection", - "dc_language_s": "English", - "dc_subject_sm": [ - "Transportation", - "Boundaries", - "Census" - ], - "dct_spatial_sm": [ - "San Francisco Bay Area", - "California" - ], - "dc_publisher_s": "California. Metropolitan Transportation Commission", - "dc_creator_sm": [ - "California Metropolitan Transportation Commission" + "dct_identifier_sm": ["http://purl.stanford.edu/bq589tv8583"], + "dct_title_s": "Metropolitan Transportation Commission GIS Maps & Data", + "dct_description_sm": [ + "by Bay Area Metropolitan Transportation Commission These are geospatial data layers acquired from the Bay Area Metropolitan Transportation Commission (MTC) spatial data library. Layers contain feature data related to transportation, administrative boundaries, demographics, environmental factors, census activities, and regional projects. New data layers are added on an ongoing basis." ], + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2020-03-21T21:39:02Z", + "dct_issued_s": "c2010", + "dct_language_sm": ["eng"], + "dct_subject_sm": ["Transportation", "Boundaries", "Census"], + "dct_spatial_sm": ["San Francisco Bay Area", "California"], + "dct_publisher_sm": ["California. Metropolitan Transportation Commission"], + "dct_creator_sm": ["California Metropolitan Transportation Commission"], "layer_availability_score_f": 1, - "geoblacklight_version": "1.0", + "gbl_mdVersion_s": "Aardvark", "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/bq589tv8583\",\"http://www.loc.gov/mods/v3\":\"https://purl.stanford.edu/bq589tv8583.mods\"}", - "solr_geom": "ENVELOPE(-123.10749999999999, -122.32777777777777, 37.92972222222222, 37.69333333333333)", - "layer_slug_s": "stanford-bq589tv8583", - "dct_provenance_s": "Stanford", + "dcat_bbox": "ENVELOPE(-123.10749999999999, -122.32777777777777, 37.92972222222222, 37.69333333333333)", + "locn_geometry": "ENVELOPE(-123.10749999999999, -122.32777777777777, 37.92972222222222, 37.69333333333333)", + "id": "stanford-bq589tv8583", + "schema_provider_s": "Stanford", "stanford_rights_metadata_s": "\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n ", - "solr_year_i": 2010 + "gbl_indexYear_im": [2010], + "gbl_resourceClass_sm": ["Other"] } diff --git a/spec/fixtures/solr_documents/harvard-unavailable.json b/spec/fixtures/solr_documents/harvard-unavailable.json index 43d026e8..87cccaac 100644 --- a/spec/fixtures/solr_documents/harvard-unavailable.json +++ b/spec/fixtures/solr_documents/harvard-unavailable.json @@ -1,25 +1,26 @@ { - "uuid":"urn:hul.harvard.edu:HARVARD.SDE.NTADCD106", - "dc_description_s":"The 106th Congressional District Boundaries data set contains geographic information for the political entities of the Congressional districts of the United States and U.S. Territories.", - "dc_format_s":"Shapefile", - "dc_identifier_s":"urn:hul.harvard.edu:HARVARD.SDE.NTADCD106", - "dc_language_s":"English", - "dc_publisher_s":"Bureau of Transportation Statistics", - "dc_rights_s":"Public", - "dc_title_s":"106th Congressional District Boundaries", - "dc_type_s":"Dataset", - "dct_references_s":"{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://hgl.harvard.edu:8080/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://hgl.harvard.edu:8080/geoserver/wms\",\"http://schema.org/UserDownloads\":\"http://hgl.harvard.edu:8080/HGL/RemoteServiceStarter\",\"http://tilecache.org\":\"http://hgl.harvard.edu/cgi-bin/tilecache/tilecache.cgi\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\",\"http://schema.org/url\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\"}", - "dct_temporal_sm":[ - "1999" + "dct_description_sm": [ + "The 106th Congressional District Boundaries data set contains geographic information for the political entities of the Congressional districts of the United States and U.S. Territories." ], - "dct_provenance_s":"Harvard", - "georss_box_s":"-14.602623 -179.149436 71.331916 179.759346", - "georss_polygon_s":"71.331916 -179.149436 71.331916 179.759346 -14.602623 179.759346 -14.602623 -179.149436 71.331916 -179.149436", - "layer_slug_s":"harvard-ntadcd106", - "layer_id_s":"sde:SDE.NTADCD106", - "layer_geom_type_s":"Polygon", - "layer_modified_dt":"2014-12-16T00:47:27Z", - "solr_geom":"ENVELOPE(-179.149436, 179.759346, 71.331916, -14.602623)", - "solr_year_i":1999, - "layer_availability_score_f":0.0 -} \ No newline at end of file + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["urn:hul.harvard.edu:HARVARD.SDE.NTADCD106"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Bureau of Transportation Statistics"], + "dct_accessRights_s": "Public", + "dct_title_s": "106th Congressional District Boundaries", + "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://hgl.harvard.edu:8080/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://hgl.harvard.edu:8080/geoserver/wms\",\"http://schema.org/UserDownloads\":\"http://hgl.harvard.edu:8080/HGL/RemoteServiceStarter\",\"http://tilecache.org\":\"http://hgl.harvard.edu/cgi-bin/tilecache/tilecache.cgi\",\"http://www.opengis.net/cat/csw/csdgm\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\",\"http://schema.org/url\":\"http://opengeometadata.stanford.edu/metadata/org.opengeoportal/sde:SDE.NTADCD106/fgdc.html\"}", + "dct_temporal_sm": ["1999"], + "schema_provider_s": "Harvard", + "georss_box_s": "-14.602623 -179.149436 71.331916 179.759346", + "georss_polygon_s": "71.331916 -179.149436 71.331916 179.759346 -14.602623 179.759346 -14.602623 -179.149436 71.331916 -179.149436", + "id": "harvard-ntadcd106", + "gbl_wxsIdentifier_s": "sde:SDE.NTADCD106", + "gbl_mdModified_dt": "2014-12-16T00:47:27Z", + "dcat_bbox": "ENVELOPE(-179.149436, 179.759346, 71.331916, -14.602623)", + "locn_geometry": "ENVELOPE(-179.149436, 179.759346, 71.331916, -14.602623)", + "gbl_indexYear_im": [1999], + "layer_availability_score_f": 0.0, + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/harvard_raster.json b/spec/fixtures/solr_documents/harvard_raster.json index e73294b5..d7a93d4a 100644 --- a/spec/fixtures/solr_documents/harvard_raster.json +++ b/spec/fixtures/solr_documents/harvard_raster.json @@ -1,12 +1,14 @@ { - "uuid": "urn:hul.harvard.edu:HARVARD.SDE2.G7064_S2_1834_K3", - "dc_description_s": "This layer is a georeferenced raster image of the historic paper map entitled: [Karta mesta zanimaemago Sanktpeterburgom : v tom vide v kakom onoe nakhodilos' za god do osnovaniia goroda; sostavlena dlia panoramy S. Peterburga, 1834]. It was published in 1834. Scale [ca. 1:76,000]. Covers Saint Petersburg Region, Russia. Map in Russian and Swedish.\n\nThe image inside the map neatline is georeferenced to the surface of the earth and fit to the 'Pulkovo 1995 Gauss Kruger Zone 6N' coordinate system. All map collar and inset information is also available as part of the raster image, including any inset maps, profiles, statistical tables, directories, text, illustrations, index maps, legends, or other information associated with the principal map.\n\nThis map shows features such as roads, drainage, built-up areas and selected buildings, ground cover, and more. Relief is shown by hachures. Depths shown by soundings. Includes insets: [Retusari island] -- [Sluselberg]. \n\nThis layer is part of a selection of digitally scanned and georeferenced historic maps from The Harvard Map Collection as part of the Imaging the Urban Environment project. Maps selected for this project represent major urban areas and cities of the world, at various time periods. These maps typically portray both natural and manmade features at a large scale. The selection represents a range of regions, originators, ground condition dates, scales, and purposes.", - "dc_format_s": "GeoTIFF", - "dc_identifier_s": "urn:hul.harvard.edu:HARVARD.SDE2.G7064_S2_1834_K3", - "dc_language_s": "English", - "dc_publisher_s": "Harvard Map Collection, Harvard College Library", - "dc_rights_s": "Public", - "dc_subject_sm": [ + "dct_description_sm": [ + "This layer is a georeferenced raster image of the historic paper map entitled: [Karta mesta zanimaemago Sanktpeterburgom : v tom vide v kakom onoe nakhodilos' za god do osnovaniia goroda; sostavlena dlia panoramy S. Peterburga, 1834]. It was published in 1834. Scale [ca. 1:76,000]. Covers Saint Petersburg Region, Russia. Map in Russian and Swedish.\n\nThe image inside the map neatline is georeferenced to the surface of the earth and fit to the 'Pulkovo 1995 Gauss Kruger Zone 6N' coordinate system. All map collar and inset information is also available as part of the raster image, including any inset maps, profiles, statistical tables, directories, text, illustrations, index maps, legends, or other information associated with the principal map.\n\nThis map shows features such as roads, drainage, built-up areas and selected buildings, ground cover, and more. Relief is shown by hachures. Depths shown by soundings. Includes insets: [Retusari island] -- [Sluselberg]. \n\nThis layer is part of a selection of digitally scanned and georeferenced historic maps from The Harvard Map Collection as part of the Imaging the Urban Environment project. Maps selected for this project represent major urban areas and cities of the world, at various time periods. These maps typically portray both natural and manmade features at a large scale. The selection represents a range of regions, originators, ground condition dates, scales, and purposes." + ], + "dct_format_s": "GeoTIFF", + "dct_identifier_sm": ["urn:hul.harvard.edu:HARVARD.SDE2.G7064_S2_1834_K3"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Harvard Map Collection, Harvard College Library"], + "dct_accessRights_s": "Public", + "dct_license_sm": ["example.com/license"], + "dct_subject_sm": [ "Maps", "Human", "settlements", @@ -24,24 +26,22 @@ "water", "imageryBaseMapsEarthCover" ], - "dc_title_s": "Saint Petersburg Region, Russia, 1834 (Raster Image)", - "dc_type_s": "Dataset", + "dct_title_s": "Saint Petersburg Region, Russia, 1834 (Raster Image)", "dct_references_s": "{\"http://schema.org/DownloadAction\":\"http://hgl.harvard.edu:8080/HGL/HGLOpenDelivery\",\"http://www.opengis.net/def/serviceType/ogc/wcs\":\"http://hgl.harvard.edu:8080/geoserver/wcs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://hgl.harvard.edu:8080/geoserver/wms\"}", - "dct_spatial_sm": [ - "Russia Saint Petersburg" - ], - "dct_temporal_sm": [ - "1834" - ], + "dct_spatial_sm": ["Russia Saint Petersburg"], + "dct_temporal_sm": ["1834"], "dct_issued_s": "2000", - "dct_provenance_s": "Harvard", + "schema_provider_s": "Harvard", "georss_box_s": "59.669749 30.013108 60.041712 30.875309", "georss_polygon_s": "60.041712 30.013108 60.041712 30.875309 59.669749 30.875309 59.669749 30.013108 60.041712 30.013108", - "layer_slug_s": "harvard-g7064-s2-1834-k3", - "layer_id_s": "cite:SDE2.G7064_S2_1834_K3", - "layer_geom_type_s": "Raster", - "layer_modified_dt": "2014-05-27T18:09:36Z", - "solr_geom": "ENVELOPE(30.013108, 30.875309, 60.041712, 59.669749)", - "solr_year_i": 1834, - "solr_issued_dt": "2000-01-01T00:00:00Z" -} \ No newline at end of file + "id": "harvard-g7064-s2-1834-k3", + "gbl_wxsIdentifier_s": "cite:SDE2.G7064_S2_1834_K3", + "gbl_mdModified_dt": "2014-05-27T18:09:36Z", + "dcat_bbox": "ENVELOPE(30.013108, 30.875309, 60.041712, 59.669749)", + "locn_geometry": "ENVELOPE(30.013108, 30.875309, 60.041712, 59.669749)", + "gbl_indexYear_im": [1834], + "solr_issued_dt": "2000-01-01T00:00:00Z", + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Raster data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/part_of_collection.json b/spec/fixtures/solr_documents/part_of_collection.json index 96209618..13fa85f7 100644 --- a/spec/fixtures/solr_documents/part_of_collection.json +++ b/spec/fixtures/solr_documents/part_of_collection.json @@ -1,22 +1,18 @@ { - "dc_creator_sm": [ - "California. Metropolitan Transportation Commission" + "dct_creator_sm": ["California. Metropolitan Transportation Commission"], + "dct_description_sm": [ + "This line shapefile represents high-occupancy vehicle (HOV) lanes within the San Francisco Bay Area of California. An HOV lane (also known as carpool lane) is a restricted traffic lane reserved at peak travel times or longer for the exclusive use of vehicles with a driver and one or more passengers, including carpools, vanpools, and transit buses. This layer is part of the Bay Area Metropolitan Transportation Commission (MTC) GIS Maps and Data collection.This dataset is intended for researchers, students, and policy makers for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production, or to provide a basemap to support graphical overlays and analysis with other spatial data." ], - "dc_description_s": "This line shapefile represents high-occupancy vehicle (HOV) lanes within the San Francisco Bay Area of California. An HOV lane (also known as carpool lane) is a restricted traffic lane reserved at peak travel times or longer for the exclusive use of vehicles with a driver and one or more passengers, including carpools, vanpools, and transit buses. This layer is part of the Bay Area Metropolitan Transportation Commission (MTC) GIS Maps and Data collection.This dataset is intended for researchers, students, and policy makers for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production, or to provide a basemap to support graphical overlays and analysis with other spatial data.", - "dc_format_s": "Shapefile", - "dc_identifier_s": "http://purl.stanford.edu/mc977kq8162", - "dc_language_s": "English", - "dc_publisher_s": "California. Metropolitan Transportation Commission", - "dc_rights_s": "Public", - "dc_subject_sm": [ - "High occupancy vehicle lanes", - "Transportation" - ], - "dc_source_sm": ["stanford-bq589tv8583"], - "dc_title_s": "HOV Lanes, San Francisco Bay Area, 2002", - "dc_type_s": "Dataset", + "dct_format_s": "Shapefile", + "dct_identifier_sm": ["http://purl.stanford.edu/mc977kq8162"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["California. Metropolitan Transportation Commission"], + "dct_accessRights_s": "Public", + "dct_subject_sm": ["High occupancy vehicle lanes", "Transportation"], + "pcdm_memberOf_sm": ["stanford-bq589tv8583"], + "dct_title_s": "HOV Lanes, San Francisco Bay Area, 2002", "dct_issued_s": "2002", - "dct_provenance_s": "Stanford", + "schema_provider_s": "Stanford", "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/mc977kq8162\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:mc977kq8162/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/mc977kq8162.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"https://raw.githubusercontent.com/OpenGeoMetadata/edu.stanford.purl/master/mc/977/kq/8162/iso19139.xml\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", "dct_spatial_sm": [ "San Francisco Bay Area (Calif.)", @@ -30,16 +26,16 @@ "Marin County (Calif.)", "Alameda County (Calif.)" ], - "dct_temporal_sm": [ - "2002" - ], - "geoblacklight_version": "1.0", + "dct_temporal_sm": ["2002"], + "gbl_mdVersion_s": "Aardvark", "layer_availability_score_f": 1, - "layer_geom_type_s": "Line", - "layer_id_s": "druid:mc977kq8162", - "layer_modified_dt": "2016-02-04T00:03:29Z", - "layer_slug_s": "stanford-mc977kq8162", - "solr_geom": "ENVELOPE(-122.54625, -121.751457, 38.080099, 37.239303)", - "solr_year_i": 2002, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n\n" + "gbl_wxsIdentifier_s": "druid:mc977kq8162", + "gbl_mdModified_dt": "2016-02-04T00:03:29Z", + "id": "stanford-mc977kq8162", + "dcat_bbox": "ENVELOPE(-122.54625, -121.751457, 38.080099, 37.239303)", + "locn_geometry": "ENVELOPE(-122.54625, -121.751457, 38.080099, 37.239303)", + "gbl_indexYear_im": [2002], + "stanford_rights_metadata_s": "\u003c?xml version=\"1.0\"?\u003e\n\u003crightsMetadata\u003e\n \u003caccess type=\"discover\"\u003e\n \u003cmachine\u003e\n \u003cworld/\u003e\n \u003c/machine\u003e\n \u003c/access\u003e\n \u003caccess type=\"read\"\u003e\n \u003cmachine\u003e\n \u003cworld/\u003e\n \u003c/machine\u003e\n \u003c/access\u003e\n \u003cuse\u003e\n \u003chuman type=\"useAndReproduction\"\u003eThis item is in the public domain. There are no restrictions on use.\u003c/human\u003e\n \u003chuman type=\"creativeCommons\"/\u003e\n \u003cmachine type=\"creativeCommons\"/\u003e\n \u003c/use\u003e\n \u003ccopyright\u003e\n \u003chuman\u003eThis work is in the Public Domain, meaning that it is not subject to copyright.\u003c/human\u003e\n \u003c/copyright\u003e\n\u003c/rightsMetadata\u003e\n", + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Line data"] } diff --git a/spec/fixtures/solr_documents/public-stanford.json b/spec/fixtures/solr_documents/public-stanford.json index c3f54b22..b6d92485 100644 --- a/spec/fixtures/solr_documents/public-stanford.json +++ b/spec/fixtures/solr_documents/public-stanford.json @@ -1,39 +1,36 @@ { - "uuid":"http://purl.stanford.edu/cz128vq0535", - "dc_identifier_s":"http://purl.stanford.edu/cz128vq0535", - "dc_title_s":"2005 Rural Poverty GIS Database: Uganda", - "dc_description_s":"This polygon shapefile contains 2005 poverty data for 855 rural subcounties in Uganda. These data are intended for researchers, students, policy makers and the general public for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production.", - "dc_rights_s":"Public", - "dct_provenance_s":"Stanford", - "dct_references_s":"{\"http://schema.org/url\":\"http://purl.stanford.edu/cz128vq0535\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:cz128vq0535/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/cz128vq0535.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cz128vq0535/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cz128vq0535/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", - "layer_id_s":"druid:cz128vq0535", - "layer_slug_s":"stanford-cz128vq0535", - "layer_geom_type_s":"Polygon", - "layer_modified_dt":"2015-01-13T18:46:38Z", - "dc_format_s":"Shapefile", - "dc_language_s":"English", - "dc_type_s":"Dataset", - "dc_publisher_s":"Uganda Bureau of Statistics", - "dc_creator_sm":[ - "Uganda Bureau of Statistics" + "id": ["stanford-cz128vq0535"], + "dct_title_s": "2005 Rural Poverty GIS Database: Uganda", + "dct_description_sm": [ + "This polygon shapefile contains 2005 poverty data for 855 rural subcounties in Uganda.", + "These data are intended for researchers, students, policy makers and the general public for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production." ], - "dc_subject_sm":[ - "Poverty", - "Statistics" + "dct_language_sm": ["eng"], + "dct_creator_sm": ["Uganda Bureau of Statistics"], + "dct_publisher_sm": ["Uganda Bureau of Statistics"], + "dct_issued_s": "2005", + "dct_subject_sm": ["Poverty", "Statistics"], + "dct_spatial_sm": ["Uganda"], + "dct_temporal_sm": ["2005"], + "gbl_dateRange_drsim": ["[2005 TO 2005]"], + "gbl_indexYear_im": [2005], + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/cz128vq0535"], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "dct_format_s": "Shapefile", + "locn_geometry": "ENVELOPE(29.572742, 35.000308, 4.234077, -1.478794)", + "dcat_bbox": "ENVELOPE(29.572742, 35.000308, 4.234077, -1.478794)", + "pcdm_memberOf_sm": ["stanford-rb371kw9607"], + "dct_rights_sm": [ + "This item is in the public domain. There are no restrictions on use." ], - "dct_issued_s":"2005", - "dct_temporal_sm":[ - "2005" + "dct_rightsHolder_sm": [ + "This work is in the Public Domain, meaning that it is not subject to copyright." ], - "dct_spatial_sm":[ - "Uganda" - ], - "dc_relation_sm":[ - "http://sws.geonames.org/226074/about.rdf" - ], - "georss_box_s":"-1.478794 29.572742 4.234077 35.000308", - "georss_polygon_s":"-1.478794 29.572742 4.234077 29.572742 4.234077 35.000308 -1.478794 35.000308 -1.478794 29.572742", - "solr_geom":"ENVELOPE(29.572742, 35.000308, 4.234077, -1.478794)", - "solr_year_i":2005, - "stanford_rights_metadata_s": "<\/machine><\/access><\/machine><\/access>This item is in the public domain. There are no restrictions on use.<\/human>Attribution Share Alike 3.0 Unported<\/human>by-sa<\/machine><\/use>This work is in the Public Domain, meaning that it is not subject to copyright.<\/human><\/copyright><\/rightsMetadata>" -} \ No newline at end of file + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2022-04-27T07:27:29Z", + "gbl_mdVersion_s": "Aardvark", + "gbl_wxsIdentifier_s": "druid:cz128vq0535", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/cz128vq0535\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/cz128vq0535\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fcz128vq0535\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\"}" +} diff --git a/spec/fixtures/solr_documents/public_iiif_princeton.json b/spec/fixtures/solr_documents/public_iiif_princeton.json index 33b5beec..f1b5b7ab 100644 --- a/spec/fixtures/solr_documents/public_iiif_princeton.json +++ b/spec/fixtures/solr_documents/public_iiif_princeton.json @@ -1,37 +1,28 @@ { - "uuid": "http://arks.princeton.edu/ark:/88435/02870w62c", - "dc_description_s": "Partly colored. Relief shown pictorially. Shows administrative divisions. From Thomas Jefferys's The American atlas, or, A geographical description of the whole continent of America (London : Printed by R. Sayer and Bennett, 1778). Insets: A chart of the mouth of Hudson's River, from Sandy Hook to New York. A plan of the city of New York. Plan of Amboy, with its environs, from an actual survey.", - "dc_format_s": "Raster", - "dc_identifier_s": "http://arks.princeton.edu/ark:/88435/02870w62c", - "dc_language_s": "English", - "dc_publisher_s": "London, Robt. Sayer & John Bennett", - "dc_rights_s": "Public", - "dc_subject_sm": [ - "New York (State)‒Maps", - "New Jersey‒Maps" - ], - "dc_title_s": "The provinces of New York and New Jersey, with part of Pensilvania, and the Province of Quebec : drawn by Major Holland, Surveyor General, of the Northern District in America. Corrected and improved, from the original materials, by Governr. Pownall, Member of Parliament, 1776", - "dc_type_s": "Dataset", - "dc_creator_sm": [ - "Rogers, Henry Darwin", - "Pownall, Thomas" + "dct_description_sm": [ + "Partly colored. Relief shown pictorially. Shows administrative divisions. From Thomas Jefferys's The American atlas, or, A geographical description of the whole continent of America (London : Printed by R. Sayer and Bennett, 1778). Insets: A chart of the mouth of Hudson's River, from Sandy Hook to New York. A plan of the city of New York. Plan of Amboy, with its environs, from an actual survey." ], + "dct_format_s": "Raster", + "dct_identifier_sm": ["http://arks.princeton.edu/ark:/88435/02870w62c"], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["London, Robt. Sayer & John Bennett"], + "dct_accessRights_s": "Public", + "dct_subject_sm": ["New York (State)‒Maps", "New Jersey‒Maps"], + "dct_title_s": "The provinces of New York and New Jersey, with part of Pensilvania, and the Province of Quebec : drawn by Major Holland, Surveyor General, of the Northern District in America. Corrected and improved, from the original materials, by Governr. Pownall, Member of Parliament, 1776", + "dct_creator_sm": ["Rogers, Henry Darwin", "Pownall, Thomas"], "dct_references_s": "{\"http://schema.org/url\":\"http://arks.princeton.edu/ark:/88435/02870w62c\",\"http://schema.org/thumbnailUrl\":\"http://libimages.princeton.edu/loris2/pudl0076%2Fmap_pownall%2F00000001.jp2/full/50,/0/default.jpg\",\"http://iiif.io/api/image\":\"http://libimages.princeton.edu/loris2/pudl0076%2Fmap_pownall%2F00000001.jp2/info.json\"}", - "dct_spatial_sm": [ - "New York (State)", - "New Jersey", - "Pennsylvania" - ], - "dct_temporal_sm": [ - "1778" - ], + "dct_spatial_sm": ["New York (State)", "New Jersey", "Pennsylvania"], + "dct_temporal_sm": ["1778"], "dct_issued_s": "1778", - "dct_provenance_s": "Princeton", + "schema_provider_s": "Princeton", "georss_box_s": "38.6693 -76.3394 46.5798 -72.1916", - "layer_slug_s": "princeton-02870w62c", - "layer_id_s": "02870w62c", - "layer_geom_type_s": "Raster", - "layer_modified_dt": "2014-10-09T18:00:18Z", - "solr_geom": "ENVELOPE(-76.3394, -72.1916, 46.5798, 38.6693)", - "solr_year_i": 1778 -} \ No newline at end of file + "id": "princeton-02870w62c", + "gbl_wxsIdentifier_s": "02870w62c", + "gbl_mdModified_dt": "2014-10-09T18:00:18Z", + "dcat_bbox": "ENVELOPE(-76.3394, -72.1916, 46.5798, 38.6693)", + "locn_geometry": "ENVELOPE(-76.3394, -72.1916, 46.5798, 38.6693)", + "gbl_indexYear_im": [1778], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Raster data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/public_polygon_mit.json b/spec/fixtures/solr_documents/public_polygon_mit.json index 6c07b4bd..3f759b16 100644 --- a/spec/fixtures/solr_documents/public_polygon_mit.json +++ b/spec/fixtures/solr_documents/public_polygon_mit.json @@ -1,11 +1,12 @@ { - "uuid": "urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_E25ZCTA5DCT_2000", - "dc_format_s": "Shapefile", - "dc_identifier_s": "urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_E25ZCTA5DCT_2000", - "dc_language_s": "English", - "dc_publisher_s": "U.S. Census Bureau", - "dc_rights_s": "Public", - "dc_subject_sm": [ + "dct_format_s": "Shapefile", + "dct_identifier_sm": [ + "urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_E25ZCTA5DCT_2000" + ], + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["U.S. Census Bureau"], + "dct_accessRights_s": "Public", + "dct_subject_sm": [ "polygon", "Zip", "Code", @@ -19,26 +20,24 @@ "zip", "codes" ], - "dc_title_s": "Massachusetts (ZCTA - 5 digit zip code tabulation area, 2000)", - "dc_type_s": "Dataset", + "dct_title_s": "Massachusetts (ZCTA - 5 digit zip code tabulation area, 2000)", "dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://arrowsmith.mit.edu:8080/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://arrowsmith.mit.edu:8080/geoserver/wms\"}", - "dct_spatial_sm": [ - "Massachusetts MA USA" - ], - "dct_temporal_sm": [ - "2000" - ], + "dct_spatial_sm": ["Massachusetts MA USA"], + "dct_temporal_sm": ["2000"], "dct_issued_s": "2000", - "dct_provenance_s": "MIT", + "schema_provider_s": "MIT", "georss_box_s": "41.230345 -73.533237 42.888068 -69.898565", "georss_polygon_s": "42.888068 -73.533237 42.888068 -69.898565 41.230345 -69.898565 41.230345 -73.533237 42.888068 -73.533237", - "layer_slug_s": "mit-us-ma-e25zcta5dct-2000", - "layer_id_s": "sde:SDE_DATA.US_MA_E25ZCTA5DCT_2000", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2014-05-27T18:09:34Z", - "solr_geom": "ENVELOPE(-73.533237, -69.898565, 42.888068, 41.230345)", - "solr_year_i": 2000, + "id": "mit-us-ma-e25zcta5dct-2000", + "gbl_wxsIdentifier_s": "sde:SDE_DATA.US_MA_E25ZCTA5DCT_2000", + "gbl_mdModified_dt": "2014-05-27T18:09:34Z", + "dcat_bbox": "ENVELOPE(-73.533237, -69.898565, 42.888068, 41.230345)", + "locn_geometry": "ENVELOPE(-73.533237, -69.898565, 42.888068, 41.230345)", + "gbl_indexYear_im": [2000], "solr_issued_dt": "2000-01-01T00:00:00Z", "solr_wms_url": "http://arrowsmith.mit.edu:8080/geoserver/wms", - "solr_wfs_url": "http://arrowsmith.mit.edu:8080/geoserver/wfs" + "solr_wfs_url": "http://arrowsmith.mit.edu:8080/geoserver/wfs", + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" } diff --git a/spec/fixtures/solr_documents/restricted-line.json b/spec/fixtures/solr_documents/restricted-line.json index e375ecf5..34d18448 100644 --- a/spec/fixtures/solr_documents/restricted-line.json +++ b/spec/fixtures/solr_documents/restricted-line.json @@ -1,44 +1,39 @@ { - "uuid": "http://purl.stanford.edu/cg357zz0321", - "dc_identifier_s": "http://purl.stanford.edu/cg357zz0321", - "dc_title_s": "10 Meter Countours: Russian River Basin, California", - "dc_description_s": "This line shapefile contains contours that were derived from a mosiac of 10 meter digital elevation models for the extent of the Russian River basin, located in Sonoma and Mendocino Counties, California.This layer can be used for watershed analysis and planning in the Russian River region of California.", - "dc_rights_s": "Restricted", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/cg357zz0321\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:cg357zz0321/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/cg357zz0321.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cg357zz0321/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cg357zz0321/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://geowebservices-restricted.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://geowebservices-restricted.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:cg357zz0321", - "layer_slug_s": "stanford-cg357zz0321", - "layer_geom_type_s": "Line", - "layer_modified_dt": "2014-12-03T01:20:46Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Circuit Rider Productions", - "dc_creator_sm": [ + "id": ["stanford-cg357zz0321"], + "dct_title_s": "10 Meter Contours: Russian River Basin, California", + "dct_description_sm": [ + "This line shapefile contains contours that were derived from a mosiac of 10 meter digital elevation models for the extent of the Russian River basin, located in Sonoma and Mendocino Counties, California.", + "This layer can be used for watershed analysis and planning in the Russian River region of California.", + "This layer is presented in the WGS84 coordinate system for web display purposes. Downloadable data are provided in native coordinate system or projection." + ], + "dct_language_sm": ["eng"], + "dct_creator_sm": [ "United States. National Oceanic and Atmospheric Administration", "Circuit Rider Productions" ], - "dc_subject_sm": [ - "Contours (Cartography)", - "Elevation", - "Inland Waters" - ], - "dct_issued_s": "2003", - "dct_temporal_sm": [ - "2002" - ], - "dct_spatial_sm": [ - "Sonoma County (Calif.)", - "Mendocino County (Calif.)" - ], - "dc_relation_sm": [ - "http://sws.geonames.org/5397100/about.rdf", - "http://sws.geonames.org/5372163/about.rdf" + "dct_publisher_sm": ["Circuit Rider Productions"], + "dct_issued_s": "2002", + "dct_subject_sm": ["Contours (Cartography)", "Elevation", "Inland Waters"], + "dct_spatial_sm": ["Sonoma County (Calif.)", "Mendocino County (Calif.)"], + "dcat_theme_sm": ["Elevation", "Inland Waters"], + "dct_temporal_sm": ["2002"], + "gbl_dateRange_drsim": ["[2002 TO 2002]"], + "gbl_indexYear_im": [2002], + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/cg357zz0321"], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Line data"], + "dct_format_s": "Shapefile", + "locn_geometry": "ENVELOPE(-123.387366, -122.52958, 39.398403, 38.302994)", + "dcat_bbox": "ENVELOPE(-123.387366, -122.52958, 39.398403, 38.302994)", + "pcdm_memberOf_sm": ["stanford-zt526qk7324"], + "dct_rights_sm": [ + "These data are licensed by Stanford Libraries and are available to Stanford University affiliates only. Affiliates are limited to current faculty, staff and students. Non affiliates seeking access should contact the publisher directly. These data may not be reproduced or used for any purpose without permission." ], - "georss_box_s": "38.302994 -123.387366 39.398403 -122.52958", - "georss_polygon_s": "38.302994 -123.387366 39.398403 -123.387366 39.398403 -122.52958 38.302994 -122.52958 38.302994 -123.387366", - "solr_geom": "ENVELOPE(-123.387366, -122.52958, 39.398403, 38.302994)", - "solr_year_i": 2002, - "stanford_rights_metadata_s": "<\/machine><\/access>Stanford<\/group><\/machine><\/access>These data are licensed by Stanford Libraries and are available to Stanford University affiliates only. Affiliates are limited to current faculty, staff and students. These data may not be reproduced or used for any purpose without permission. For more information please contact brannerlibrary@stanford.edu.<\/human><\/use>Copyright ownership resides with the originator.<\/human><\/copyright><\/rightsMetadata>", - "layer_availability_score_f": 0.8 -} \ No newline at end of file + "dct_rightsHolder_sm": ["Copyright ownership resides with the originator."], + "dct_accessRights_s": "Restricted", + "gbl_mdModified_dt": "2022-04-27T02:34:01Z", + "gbl_mdVersion_s": "Aardvark", + "gbl_wxsIdentifier_s": "druid:cg357zz0321", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/cg357zz0321\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/cg357zz0321\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fcg357zz0321\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices-restricted.stanford.edu/geoserver/wms\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices-restricted.stanford.edu/geoserver/wfs\"}" +} diff --git a/spec/fixtures/solr_documents/stanford-dy750qs3024.json b/spec/fixtures/solr_documents/stanford-dy750qs3024.json index 40ae0a4c..bc525c81 100644 --- a/spec/fixtures/solr_documents/stanford-dy750qs3024.json +++ b/spec/fixtures/solr_documents/stanford-dy750qs3024.json @@ -1 +1,34 @@ -{"dc_identifier_s":"http://purl.stanford.edu/dy750qs3024","dc_title_s":"Tōa yochizu","dc_description_s":"Dai Nihon Teikoku Rikuchi Sokuryōbu. Relief shown by shading. Each sheet includes index to adjoining sheets. Title sheet includes legend. Various issues of some sheets. Covers Mongolia, China (Tibet not included), Russia, Central Asia. Some sheets are 1947 reprints by Kyodo Printing Co. Ltd. In Japanese. Gaihōzu. 大日本帝國陸地測量部.","dc_rights_s":"Public","layer_geom_type_s":"Image","layer_modified_dt":"2021-02-12T21:38:15Z","dct_issued_s":"Meiji 30 [1896]-","dc_type_s":"Image","dc_format_s":"JPEG 2000","dc_language_s":"Japanese","dct_spatial_sm":["Asia","East Asia"],"dc_publisher_s":"Dai Nihon Teikoku Rikuchi Sokuryōbu","dc_creator_sm":["Japan Rikuchi Sokuryōbu","Japan 陸地測量部"],"layer_availability_score_f":1.0,"geoblacklight_version":"1.0","dct_references_s":"{\"http://schema.org/url\":\"https://purl.stanford.edu/dy750qs3024\",\"http://www.loc.gov/mods/v3\":\"https://purl.stanford.edu/dy750qs3024.mods\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?\u0026hide_title=true\u0026url=https://purl.stanford.edu/dy750qs3024\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dy750qs3024/iiif/manifest\"}","solr_geom":"ENVELOPE(50.0, 160.0, 60.0, 20.0)","layer_slug_s":"stanford-dy750qs3024","layer_id_s":"druid:dy750qs3024","hashed_id_ssi":"1334afcfd71d0a5342fa0a7f1fa123f8","dct_provenance_s":"Stanford","stanford_rights_metadata_s":"\u003crightsMetadata\u003e\n \u003ccopyright\u003e\n \u003chuman type=\"copyright\"\u003eProperty rights reside with the repository. Copyright © Stanford University. All Rights Reserved.\u003c/human\u003e\n \u003c/copyright\u003e\n \u003caccess type=\"discover\"\u003e\n \u003cmachine\u003e\n \u003cworld/\u003e\n \u003c/machine\u003e\n \u003c/access\u003e\n \u003caccess type=\"read\"\u003e\n \u003cmachine\u003e\n \u003cworld/\u003e\n \u003c/machine\u003e\n \u003c/access\u003e\n \u003cuse\u003e\n \u003chuman type=\"useAndReproduction\"\u003eImage from the Map Collections courtesy Stanford University Libraries. If you have questions, please contact the Branner Earth Science Library \u0026amp; Map Collections at brannerlibrary@stanford.edu.\u003c/human\u003e\n \u003cmachine type=\"creativeCommons\"\u003eby-nc\u003c/machine\u003e\n \u003chuman type=\"creativeCommons\"\u003eAttribution Non-Commercial 3.0 Unported\u003c/human\u003e\n \u003c/use\u003e\n \u003c/rightsMetadata\u003e","stanford_license_s":"\u003cdiv class='cc-by-nc'\u003e\u003ca href='http://creativecommons.org/licenses/by-nc/3.0/'\u003eThis work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License\u003c/a\u003e\u003c/div\u003e","stanford_use_and_reproduction_s":"Image from the Map Collections courtesy Stanford University Libraries. If you have questions, please contact the Branner Earth Science Library \u0026 Map Collections at brannerlibrary@stanford.edu.","stanford_copyright_s":"Property rights reside with the repository. Copyright © Stanford University. All Rights Reserved.","solr_year_i":1896,"timestamp":"2021-06-15T17:09:29.938Z"} +{ + "id": ["stanford-dy750qs3024"], + "dct_title_s": "Tōa yochizu", + "dct_description_sm": [ + "Relief shown by shading.", + "Each sheet includes index to adjoining sheets.", + "Title sheet includes legend.", + "Various issues of some sheets.", + "Covers Mongolia, China (Tibet not included), Russia, Central Asia.", + "Some sheets are 1947 reprints by Kyodo Printing Co. Ltd.", + "In Japanese." + ], + "dct_language_sm": ["jpn"], + "dct_spatial_sm": ["Asia", "East Asia"], + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/dy750qs3024"], + "gbl_resourceClass_sm": ["Maps"], + "dct_format_s": "JPEG2000", + "locn_geometry": "ENVELOPE(50.0, 160.0, 60.0, 20.0)", + "dcat_bbox": "ENVELOPE(50.0, 160.0, 60.0, 20.0)", + "dct_rights_sm": [ + "Image from the Map Collections courtesy Stanford University Libraries. If you have questions, please contact the Branner Earth Science Library & Map Collections at brannerlibrary@stanford.edu." + ], + "dct_rightsHolder_sm": [ + "Property rights reside with the repository. Copyright © Stanford University. All Rights Reserved." + ], + "dct_license_sm": [ + "https://creativecommons.org/licenses/by-nc/3.0/legalcode" + ], + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2012-05-06T01:47:02Z", + "gbl_mdVersion_s": "Aardvark", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/dy750qs3024\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/dy750qs3024\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fdy750qs3024\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dy750qs3024/iiif3/manifest\"}" +} diff --git a/spec/fixtures/solr_documents/stanford-paper-map.json b/spec/fixtures/solr_documents/stanford-paper-map.json index dc723cc2..82d3016e 100644 --- a/spec/fixtures/solr_documents/stanford-paper-map.json +++ b/spec/fixtures/solr_documents/stanford-paper-map.json @@ -1,27 +1,21 @@ { - "dc_identifier_s": "http://purl.stanford.edu/dt131hw5005", - "dc_title_s": "Buffer Zone Study, Stanford University. Eldridge T. Spencer. 1955", - "dc_description_s": "Stanford University campus buffer zone study prepared by the Stanford University Planning Office. Digitized by Stanford University Libraries.", - "dc_rights_s": "Public", - "layer_geom_type_s": "Image", - "dc_type_s": "Image", - "dc_format_s": "JPEG 2000", - "dc_language_s": "English", - "dc_subject_sm": [ - "Stanford University Lands", - "Stanford University Campus" + "dct_identifier_sm": ["http://purl.stanford.edu/dt131hw5005"], + "dct_title_s": "Buffer Zone Study, Stanford University. Eldridge T. Spencer. 1955", + "dct_description_sm": [ + "Stanford University campus buffer zone study prepared by the Stanford University Planning Office. Digitized by Stanford University Libraries." ], - "dct_spatial_sm": [ - "Palo Alto (Calif.)", - "Stanford (Calif.)" - ], - "dc_creator_sm": [ - "Spencer, Eldridge T" - ], - "geoblacklight_version": "1.0", + "dct_accessRights_s": "Public", + "dct_format_s": "JPEG 2000", + "dct_language_sm": ["eng"], + "dct_subject_sm": ["Stanford University Lands", "Stanford University Campus"], + "dct_spatial_sm": ["Palo Alto (Calif.)", "Stanford (Calif.)"], + "dct_creator_sm": ["Spencer, Eldridge T"], + "gbl_mdVersion_s": "Aardvark", "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/dt131hw5005\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?&hide_title=true&url=https://purl.stanford.edu/dt131hw5005\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dt131hw5005/iiif/manifest\"}", - "solr_geom": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", - "layer_slug_s": "stanford-dt131hw5005", - "dct_provenance_s": "Stanford", - "stanford_rights_metadata_s": "\n \n \n \n \n \n \n \n \n \n \n \n Property rights reside with the repository. Literary rights reside with the creators of the documents or their heirs. To obtain permission to publish or reproduce, please contact the Public Services Librarian of the Dept. of Special Collections (http://library.stanford.edu/spc).\n \n \n \n \n \n " + "dcat_bbox": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "locn_geometry": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "id": "stanford-dt131hw5005", + "schema_provider_s": "Stanford", + "stanford_rights_metadata_s": "\n \n \n \n \n \n \n \n \n \n \n \n Property rights reside with the repository. Literary rights reside with the creators of the documents or their heirs. To obtain permission to publish or reproduce, please contact the Public Services Librarian of the Dept. of Special Collections (http://library.stanford.edu/spc).\n \n \n \n \n \n ", + "gbl_resourceClass_sm": ["Imagery"] } diff --git a/spec/fixtures/solr_documents/stanford-ts545zc6250.json b/spec/fixtures/solr_documents/stanford-ts545zc6250.json index 3d349413..82d3016e 100644 --- a/spec/fixtures/solr_documents/stanford-ts545zc6250.json +++ b/spec/fixtures/solr_documents/stanford-ts545zc6250.json @@ -1,38 +1,21 @@ { - "geoblacklight_version": "1.0", - "dc_identifier_s": "http://purl.stanford.edu/ts545zc6250", - "dc_title_s": "Chōsen Gomanbunnoichi Zu, Maps Index", - "dc_description_s": "This polygon shapefile is an index to 1:50,000 scale maps of North Korea, titled 'Chosen 1:50,000 Chikeizu.' This map series was originally produced by the Japanese Land Survey Department of the General Staff Headquarters between 1916 and 1918. Stanford University Libraries holds a large collection of Japanese military and imperial maps, referred to as gaihōzu, or \"maps of outer lands.\" These maps were produced starting in the early Meiji (1868-1912) era and the end of World War II by the Land Survey Department of the General Staff Headquarters, the former Japanese Army. The Library is in the process of scanning and making available all of the maps in the collection. To create this index, footprints were generated using the fishnet tool, and metadata were supplied for the digitized paper maps by Stanford University Libraries. After the footprints were created, the shapefile was trimmed and labeled according to the sources.This layer provides an index map that can be used to locate individual scanned map sheets.", - "dc_rights_s": "Public", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/ts545zc6250\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:ts545zc6250/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/ts545zc6250.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"https://raw.githubusercontent.com/OpenGeoMetadata/edu.stanford.purl/master/ts/545/zc/6250/iso19139.xml\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\",\"https://openindexmaps.org\":\"https://stacks.stanford.edu/file/druid:ts545zc6250/index_map.json\"}", - "layer_id_s": "druid:ts545zc6250", - "layer_slug_s": "stanford-ts545zc6250", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2018-01-25T20:31:47Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Stanford Digital Repository", - "dc_creator_sm": [ - "Stanford Geospatial Center" + "dct_identifier_sm": ["http://purl.stanford.edu/dt131hw5005"], + "dct_title_s": "Buffer Zone Study, Stanford University. Eldridge T. Spencer. 1955", + "dct_description_sm": [ + "Stanford University campus buffer zone study prepared by the Stanford University Planning Office. Digitized by Stanford University Libraries." ], - "dc_subject_sm": [ - "Military maps", - "Topographic maps", - "Grids (Cartography)", - "Index maps", - "Boundaries", - "Military" - ], - "dct_issued_s": "2016", - "dct_temporal_sm": [ - "1916-1918" - ], - "dct_spatial_sm": [ - "Korea (North)" - ], - "solr_geom": "ENVELOPE(124, 130, 42.666667, 38)", - "solr_year_i": 1916, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n\n" + "dct_accessRights_s": "Public", + "dct_format_s": "JPEG 2000", + "dct_language_sm": ["eng"], + "dct_subject_sm": ["Stanford University Lands", "Stanford University Campus"], + "dct_spatial_sm": ["Palo Alto (Calif.)", "Stanford (Calif.)"], + "dct_creator_sm": ["Spencer, Eldridge T"], + "gbl_mdVersion_s": "Aardvark", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/dt131hw5005\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?&hide_title=true&url=https://purl.stanford.edu/dt131hw5005\",\"http://iiif.io/api/presentation#manifest\":\"https://purl.stanford.edu/dt131hw5005/iiif/manifest\"}", + "dcat_bbox": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "locn_geometry": "ENVELOPE(-122.191292, -122.149475, 37.4435369, 37.4063388)", + "id": "stanford-dt131hw5005", + "schema_provider_s": "Stanford", + "stanford_rights_metadata_s": "\n \n \n \n \n \n \n \n \n \n \n \n Property rights reside with the repository. Literary rights reside with the creators of the documents or their heirs. To obtain permission to publish or reproduce, please contact the Public Services Librarian of the Dept. of Special Collections (http://library.stanford.edu/spc).\n \n \n \n \n \n ", + "gbl_resourceClass_sm": ["Imagery"] } diff --git a/spec/fixtures/solr_documents/stanford_index_map.json b/spec/fixtures/solr_documents/stanford_index_map.json index 076e6cde..efb60650 100644 --- a/spec/fixtures/solr_documents/stanford_index_map.json +++ b/spec/fixtures/solr_documents/stanford_index_map.json @@ -1,23 +1,20 @@ { - "uuid": "http://purl.stanford.edu/vj008bs4183", - "dc_identifier_s": "http://purl.stanford.edu/vj008bs4183", - "dc_title_s": "Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu, Maps Index", - "dc_description_s": "This polygon shapefile is an index to 1:100,000 scale topographic maps of Northern China, titled 'Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu.' This map series was originally produced by the Japanese Land Survey Department of the General Staff Headquarters between 1940 and 1944. Stanford University Libraries holds a large collection of Japanese military and imperial maps, referred to as gaihōzu, or \"maps of outer lands.\" These maps were produced starting in the early Meiji (1868-1912) era and the end of World War II by the Land Survey Department of the General Staff Headquarters, the former Japanese Army. The Library is in the process of scanning and making available all of the maps in the collection. To create this index, footprints were generated using the fishnet tool, and metadata were supplied for the digitized paper maps by Stanford University Libraries. After the footprints were created, the shapefile was trimmed and labeled according to the sources.This layer provides an index map that can be used to locate individual scanned map sheets.", - "dc_rights_s": "Public", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/vj008bs4183\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:vj008bs4183/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/vj008bs4183.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:vj008bs4183", - "layer_slug_s": "stanford-vj008bs4183", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2016-07-08T16:08:20Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Stanford Digital Repository", - "dc_creator_sm": [ - "Stanford Geospatial Center" + "dct_identifier_sm": ["http://purl.stanford.edu/vj008bs4183"], + "dct_title_s": "Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu, Maps Index", + "dct_description_sm": [ + "This polygon shapefile is an index to 1:100,000 scale topographic maps of Northern China, titled 'Yōzu (Kūchū shashin sokuryō) Kita Shina jūmanbun no ichi zu.' This map series was originally produced by the Japanese Land Survey Department of the General Staff Headquarters between 1940 and 1944. Stanford University Libraries holds a large collection of Japanese military and imperial maps, referred to as gaihōzu, or \"maps of outer lands.\" These maps were produced starting in the early Meiji (1868-1912) era and the end of World War II by the Land Survey Department of the General Staff Headquarters, the former Japanese Army. The Library is in the process of scanning and making available all of the maps in the collection. To create this index, footprints were generated using the fishnet tool, and metadata were supplied for the digitized paper maps by Stanford University Libraries. After the footprints were created, the shapefile was trimmed and labeled according to the sources.This layer provides an index map that can be used to locate individual scanned map sheets." ], - "dc_subject_sm": [ + "dct_accessRights_s": "Public", + "schema_provider_s": "Stanford", + "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/vj008bs4183\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:vj008bs4183/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/vj008bs4183.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:vj008bs4183/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", + "gbl_wxsIdentifier_s": "druid:vj008bs4183", + "id": "stanford-vj008bs4183", + "gbl_mdModified_dt": "2016-07-08T16:08:20Z", + "dct_format_s": "Shapefile", + "dct_language_sm": ["eng"], + "dct_publisher_sm": ["Stanford Digital Repository"], + "dct_creator_sm": ["Stanford Geospatial Center"], + "dct_subject_sm": [ "Grids (Cartography)", "Index maps", "World War, 1939-1945", @@ -26,13 +23,13 @@ "Boundaries", "Military" ], - "dct_temporal_sm": [ - "1940-1944" - ], - "dct_spatial_sm": [ - "China" - ], - "solr_geom": "ENVELOPE(108.000122, 116.500122, 41.666687, 39.000122)", - "solr_year_i": 1940, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n This item is in the public domain. There are no restrictions on use.\n \n \n \n \n This work is in the Public Domain, meaning that it is not subject to copyright.\n \n\n" -} \ No newline at end of file + "dct_temporal_sm": ["1940-1944"], + "dct_spatial_sm": ["China"], + "dcat_bbox": "ENVELOPE(108.000122, 116.500122, 41.666687, 39.000122)", + "locn_geometry": "ENVELOPE(108.000122, 116.500122, 41.666687, 39.000122)", + "gbl_indexYear_im": [1940], + "stanford_rights_metadata_s": "This item is in the public domain. There are no restrictions on use.Attribution Share Alike 3.0 Unportedby-saThis work is in the Public Domain, meaning that it is not subject to copyright.", + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "gbl_mdVersion_s": "Aardvark" +} diff --git a/spec/fixtures/solr_documents/stanford_odbl.json b/spec/fixtures/solr_documents/stanford_odbl.json index f599603b..be2fb146 100644 --- a/spec/fixtures/solr_documents/stanford_odbl.json +++ b/spec/fixtures/solr_documents/stanford_odbl.json @@ -1,39 +1,44 @@ { - "uuid": "http://purl.stanford.edu/cj936rq6257", - "dc_identifier_s": "http://purl.stanford.edu/cj936rq6257", - "dc_title_s": "Vasserot Arrondissements (1810-1836)", - "dc_description_s": "This polygon shapefile contains the boundaries of 12 arrondissements in Paris, France, as represented in Philibert Vasserot's Atlas of Paris (1810-1836). This layer covers the whole of Paris (including the Seine) up to the boundary of the Farmers General.The ALPAGE programme aims to provide collaborative tools for the Humanities and Social Sciences and for Information Communication Technology (ICT) allowing for the development of research about the Parisian urban area. This aim is achieved by means of a GIS that includes cadastral and historical layers.", - "dc_rights_s": "Public", - "dct_provenance_s": "Stanford", - "dct_references_s": "{\"http://schema.org/url\":\"http://purl.stanford.edu/cj936rq6257\",\"http://schema.org/downloadUrl\":\"http://stacks.stanford.edu/file/druid:cj936rq6257/data.zip\",\"http://www.loc.gov/mods/v3\":\"http://purl.stanford.edu/cj936rq6257.mods\",\"http://www.isotc211.org/schemas/2005/gmd/\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cj936rq6257/iso19139.xml\",\"http://www.w3.org/1999/xhtml\":\"http://opengeometadata.stanford.edu/metadata/edu.stanford.purl/druid:cj936rq6257/default.html\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\"}", - "layer_id_s": "druid:cj936rq6257", - "layer_slug_s": "stanford-cj936rq6257", - "layer_geom_type_s": "Polygon", - "layer_modified_dt": "2017-08-31T20:45:43Z", - "dc_format_s": "Shapefile", - "dc_language_s": "English", - "dc_type_s": "Dataset", - "dc_publisher_s": "Analyse Diachronique de l'espace Urbain Parisien: Approche Geomatique", - "dc_creator_sm": [ - "Bethe, Anne-Laure" + "id": ["stanford-cj936rq6257"], + "dct_title_s": "Vasserot Arrondissements (1810-1836)", + "dct_description_sm": [ + "This polygon shapefile contains the boundaries of 12 arrondissements in Paris, France, as represented in Philibert Vasserot's Atlas of Paris (1810-1836). This layer covers the whole of Paris (including the Seine) up to the boundary of the Farmers General.", + "The ALPAGE programme aims to provide collaborative tools for the Humanities and Social Sciences and for Information Communication Technology (ICT) allowing for the development of research about the Parisian urban area. This aim is achieved by means of a GIS that includes cadastral and historical layers.", + "This data is a direct result of the work of the researchers from the ALPAGE consortium who released this data under an Open Data Commons Open Database Licence (ODbL). Therefore, use of this data by others must respect the legal requirements specific to this licence. All freely downloadable data contains the shapefiles, metadata file and licence files describing the users rights and responsibilities. All data produced within the consortium is published in this way with the exception of any ongoing work which is in process of academic evaluation (masters, doctoral thesis, habilitation to supervise research).", + "This layer is presented in the WGS84 coordinate system for web display purposes. Downloadable data are provided in native coordinate system or projection." ], - "dc_subject_sm": [ - "Administrative and political divisions", - "Boundaries" + "dct_language_sm": ["fre"], + "dct_creator_sm": ["Bethe, Anne-Laure"], + "dct_publisher_sm": [ + "Analyse Diachronique de l'espace Urbain Parisien: Approche Geomatique" ], "dct_issued_s": "2015", - "dct_temporal_sm": [ - "1810-1836" + "dct_subject_sm": ["Administrative and political divisions", "Boundaries"], + "dct_spatial_sm": ["Paris (France)"], + "dcat_theme_sm": ["Boundaries"], + "dct_temporal_sm": ["1810-1836"], + "gbl_dateRange_drsim": ["[1810 TO 1836]"], + "gbl_indexYear_im": [ + 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, + 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, + 1834, 1835, 1836 ], - "dct_spatial_sm": [ - "Paris (France)" + "schema_provider_s": "Stanford", + "dct_identifier_sm": ["https://purl.stanford.edu/cj936rq6257"], + "gbl_resourceClass_sm": ["Datasets"], + "gbl_resourceType_sm": ["Polygon data"], + "dct_format_s": "Shapefile", + "locn_geometry": "ENVELOPE(2.287239, 2.402833, 48.884585, 48.829617)", + "dcat_bbox": "ENVELOPE(2.287239, 2.402833, 48.884585, 48.829617)", + "pcdm_memberOf_sm": ["stanford-zp399nk6394"], + "dct_rights_sm": [ + "This data is a direct result of the work of the researchers from the ALPAGE consortium who released this data under an Open Data Commons Open Database Licence (ODbL). Therefore, use of this data by others must respect the legal requirements specific to this licence. All freely downloadable data contains the shapefiles, metadata file and licence files describing the users rights and responsibilities. All data produced within the consortium is published in this way with the exception of any ongoing work which is in process of academic evaluation (masters, doctoral thesis, habilitation to supervise research)." ], - "dc_relation_sm": [ - "http://sws.geonames.org/2988507/" - ], - "georss_box_s": "48.829617 2.287239 48.884585 2.402833", - "georss_polygon_s": "48.829617 2.287239 48.884585 2.287239 48.884585 2.402833 48.829617 2.402833 48.829617 2.287239", - "solr_geom": "ENVELOPE(2.287239, 2.402833, 48.884585, 48.829617)", - "solr_year_i": 1810, - "stanford_rights_metadata_s": "\n\n \n \n \n \n \n \n \n \n \n \n \n Open Data Commons Open Database License 1.0\n odc-odbl\n This data is a direct result of the work of the researchers from the ALPAGE consortium who released this data under an Open Data Commons Open Database Licence (ODbL). Therefore, use of this data by others must respect the legal requirements specific to this licence. All freely downloadable data contains the shapefiles, metadata file and licence files describing the users rights and responsibilities. All data produced within the consortium is published in this way with the exception of any ongoing work which is in process of academic evaluation (masters, doctoral thesis, habilitation to supervise research).\n \n \n Copyright resides with the originator.\n \n\n" + "dct_rightsHolder_sm": ["Copyright resides with the originator."], + "dct_license_sm": ["https://opendatacommons.org/licenses/odbl/1-0/"], + "dct_accessRights_s": "Public", + "gbl_mdModified_dt": "2022-04-27T03:24:46Z", + "gbl_mdVersion_s": "Aardvark", + "gbl_wxsIdentifier_s": "druid:cj936rq6257", + "dct_references_s": "{\"http://schema.org/url\":\"https://purl.stanford.edu/cj936rq6257\",\"http://schema.org/downloadUrl\":\"https://stacks.stanford.edu/object/cj936rq6257\",\"https://oembed.com\":\"https://purl.stanford.edu/embed.json?hide_title=true\\u0026url=https%3A%2F%2Fpurl.stanford.edu%2Fcj936rq6257\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://geowebservices.stanford.edu/geoserver/wms\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://geowebservices.stanford.edu/geoserver/wfs\"}" } diff --git a/spec/integration/external-data/author_search_spec.rb b/spec/integration/external-data/author_search_spec.rb deleted file mode 100644 index 34e3c6cd..00000000 --- a/spec/integration/external-data/author_search_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rails_helper' - -describe 'Author search', :'data-integration', :feature do - it 'returns 1 result for pinsky' do - visit root_path - fill_in 'q', with: 'pinsky' - click_on 'search' - expect(page).to have_css '.document', count: 1 - within '.document' do - expect(page).to have_link 'Abundance Estimates of the Pacific Salmon Conservation Assessment Database, 1978-2008' - end - end -end diff --git a/spec/integration/external-data/geo_search_spec.rb b/spec/integration/external-data/geo_search_spec.rb deleted file mode 100644 index 93a0b1f2..00000000 --- a/spec/integration/external-data/geo_search_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require 'rails_helper' - -describe 'Spatial search', :'data-integration', :feature do - it 'isWithin should be more relevant' do - visit search_catalog_path(q: 'road', bbox: '61.34 2.11 92 40.45') - expect(page).to have_css 'h3.index_title', text: '1. Roads: Badakhshān Pr' \ - 'ovince, Afghanistan, 2005' - end -end diff --git a/spec/lib/earthworks/harvester_spec.rb b/spec/lib/earthworks/harvester_spec.rb index 03c7e6c5..70460ee3 100644 --- a/spec/lib/earthworks/harvester_spec.rb +++ b/spec/lib/earthworks/harvester_spec.rb @@ -60,11 +60,11 @@ describe '#docs_to_index' do # Provenance value will be transformed by our ogm_repos config - let(:psu_doc) { { dct_provenance_s: 'Pennsylvania State University', geoblacklight_version: '1.0' }.to_json } + let(:psu_doc) { { schema_provider_s: 'Pennsylvania State University', geoblacklight_version: '1.0' }.to_json } let(:psu_path) { "#{ogm_path}/edu.psu/metadata-1.0/Maps/08d-01/geoblacklight.json" } # PolicyMap records have placeholder data and should be skipped - let(:policymap_doc) { { dct_provenance_s: 'Geoblacklight', geoblacklight_version: '1.0' }.to_json } + let(:policymap_doc) { { schema_provider_s: 'Geoblacklight', geoblacklight_version: '1.0' }.to_json } let(:policymap_path) { "#{ogm_path}/shared-repository/gbl-policymap/records/geoblacklight.json" } before do diff --git a/spec/models/concerns/geomonitor_concern_spec.rb b/spec/models/concerns/geomonitor_concern_spec.rb index f2428efb..beefe9dc 100644 --- a/spec/models/concerns/geomonitor_concern_spec.rb +++ b/spec/models/concerns/geomonitor_concern_spec.rb @@ -7,8 +7,8 @@ describe 'for Stanford resources' do let(:document_attributes) do { - dct_provenance_s: 'Stanford', - dc_rights_s: 'Restricted' + schema_provider_s: 'Stanford', + dct_accessRights_s: 'Restricted' } end @@ -20,8 +20,8 @@ describe 'for resources less than threshold tolerance' do let(:document_attributes) do { - dct_provenance_s: 'Harvard', - dc_rights_s: 'Restricted', + schema_provider_s: 'Harvard', + dct_accessRights_s: 'Restricted', layer_availability_score_f: 0.6 } end diff --git a/spec/models/concerns/wms_rewrite_concern_spec.rb b/spec/models/concerns/wms_rewrite_concern_spec.rb index d5d22175..05ac356c 100644 --- a/spec/models/concerns/wms_rewrite_concern_spec.rb +++ b/spec/models/concerns/wms_rewrite_concern_spec.rb @@ -7,8 +7,8 @@ describe 'for stanford restricted' do let(:document_attributes) do { - dct_provenance_s: 'Stanford', - dc_rights_s: 'Restricted', + schema_provider_s: 'Stanford', + dct_accessRights_s: 'Restricted', dct_references_s: { 'http://www.opengis.net/def/serviceType/ogc/wms' => 'http://www.example.com/geoserver/wms' }.to_json @@ -23,8 +23,8 @@ describe 'for not stanford or public' do let(:document_attributes) do { - dct_provenance_s: 'Princeton', - dc_rights_s: 'Restricted', + schema_provider_s: 'Princeton', + dct_accessRights_s: 'Restricted', dct_references_s: { 'http://www.opengis.net/def/serviceType/ogc/wms' => 'http://www.example.com/geoserver/wms' }.to_json @@ -37,27 +37,9 @@ end end - describe 'is_stanford_restricted?' do - describe 'for Stanford and Restricted' do - let(:document_attributes) { { dct_provenance_s: 'Stanford', dc_rights_s: 'Restricted' } } - - it 'identifies restricted stanford documents' do - expect(document.is_stanford_restricted?).to be_truthy - end - end - - describe 'for Stanford public' do - let(:document_attributes) { { dct_provenance_s: 'Stanford', dc_rights_s: 'Public' } } - - it 'requires both conditions' do - expect(document.is_stanford_restricted?).to be_falsey - end - end - end - describe 'stanford?' do describe 'for stanford' do - let(:document_attributes) { { dct_provenance_s: 'Stanford' } } + let(:document_attributes) { { schema_provider_s: 'Stanford' } } it 'identifies stanford documents' do expect(document.stanford?).to be_truthy @@ -65,7 +47,7 @@ end describe 'for non stanford' do - let(:document_attributes) { { dct_provenance_s: 'Princeton' } } + let(:document_attributes) { { schema_provider_s: 'Princeton' } } it 'identifies stanford documents' do expect(document.stanford?).to be_falsey diff --git a/spec/models/search_builder_spec.rb b/spec/models/search_builder_spec.rb deleted file mode 100644 index 6b764532..00000000 --- a/spec/models/search_builder_spec.rb +++ /dev/null @@ -1,72 +0,0 @@ -require 'rails_helper' - -describe SearchBuilder do - subject { search_builder.with(user_params) } - - let(:user_params) { {} } - let(:solr_params) { {} } - let(:blacklight_config) { CatalogController.blacklight_config.deep_copy } - let(:context) { CatalogController.new } - - let(:search_builder) { described_class.new(context) } - - describe '#add_spatial_params' do - it 'returns the solr_params when no bbox is given' do - expect(subject.add_spatial_params(solr_params)).to eq solr_params - end - - it 'returns a spatial search if bbox is given' do - params = { bbox: '-180 -80 120 80' } - subject.with(params) - expect(subject.add_spatial_params(solr_params)[:fq].to_s) - .to include('Intersects') - expect(subject.add_spatial_params(solr_params)[:bq].to_s) - .to match(/.*IsWithin.*\^300/) - end - end - - describe '#add_featured_content' do - context 'scanned maps' do - it do - params = { featured: 'scanned_maps' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - 'layer_geom_type_s:Image OR layer_geom_type_s:"Paper Map"' - ] - end - end - - context 'geospatial data' do - it do - params = { featured: 'geospatial_data' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - '-layer_geom_type_s:Image AND -layer_geom_type_s:"Paper Map" AND -la' \ - 'yer_geom_type_s:Mixed AND -layer_geom_type_s:Table' - ] - end - end - - context 'census data' do - it do - params = { featured: 'census_data' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - 'dc_title_ti:census OR dc_description_ti:census OR dc_publisher_ti:c' \ - 'ensus OR dc_subject_tmi:census' - ] - end - end - - context 'california data' do - it do - params = { featured: 'california_data' } - subject.with(params) - expect(subject.add_featured_content(solr_params)[:fq]).to eq [ - 'dc_title_ti:california OR dc_description_ti:california OR dc_publis' \ - 'her_ti:california OR dc_subject_tmi:california' - ] - end - end - end -end From 0688723c7c26bb9bac65a94d84feb8c9bf0cf5a6 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Tue, 4 Jun 2024 11:51:46 -0700 Subject: [PATCH 02/18] Disable geo_monitor until it gains GeoBlacklight v4 compatibility See https://github.com/geoblacklight/geo_monitor/issues/12 --- Gemfile | 4 ++- Gemfile.lock | 9 ------ app/controllers/catalog_controller.rb | 30 +++++++++---------- app/jobs/check_layer_job.rb | 1 + app/models/solr_document.rb | 3 +- config/application.rb | 8 +++-- config/schedule.rb | 20 +++++++------ spec/factories/layer.rb | 7 +++-- spec/features/unavailable_layer_spec.rb | 2 +- spec/jobs/check_layer_job_spec.rb | 2 +- .../concerns/geomonitor_concern_spec.rb | 8 ++--- 11 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Gemfile b/Gemfile index cefbf3bf..a3f70c20 100644 --- a/Gemfile +++ b/Gemfile @@ -83,7 +83,9 @@ gem 'newrelic_rpm' gem 'twitter-typeahead-rails' gem 'blacklight_range_limit', '~> 7.0' gem 'redis', '~> 5.0' -gem 'geo_monitor', '~> 0.7', github: 'geoblacklight/geo_monitor' +# Not compatible with GeoBlacklight 4.x +# https://github.com/geoblacklight/geo_monitor/issues/12 +# gem 'geo_monitor', '~> 0.7', github: 'geoblacklight/geo_monitor' gem 'geo_combine', '>= 0.9' # For OpenGeoMetadata indexing gem 'sidekiq', '~> 7.0' gem 'whenever', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 37a29204..da7f9e77 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,3 @@ -GIT - remote: https://github.com/geoblacklight/geo_monitor.git - revision: 28d61996677292730a9285f5686e4f5a193c8fae - specs: - geo_monitor (0.8.0) - faraday - rails (>= 6.1, < 7.2) - GEM remote: https://rubygems.org/ specs: @@ -580,7 +572,6 @@ DEPENDENCIES factory_bot_rails (~> 6.2.0) faraday (~> 2.0) geo_combine (>= 0.9) - geo_monitor (~> 0.7)! geoblacklight (~> 4.3.0) honeybadger http diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index 29cadf73..b6778b71 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -1,7 +1,6 @@ require 'blacklight/catalog' require 'legacy_id_map' -# rubocop:disable Metrics/ClassLength class CatalogController < ApplicationController include BlacklightRangeLimit::ControllerOverride include Blacklight::Catalog @@ -102,19 +101,21 @@ class CatalogController < ApplicationController } config.add_facet_field Settings.FIELDS.ACCESS_RIGHTS, label: 'Access', limit: 8, item_component: Geoblacklight::IconFacetItemComponent - config.add_facet_field 'availability', - label: 'Availability', - query: { - available: { - label: 'Available', - fq: "(layer_availability_score_f:[#{Settings.GEOMONITOR_TOLERANCE} TO 1])" - }, - unavailable: { - label: 'Unavailable', - fq: "layer_availability_score_f:[0 TO #{Settings.GEOMONITOR_TOLERANCE}]" - } - }, - item_component: Geoblacklight::IconFacetItemComponent + # Disabled until GeoMonitor is updated for v4.x compatibility + # https://github.com/geoblacklight/geo_monitor/issues/12 + # config.add_facet_field 'availability', + # label: 'Availability', + # query: { + # available: { + # label: 'Available', + # fq: "(layer_availability_score_f:[#{Settings.GEOMONITOR_TOLERANCE} TO 1])" + # }, + # unavailable: { + # label: 'Unavailable', + # fq: "layer_availability_score_f:[0 TO #{Settings.GEOMONITOR_TOLERANCE}]" + # } + # }, + # item_component: Geoblacklight::IconFacetItemComponent config.add_facet_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', limit: 8 config.add_facet_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', limit: 8 config.add_facet_field Settings.FIELDS.FORMAT, label: 'Format', limit: 8 @@ -356,4 +357,3 @@ def redirect_from_legacy_id end end end -# rubocop:enable Metrics/ClassLength diff --git a/app/jobs/check_layer_job.rb b/app/jobs/check_layer_job.rb index a209006d..d7c140f9 100644 --- a/app/jobs/check_layer_job.rb +++ b/app/jobs/check_layer_job.rb @@ -3,6 +3,7 @@ class CheckLayerJob < ApplicationJob ## # @param [GeoMonitor::Layer] layer + # TODO: migrate this to the geo_monitor gem itself? def perform(layer) # See if in Solr first, if not, deactivate and exit num_found = Blacklight.default_index.connection.get( diff --git a/app/models/solr_document.rb b/app/models/solr_document.rb index 505637e0..fb3fa8ef 100644 --- a/app/models/solr_document.rb +++ b/app/models/solr_document.rb @@ -1,7 +1,8 @@ class SolrDocument include Blacklight::Solr::Document include Geoblacklight::SolrDocument - include GeomonitorConcern + # include GeomonitorConcern + # https://github.com/geoblacklight/geo_monitor/issues/12 include RightsMetadataConcern include WmsRewriteConcern diff --git a/config/application.rb b/config/application.rb index 6049e1c6..f5e5848f 100644 --- a/config/application.rb +++ b/config/application.rb @@ -17,9 +17,11 @@ class Application < Rails::Application require 'rights_metadata' # Inject our StatusExtension concern to add behavior # (index updates) to the GeoMonitor::Status class - config.to_prepare do - GeoMonitor::Status.include StatusExtension - end + # Disabled until v4.x compatibility is resolved + # https://github.com/geoblacklight/geo_monitor/issues/12 + # config.to_prepare do + # GeoMonitor::Status.include StatusExtension + # end # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. diff --git a/config/schedule.rb b/config/schedule.rb index 34f2f41c..f65e3865 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -21,17 +21,19 @@ set :output, 'log/cron.log' -every 1.day, at: '9:34pm', roles: %i[whenevs] do - rake 'earthworks:geomonitor:update' -end +# Disable GeoMonitor jobs until v4.x compatibility is resolved +# https://github.com/geoblacklight/geo_monitor/issues/12 +# every 1.day, at: '9:34pm', roles: %i[whenevs] do +# rake 'earthworks:geomonitor:update' +# end -every 1.day, at: ['1:13 am', '7:42 am', '1:13 pm', '7:42 pm'], roles: %i[whenevs] do - rake 'earthworks:geomonitor:check_stanford' -end +# every 1.day, at: ['1:13 am', '7:42 am', '1:13 pm', '7:42 pm'], roles: %i[whenevs] do +# rake 'earthworks:geomonitor:check_stanford' +# end -every 2.days, at: ['2:21 am'], roles: %i[whenevs] do - rake 'earthworks:geomonitor:check_public' -end +# every 2.days, at: ['2:21 am'], roles: %i[whenevs] do +# rake 'earthworks:geomonitor:check_public' +# end every '0 3 * * *', roles: %i[app] do # daily at 3 am rake 'earthworks:clear_rack_attack_cache' diff --git a/spec/factories/layer.rb b/spec/factories/layer.rb index 475f2910..9b452431 100644 --- a/spec/factories/layer.rb +++ b/spec/factories/layer.rb @@ -1,3 +1,4 @@ -FactoryBot.define do - factory :layer, class: 'GeoMonitor::Layer' -end +# https://github.com/geoblacklight/geo_monitor/issues/12 +# FactoryBot.define do +# factory :layer, class: 'GeoMonitor::Layer' +# end diff --git a/spec/features/unavailable_layer_spec.rb b/spec/features/unavailable_layer_spec.rb index 0df85877..a41c8fa2 100644 --- a/spec/features/unavailable_layer_spec.rb +++ b/spec/features/unavailable_layer_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -describe 'Unavailable layer' do +describe 'Unavailable layer', skip: 'needs GBLv4 compatibility' do it 'hides and shows appropriate messages for geomonitored unavailable' do visit solr_document_path 'harvard-ntadcd106' within '.unavailable-warning' do diff --git a/spec/jobs/check_layer_job_spec.rb b/spec/jobs/check_layer_job_spec.rb index c4e34ba2..e6595a69 100644 --- a/spec/jobs/check_layer_job_spec.rb +++ b/spec/jobs/check_layer_job_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -RSpec.describe CheckLayerJob do +RSpec.describe CheckLayerJob, skip: 'needs GBLv4 compatibility' do context 'when in Solr index' do let(:layer) { create(:layer, slug: 'tufts-cambridgegrid100-04', checktype: 'WMS') } diff --git a/spec/models/concerns/geomonitor_concern_spec.rb b/spec/models/concerns/geomonitor_concern_spec.rb index beefe9dc..55fd8985 100644 --- a/spec/models/concerns/geomonitor_concern_spec.rb +++ b/spec/models/concerns/geomonitor_concern_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -describe GeomonitorConcern do +RSpec.describe GeomonitorConcern, skip: 'needs GBLv4 compatibility' do let(:document) { SolrDocument.new(document_attributes) } describe 'available?' do @@ -13,7 +13,7 @@ end it 'calls super logic' do - expect(document.available?).to be_truthy + expect(document.available?).to be true end end @@ -27,7 +27,7 @@ end it 'is not avilable' do - expect(document.available?).to be_falsey + expect(document.available?).to be false end end end @@ -36,7 +36,7 @@ let(:document_attributes) { {} } it 'no score present' do - expect(document.score_meets_threshold?).to be_truthy + expect(document.score_meets_threshold?).to be true end end end From 87b771e859f8c1c0e17bf403e9a827f7ea32b6b0 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Wed, 5 Jun 2024 13:19:11 -0700 Subject: [PATCH 03/18] Rename show fields for consistency --- app/controllers/catalog_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index b6778b71..6d741493 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -171,7 +171,7 @@ class CatalogController < ApplicationController config.add_show_field Settings.FIELDS.DESCRIPTION, label: 'Description', itemprop: 'description', helper_method: :render_value_as_truncate_abstract config.add_show_field Settings.FIELDS.PUBLISHER, label: 'Publisher', itemprop: 'publisher', link_to_facet: true - config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place(s)', itemprop: 'spatial', + config.add_show_field Settings.FIELDS.SPATIAL_COVERAGE, label: 'Place', itemprop: 'spatial', link_to_facet: true config.add_show_field Settings.FIELDS.SUBJECT, label: 'Subject', itemprop: 'keywords', link_to_facet: true config.add_show_field Settings.FIELDS.DATE_ISSUED, label: 'Date Issued', itemprop: 'issued' From 5447119700ec358ed253ff48ba142b7c80835578 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Wed, 5 Jun 2024 13:19:28 -0700 Subject: [PATCH 04/18] Show format on show page but not as a facet --- app/controllers/catalog_controller.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index 6d741493..2bb11d5a 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -118,7 +118,6 @@ class CatalogController < ApplicationController # item_component: Geoblacklight::IconFacetItemComponent config.add_facet_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', limit: 8 config.add_facet_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', limit: 8 - config.add_facet_field Settings.FIELDS.FORMAT, label: 'Format', limit: 8 # GEOBLACKLIGHT APPLICATION FACETS @@ -180,11 +179,10 @@ class CatalogController < ApplicationController config.add_show_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', itemprop: 'class', link_to_facet: true config.add_show_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', itemprop: 'type', link_to_facet: true + config.add_show_field Settings.FIELDS.FORMAT, label: 'Format', itemprop: 'format' config.add_show_field Settings.FIELDS.RIGHTS, label: 'Rights', itemprop: 'rights' config.add_show_field Settings.FIELDS.RIGHTS_HOLDER, label: 'Rights Holder', itemprop: 'rights_holder' config.add_show_field Settings.FIELDS.LICENSE, label: 'License', itemprop: 'license' - config.add_show_field Settings.FIELDS.ACCESS_RIGHTS, label: 'Access Rights', itemprop: 'access_rights' - config.add_show_field Settings.FIELDS.FORMAT, label: 'Format', itemprop: 'format', link_to_facet: true config.add_show_field( Settings.FIELDS.IDENTIFIER, label: 'More details at', From a55ef14ebab906e10d11d0707b6d91d3af53ecb3 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Wed, 5 Jun 2024 13:19:40 -0700 Subject: [PATCH 05/18] Render the description as separate paragraphs --- app/assets/stylesheets/modules/show.scss | 5 +++++ app/helpers/earthworks_geoblacklight_helper.rb | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/app/assets/stylesheets/modules/show.scss b/app/assets/stylesheets/modules/show.scss index 5612f149..cdedd774 100644 --- a/app/assets/stylesheets/modules/show.scss +++ b/app/assets/stylesheets/modules/show.scss @@ -18,3 +18,8 @@ dd[itemprop='url'] a { padding-top: 0; } } + +// Remove margin after final paragraph in description +.blacklight-dct_description_sm p:last-of-type { + margin-bottom: 0; +} diff --git a/app/helpers/earthworks_geoblacklight_helper.rb b/app/helpers/earthworks_geoblacklight_helper.rb index 54cadbc6..252b7d14 100644 --- a/app/helpers/earthworks_geoblacklight_helper.rb +++ b/app/helpers/earthworks_geoblacklight_helper.rb @@ -5,4 +5,11 @@ def document_available? (@document.public? && @document.available?) || (@document.same_institution? && user_signed_in? && @document.available?) end + + # Override to render multi-valued description as individual paragraphs + def render_value_as_truncate_abstract(args) + tag.div class: 'truncate-abstract' do + Array(args[:value]).flatten.collect { |v| concat tag.p(v) } + end + end end From 3390b494f0bfa77433d3d28b5c2f192ef2899be4 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Tue, 11 Jun 2024 14:48:14 -0700 Subject: [PATCH 06/18] Remove unused Legacy ID mapping functionality This was all for old MIT layers that are no longer indexed. --- app/controllers/catalog_controller.rb | 11 - config/legacy_id.map | 1918 ------------------- lib/legacy_id_map.rb | 15 - spec/controllers/catalog_controller_spec.rb | 13 - 4 files changed, 1957 deletions(-) delete mode 100644 config/legacy_id.map delete mode 100644 lib/legacy_id_map.rb delete mode 100644 spec/controllers/catalog_controller_spec.rb diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index 2bb11d5a..3ded8ad1 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -1,12 +1,9 @@ require 'blacklight/catalog' -require 'legacy_id_map' class CatalogController < ApplicationController include BlacklightRangeLimit::ControllerOverride include Blacklight::Catalog - rescue_from Blacklight::Exceptions::RecordNotFound, with: :redirect_from_legacy_id - configure_blacklight do |config| # Ensures that JSON representations of Solr Documents can be retrieved using # the path /catalog/:id/raw @@ -346,12 +343,4 @@ def web_services def has_search_parameters? !params[:q].nil? || super end - - def redirect_from_legacy_id - if (redirect_id = LegacyIdMap.map[params[:id]]) - redirect_to solr_document_path(redirect_id) - else - raise Blacklight::Exceptions::RecordNotFound - end - end end diff --git a/config/legacy_id.map b/config/legacy_id.map deleted file mode 100644 index 6d426118..00000000 --- a/config/legacy_id.map +++ /dev/null @@ -1,1918 +0,0 @@ ---- -mit-af-a8gns-2003: mit-uattchhrsrpz6 -mit-us-ak-p53rivers-2010: mit-o2v46xxaorn42 -mit-al-f7districts-2008: mit-qhkbffkhsvpxu -mit-al-a8gns-2003: mit-6s6typ735nigq -mit-al-f7municipalities-2008: mit-jvvaktj5rfpmi -mit-ag-a8gns-2003: mit-uqz4z6xmqzptg -mit-an-a8gns-2003: mit-ry47hrrspzmtm -mit-an-p2roads-2009: mit-ztoqy6yypzo5u -mit-ao-f7comunes-2005: mit-ubzu7dwykfmu6 -mit-ao-a8gns-2003: mit-fwpqsbcqovkwa -mit-ao-f7municipalities-2005: mit-2ee4734hezpme -mit-ao-f7provinces-2005: mit-pnkgqf26d5mx6 -mit-ao-p53rivers-2005: mit-tzanvwz2gnlsk -mit-ao-p2roads-2005: mit-f4b5a2yjdflbi -mit-av-a8gns-2003: mit-qevfiz2zevjgq -mit-ac-a8gns-2003: mit-eoch265tnnmts -mit-ar-f7counties-1995: mit-i65jfdk6lzkfk -mit-ar-a8gns-2003: mit-uyakxu7iqjmsc -mit-am-p8postcode2dig-2009: mit-gpygdwgpknk3c -mit-am-a8gns-2003: mit-d7mkeixeqvooa -mit-at-a8gns-2003: mit-un3cvs76ynozs -mit-us-ga-atlanta-e63bikeped-2002: mit-tsqab5jqdbiqm -mit-us-ga-atlanta-p22cct-2005: mit-5mf2nptcf5pae -mit-us-ga-atlanta-f1cities-2000: mit-q5vufqmsj5piy -mit-us-ga-atlanta-p22ctran-2006: mit-imswh24dq5jnu -mit-us-ga-atlanta-p22gct-2006: mit-mmug6i4chnpt4 -mit-us-ga-atlanta-p22grta-2005: mit-7iy3wdjaabkdo -mit-us-ga-atlanta-g4landuse-1999: mit-agnlgane2zjje -mit-us-ga-atlanta-g4landuse-2001: mit-wma7saj4bnkx4 -mit-us-ga-atlanta-g4landuse-2003: mit-64acaacgavil2 -mit-us-ga-atlanta-g4lndcvr-1999: mit-ermw4zojqvns4 -mit-us-ga-atlanta-m1manufac-2000: mit-jha5uosgyjjck -mit-us-ga-atlanta-p22busrt-2001: mit-jewcl5moibkhi -mit-us-ga-atlanta-p22martabus-2005: mit-2zcs7olyljisi -mit-us-ga-atlanta-p33rr-2000: mit-getjv33wnfiio -mit-us-ga-atlanta-p33rrsta-2000: mit-sxr5nuqnm5m2a -mit-us-ny-nyc-ay-g46bldghgt-2012: mit-z2z6rvh6u5kie -mit-as-p8postcode4dig-2008: mit-x4ireduy3flsq -mit-as-a8gns-2003: mit-cw5ufyrwirjfo -mit-as-e25divisions-2008: mit-b3hzbbjmozn34 -mit-as-e25localareas-2008: mit-emlbu3encvlsc -mit-as-e25subdivisions-2008: mit-4dc3mdzsfvmya -mit-au-p8postcode4dig-2008: mit-luvvs47wzrmlk -mit-au-f7districts-2008: mit-5fy6rayccvpqq -mit-au-a8gns-2003: mit-34cszgfhc5nqo -mit-au-f7jurisdistricts-2008: mit-o7ueptsoejmpa -mit-au-f7municipalities-2008: mit-zfyub2eupnkrw -mit-au-f7settlements-2008: mit-nml76guohvjxc -mit-aj-p8postcode2dig-2009: mit-jrl7f6hol5ock -mit-aj-f7districts-2009: mit-bubzbz2fw5ocg -mit-aj-a8gns-2003: mit-i5j4k5ol6fkoe -mit-bf-a8gns-2003: mit-qkkifinf2rkku -mit-ba-p8postcode2dig-2009: mit-zfuzlxplbrivg -mit-ba-f7divisions-2009: mit-sm74bdu6grmws -mit-ba-a8gns-2003: mit-jrnkpbwgzzibe -mit-bg-p8postcode2dig-2009: mit-ozzajiogn5oe6 -mit-bg-f7districts-2009: mit-dnyjd532rbi4w -mit-bg-a8gns-2003: mit-ieiq3vrh3nnus -mit-bb-a8gns-2003: mit-lhi3wwifpniro -mit-bs-a8gns-2003: mit-x3yocdkfejodo -mit-bo-p8postcode6dig-2008: mit-sod24anhf5liw -mit-bo-a8gns-2003: mit-ayum7dbweziw6 -mit-be-p8postcode4dig-2008: mit-7s3stapvf5iss -mit-be-f7districts-2008: mit-vl53utbz5rofk -mit-be-f7municipalities-2008: mit-mbcqgckqprptu -mit-be-p2roads-2009: mit-m6xtgceii5jpq -mit-bh-a8gns-2003: mit-zktxklyw3rpbm -mit-bd-a8gns-2003: mit-q6dziyj7ivooi -mit-bt-f7municipalities-2009: mit-woj7ravnifl54 -mit-bl-f7provinces-1994: mit-hscu2vi6oznb4 -mit-bk-p8postcode5dig-2008: mit-4emrndubrrn46 -mit-bk-f7districts-2008: mit-hoqjsxs77zp72 -mit-bk-a8gns-2003: mit-vhsz5my6xbizm -mit-bk-f7municipalities-2008: mit-d2lgg6vrkbnie -mit-us-ma-boston-f7brdr-2001: mit-4pggcd4w6rpxy -mit-us-ma-boston-g45plnngdis-2000: mit-xosrjp75gjivk -mit-us-ma-boston-g46bldgs-2000: mit-seef5olutfmes -mit-us-ma-boston-p2cat-2002: mit-jf6cmjbcdfp3i -mit-us-ma-boston-g46cablk-2002: mit-ueik4bnrsfnyi -mit-us-ma-boston-f7ctycl-2002: mit-ea6ps3ti75lfi -mit-us-ma-boston-g15empwr-2002: mit-4cdepdfi3riue -mit-us-ma-boston-g46prcls-2002: mit-nfkgrelgzblh2 -mit-us-ma-boston-g47parcels-2004: mit-2qvjl53v25luo -mit-us-ma-boston-g47parcels-2005: mit-y7l33ivdsvkjc -mit-us-ma-boston-g47parcels-2006: mit-m273msuvwjitc -mit-us-ma-boston-g47parcels-2007: mit-pxfv2xrri5m22 -mit-us-ma-boston-g47parcels-2008: mit-5mxp37dtnjlma -mit-us-ma-boston-g47parcels-2009: mit-diof4wces5jkg -mit-us-ma-boston-g47parcels-2010: mit-l55heuoornlcm -mit-us-ma-boston-g47parcels-2012: mit-7inlutmgennrc -mit-us-ma-boston-g47parcels-2013: mit-r6tqe6qa6fm46 -mit-us-ma-boston-g47parcels-2014: mit-kn3a6fzg6rk56 -mit-us-ma-boston-p33mbta-2006: mit-o43rctabzfo26 -mit-us-ma-boston-p3rr-1995: mit-tc2wlojqjzk7w -mit-us-ma-boston-e25sdwlk-2000: mit-orfqrikq4bnve -mit-us-ma-boston-p2name-1995: mit-fisyqjjc4zp7m -mit-us-ma-boston-p2road-1995: mit-cgykduczcnk36 -mit-us-ma-boston-e25blcks-2000: mit-lbipsnsd6npcy -mit-us-ma-boston-p8zipcd-1997: mit-h3zmpzbjprkt6 -mit-us-ma-bostonmet-g46bldg-2002: mit-6cpf4swrgfif2 -mit-us-ma-bostonmet-g46bldght-2002: mit-mxfdtdiaufj7u -mit-bc-f7admin3-1998: mit-cv5n3agnu5oxs -mit-bc-f7admin2-1998: mit-rrkieebnnbldw -mit-bv-a8gns-2003: mit-e24442fi7vn2e -mit-br-brasilia-g45citylimit-1999: mit-xfe7zpupafmvy -mit-br-brasilia-p2mjrroads-1999: mit-vjlcsb6mtfp6q -mit-br-brasilia-g45nonurban-1999: mit-tctjgiz4v5o3m -mit-br-brasilia-p8cep-1999: mit-6ycgwittmznrc -mit-br-brasilia-p2roads-1999: mit-bg6t3b4ds5lwi -mit-br-brasilia-g45slumareas-1999: mit-paxfiyuhyvjy4 -mit-br-brasilia-f7subdist-1999: mit-ubt6icrh7boik -mit-br-brasilia-p53rivers-1999: mit-gbfbgizsqjlk6 -mit-br-brasilia-p53lakes-1999: mit-eb6opf24ublp6 -mit-br-a8gns-2003: mit-22ao63drjjlag -mit-br-f7municipalities-1994: mit-rgxmt5ulgjkl4 -mit-br-saopaulo-p8postal3dig-1999: mit-le2uix4n65mig -mit-br-saopaulo-a1citiestowns-1999: mit-lz7zzgtqmfkw6 -mit-br-saopaulo-g45citylimit-1999: mit-aykrmvlrwfkwk -mit-br-saopaulo-p2highways-1999: mit-ai3yhtbpdjkzk -mit-br-saopaulo-f7municip-1999: mit-ty5gzmboe5iim -mit-br-saopaulo-a1state-1999: mit-7xu4eoysgzjkk -mit-io-a8gns-2003: mit-uwfpielwdvow2 -mit-vi-a8gns-2003: mit-bukm5ns5kvmzo -mit-us-ny-nyc-bx-g47txblks-2005: mit-bwaxt3twvfihw -mit-us-ny-nyc-bx-g47txlots-2002: mit-liakmcckqjkkm -mit-us-ny-nyc-bx-g47txlots-2006: mit-wlwzdhepwnmgu -mit-us-ny-nyc-bx-g47txlots-2007: mit-4mpbbohqyjmnc -mit-us-ny-nyc-bx-g47txlots-2008: mit-psa7c46sb5mjk -mit-us-ny-nyc-bx-g47txlots-2009: mit-7i3wmgkv5zoli -mit-us-ny-nyc-bx-g47txlots-2010: mit-e3kjts6m3bizq -mit-us-ny-nyc-bx-g47txlots-2011: mit-iflknpv4hzj22 -mit-us-ny-nyc-bx-g47txlots-2012: mit-j4yxc5ixhnjzs -mit-us-ma-brookline-g46ftprnt-2006: mit-zpnm6s4okfm3o -mit-us-ma-brookline-c28ctr2ft-2000: mit-iy2vhi2fprmos -mit-us-ma-brookline-g4parcels-2006: mit-oeusks6phzl2a -mit-us-ma-brookline-n46ease-1995: mit-yfr3gup2ujl5i -mit-us-ma-brookline-n46nodes-1995: mit-f3h6ahf3a5ocg -mit-us-ma-brookline-n46pipes-1995: mit-xlhx43n4afipy -mit-us-ma-brookline-n46serv-1995: mit-nirklyrdcribi -mit-us-ny-nyc-bk-g47txblks-2005: mit-dgeefac2mjk72 -mit-us-ny-nyc-bk-g47txlots-2002: mit-yzhudzg2r5jxk -mit-us-ny-nyc-bk-g47txlots-2006: mit-6d36fp56nvkas -mit-us-ny-nyc-bk-g47txlots-2007: mit-h643h6pbl5nua -mit-us-ny-nyc-bk-g47txlots-2008: mit-pljscjynv5j4c -mit-us-ny-nyc-bk-g47txlots-2009: mit-uep6tfscxzinm -mit-us-ny-nyc-bk-g47txlots-2010: mit-dbrznhoj7nles -mit-us-ny-nyc-bk-g47txlots-2011: mit-nhpvfpyps5ndg -mit-us-ny-nyc-bk-g47txlots-2012: mit-5xklpfzy2zkbe -mit-bx-p8postcode2dig-2009: mit-inffxkgobzj7a -mit-bx-a8gns-2003: mit-6yd77g3muriko -mit-bx-f7subdivisions-2009: mit-v7mht7qu2njyi -mit-bu-p8postcode4dig-2008: mit-xtv7nyeytfl2w -mit-bu-f7districts-2008: mit-ztqqi2vdmbnne -mit-bu-f7municipalities-2008: mit-s7tf5w54qbl54 -mit-uv-a8gns-2003: mit-pwojl7jbx5jcw -mit-bm-p8postcode2dig-2009: mit-fbzac3h4s5jly -mit-bm-f7districts-2009: mit-istcjbvgsjlzy -mit-bm-a8gns-2003: mit-dyvgka27rzokg -mit-by-a8gns-2003: mit-o7cf2ahim5o64 -mit-cb-p8postcode3dig-2009: mit-nalpxwiyhnlru -mit-cb-f7districts-2009: mit-yjramyw73zjlu -mit-cb-a8gns-2003: mit-q5dfueknifpb2 -mit-us-ma-cambridge-g46addres-2007: mit-qph3xucd4jl7u -mit-us-ma-cambridge-g46addres-2011: mit-435ug3m5d5j6s -mit-us-ma-cambridge-a2bnchmrk-2009: mit-tef23hgotridi -mit-us-ma-cambridge-p78bicyc-2008: mit-uhj6avipxbidc -mit-us-ma-cambridge-p78bicyc-2009: mit-mqi2cwhet5mby -mit-us-ma-cambridge-p78bicyc-2010: mit-uy2yckj7kzkvg -mit-us-ma-cambridge-p78bkrac-2009: mit-ytu6gzslgvptu -mit-us-ma-cambridge-p24bridge-2010: mit-7dx57og66zlaw -mit-us-ma-cambridge-g46bldgs-1995: mit-gmyur3mu7jkyy -mit-us-ma-cambridge-g46bldgs-2004: mit-wpmgndauc5kbw -mit-us-ma-cambridge-g46bldght-2004: mit-xo7xqdimrjk62 -mit-us-ma-cambridge-g46bldg-2006: mit-ksb6vkhm7fiek -mit-us-ma-g46bldg-2008: mit-vfpuuvkhdvmve -mit-us-ma-cambridge-p22busshl-2010: mit-lx3zdq4nwvl5u -mit-us-ma-cambridge-p9celltwr-2004: mit-gf74omnnyjork -mit-us-ma-cambridge-f7brdr-1995: mit-ilchd5kskrjla -mit-us-ma-cambridge-f7brdr-2004: mit-q77i6i33xfo6w -mit-us-ma-cambridge-f7brdr-2007: mit-4hzeeadibfo5k -mit-us-ma-cambridge-f8offices-2006: mit-w3bpxowuyrkze -mit-us-ma-cambridge-p23comprk-2010: mit-gpy2a4pvaznpu -mit-us-ma-cambridge-g47ctxdst-1997: mit-h4hucp6flnjd2 -mit-us-ma-cambridge-g52cmgrdn-2008: mit-oiyzklcv7noyu -mit-us-ma-cambridge-s1crvdist-2004: mit-4varn2qhhvi7e -mit-us-ma-cambridge-ascontr-2004: mit-alpjyqrrnzkzi -mit-us-ma-cambridge-a2contr-2010: mit-npnbx7so2vkwo -mit-us-ma-cambridge-f85court-2008: mit-cpsij2252bmyi -mit-us-ma-cambridge-e68daycr-2007: mit-h7ifthko4jok4 -mit-us-ma-cambridge-a2dtm-2003: mit-qe3gxzx5w5ipg -mit-us-ma-cambridge-a2dtmbrkl-2010: mit-fegzxlm2pjjwk -mit-us-ma-cambridge-a2dtmpnts-2010: mit-ihkn5bbgqfpdw -mit-us-ma-cambridge-g46esmt-2007: mit-6h62r3fyizmfy -mit-us-ma-cambridge-g46esmt-2008: mit-3r4b4bdyznnlc -mit-us-ma-cambridge-e58eldr-2007: mit-y4mw4pmd7vjzw -mit-us-ma-cambridge-e58eldr-2005: mit-7le4tn5bwvidk -mit-us-ma-cambridge-r6emrshel-2008: mit-tju47ofgdfpna -mit-us-ma-cambridge-n1fclty-1995: mit-4v75irrf4nlgg -mit-us-ma-cambridge-n1fclty-2004: mit-gjwdl3datrj2a -mit-us-ma-cambridge-n44hydrnt-2010: mit-czpizu2thfius -mit-us-ma-cambridge-f8firest-1997: mit-7l5at333bvimi -mit-us-ma-cambridge-c32fldpln-2010: mit-asozydil4zmxo -mit-us-ma-cambridge-e55ramps-2009: mit-cvuwo6knrfie4 -mit-us-ma-cambridge-e55ramps-2010: mit-4qon47cynbjom -mit-us-ma-cambridge-g45cnsrv-1995: mit-lkycmrqkprkou -mit-us-ma-cambridge-s1hstrc-1995: mit-7cnsrl2r4bmdo -mit-us-ma-cambridge-e64hstpg-2008: mit-lwyrscuko5mmi -mit-us-ma-cambridge-e64histpg-2009: mit-f7355c76zznlg -mit-us-ma-cambridge-e64histpg-2010: mit-gnfbyxdn3rmca -mit-us-ma-cambridge-s1hstdist-2004: mit-xfufg52jl5jgs -mit-us-ma-cambridge-s1lndmk-2004: mit-hzjfqakycjp64 -mit-us-ma-cambridge-s1hstmrk-2004: mit-bme5okwzofnzc -mit-us-ma-cambridge-c3hydro-2007: mit-562zdwf5nbiou -mit-us-ma-cambridge-c3water-2004: mit-xetzagl2zfjpw -mit-us-ma-cambridge-c3water-1995: mit-fhtmpzyhoviye -mit-us-ma-cambridge-g46imprv-2010: mit-slylm3ducjkuy -mit-us-ma-cambridge-p2intrsx-2008: mit-t4b7e2alsnm3e -mit-us-ma-cambridge-p2intrsx-2009: mit-c5yet36yjvjj4 -mit-us-ma-cambridge-a1names-2004: mit-5ii7jxz6enjki -mit-us-ma-cambridge-g46prcls-1995: mit-bwhl6mfmzriga -mit-us-ma-cambridge-e1lndmk-1995: mit-uipwbiqnifjiy -mit-us-ma-cambridge-s1lndmk-2007: mit-vsy6xb4mgjjt4 -mit-us-ma-cambridge-s1lndmk-2010: mit-vpvg7qags5k3a -mit-us-ma-cambridge-e67librs-2006: mit-iuozafjuzjjdi -mit-us-ma-cambridge-n46ltrbrl-2010: mit-36tg6vak4jmci -mit-us-ma-cambridge-p2majrrds-2008: mit-5x4v5qmggzlo6 -mit-us-ma-cambridge-p1mjtrn-1995: mit-sljxsvegizmnk -mit-us-ma-cambridge-g52mempol-2007: mit-3vxe47pxqzoce -mit-us-ma-cambridge-g52mempol-2010: mit-y4f26m3eajn5c -mit-us-ma-cambridge-p23prkspc-2008: mit-rbhjqmc4q5mvw -mit-us-ma-cambridge-p23prkspc-2010: mit-ussftvjyqbiya -mit-us-ma-cambridge-p1mntrn-1995: mit-yylpqnisy5oww -mit-us-ma-cambridge-n1miscstr-2010: mit-iw3vomdc3jjzq -mit-us-ma-cambridge-e64mun-2008: mit-iagkz2ktmrpce -mit-us-ma-cambridge-e64mun-2010: mit-72eu2nc5ubnni -mit-us-ma-cambridge-p23munpar-2006: mit-hbwn4pq7zfjcw -mit-us-ma-cambridge-g45natreg-2007: mit-rwl5qr5vpzlt2 -mit-us-ma-cambridge-g52nhcon-2000: mit-gnhsq7sllbnok -mit-us-ma-cambridge-f1nbrhd-2004: mit-x57jtgybavpj4 -mit-us-ma-cambridge-p2oneway-2009: mit-5ryat66eonm5u -mit-us-ma-cambridge-p2oneway-2010: mit-ynpf6o6ln5ip4 -mit-us-ma-cambridge-g52opnsp-2004: mit-uds7p5urdfnte -mit-us-ma-cambridge-g5opnspc-2006: mit-xtpn46uoq5kuo -mit-us-ma-cambridge-g4stprcl-2008: mit-5l7kdtz5gfleq -mit-us-ma-cambridge-g46prcls-2004: mit-3lk7gdekljp2m -mit-us-ma-cambridge-g46prcl-2007: mit-53w7eazfnblja -mit-us-ma-cambridge-g46prcl-2008: mit-idm5mrjbjvjy4 -mit-us-ma-cambridge-g46prcl-2010: mit-jgnhksiclvjds -mit-us-ma-cambridge-g46prklot-2010: mit-tuudoise4fpm4 -mit-us-ma-cambridge-p2pvdsrf-2006: mit-oxuv6x663zjtu -mit-us-ma-cambridge-a8plcname-2010: mit-k5pmaqp5mvi3w -mit-us-ma-cambridge-e4worship-2010: mit-frdla2pf4rkjc -mit-us-ma-cambridge-e63plygrd-2007: mit-jte3vsgmfrjnk -mit-us-ma-cambridge-e63plygrd-2010: mit-ztszqg2u5vmo6 -mit-us-ma-cambridge-f85police-2005: mit-365ahz353fiw4 -mit-us-ma-cambridge-p8postoff-2007: mit-sqvkdimyzvps2 -mit-us-ma-cambridge-p8postoff-2008: mit-igy44dqlejir4 -mit-us-ma-cambridge-e68pvtscl-2006: mit-ivs3kmej2bjfc -mit-us-ma-cambridge-e68pvtscl-2010: mit-ctkcaybsrvp4u -mit-us-ma-cambridge-g46prvwlk-2010: mit-4gyy6a6i5zkjw -mit-us-ma-cambridge-g5ftpaths-2010: mit-cfmsnnmdyzigc -mit-us-ma-cambridge-e68pubscl-2006: mit-ucmbwfy46rnkq -mit-us-ma-cambridge-e68pubscl-2009: mit-m7632clpprk2m -mit-us-ma-cambridge-e68pubscl-2010: mit-omsclz5sfbk4a -mit-us-ma-cambridge-p3rr-2004: mit-x57wnwtvarlxo -mit-us-ma-cambridge-p3rr-2010: mit-lsgywh4pgrkcy -mit-us-ma-cambridge-p3rr-1995: mit-ssg745q265kbk -mit-us-ma-cambridge-n46rcyrt-2008: mit-cx7vzcn53bija -mit-us-ma-cambridge-p33red-1995: mit-6ry6fyocsnnjo -mit-us-ma-cambridge-g47rtxdst-2007: mit-lsipg4gp4zjnm -mit-us-ma-cambridge-p2rdcl-2004: mit-m6meff2pp5kqo -mit-us-ma-cambridge-p2rdpoly-2010: mit-vgpxnwsk6njp4 -mit-us-ma-cambridge-p2roads-1995: mit-hj37t33tjji62 -mit-us-ma-cambridge-g46rfmech-2010: mit-g6emu3hphnim2 -mit-us-ma-cambridge-n36rfsolr-2010: mit-b4xtgvs2mfibc -mit-us-ma-cambridge-e68schls-2004: mit-pepfqkqbovkns -mit-us-ma-cambridge-p2sdwlkcl-2010: mit-uvw3if4gcnmho -mit-us-ma-cambridge-p1sdwkpl-2006: mit-2swfy7etsrmwo -mit-us-ma-cambridge-g5sdwpoly-2010: mit-kzxfzgp6oziwq -mit-us-ma-cambridge-g5swtrwel-2010: mit-ai4s6qjfwbnre -mit-us-ma-cambridge-g46stprcl-2008: mit-vkkrekxkgjmw4 -mit-us-ma-cambridge-g46stprcl-2010: mit-33nu55efunmxe -mit-us-ma-cambridge-p1snware-2006: mit-kdsqkruoyfjvk -mit-us-ma-cambridge-e63sports-2010: mit-cmdormomrvnew -mit-us-ma-cambridge-a2sptanno-2010: mit-hdsytyb3a5joq -mit-us-ma-cambridge-a2elev-2004: mit-5ysl2jlxvbkaw -mit-us-ma-cambridge-a2sptelev-2010: mit-vpbmg4mrljnjk -mit-us-ma-cambridge-g46stairs-2010: mit-ekfwh3kubfj4y -mit-us-ma-cambridge-p2rdcl-2007: mit-beznm2riczjyo -mit-us-ma-cambridge-p2rdcl-2009: mit-mmcwamjmdfnuc -mit-us-ma-cambridge-p2rdcl-2010: mit-5qx4u2655zpke -mit-us-ma-cambridge-n46srtswp-2008: mit-5l2jloxiizmhc -mit-us-ma-cambridge-n46swpare-2010: mit-xm2ppvlx75jsa -mit-us-ma-cambridge-k1trees-2008: mit-wqlebaam2nluu -mit-us-ma-cambridge-k1trees-2010: mit-3drmfzkg25ncm -mit-us-ma-cambridge-g46pools-2010: mit-ja6jhwzikflis -mit-us-ma-cambridge-p21trafsg-2008: mit-5rd67q4k3njue -mit-us-ma-cambridge-p21wlksig2010: mit-65livtvifbp3c -mit-us-ma-cambridge-p3exits-1995: mit-dvfn6l4xejpy4 -mit-us-ma-cambridge-n46trashd-2008: mit-th5eo67bpbkxa -mit-us-ma-cambridge-n46trashd-2010: mit-dpfmxt5bunnq2 -mit-us-ma-cambridge-n39utlfac-2010: mit-qzviadz6uvlik -mit-us-ma-cambridge-g46walls-2010: mit-w7s5vy7jczi7u -mit-us-ma-cambridge-f7wdpct-2004: mit-5wm4skarerndw -mit-us-ma-cambridge-e63wtrply-2008: mit-qgr6slzpunmm4 -mit-us-ma-cambridge-c3basins-2007: mit-isy55yl4lrmec -mit-us-ma-cambridge-c3wetld-2004: mit-mfnihcumivkec -mit-us-ma-cambridge-e624yth-2006: mit-ybqokqbo2zlyw -mit-us-ma-cambridge-p8zipcd-2004: mit-bza4e2rzzzmec -mit-us-ma-cambridge-g44zone-1995: mit-yfj6yidja5nbc -mit-us-ma-cambridge-g44zone-2004: mit-vmha3k2vrnmu6 -mit-us-ma-cambridge-g44zone-2007: mit-fysbaoadm5mnw -mit-us-ma-cambridge-g44zone-2010: mit-kti2xmvaz5opw -mit-us-ma-cambridge-g44znovrl-2010: mit-l7nvclx5rzjq2 -mit-cm-a8gns-2003: mit-54fopwwknnn7e -mit-us-ma-cambridge-g45plnng-1995: mit-7ujhjepyebnxa -mit-ca-p8postcode3dig-2003: mit-4p2zjdidlzipm -mit-ca-a1pro-1996: mit-bd4zvj4h6fk2u -mit-ca-c3drainage-1996: mit-dbg5dwufwvlpw -mit-ca-p8cen-1996: mit-7zun2iwwnrjjg -mit-ca-p8centroids-2005: mit-666zo3wr3jmxs -mit-ca-p8postal-2006: mit-mptwdqqnyjou2 -mit-ca-a8gns-2003: mit-pepxsysnnbiig -mit-ca-p2hig-2000: mit-2kwcrmigh5nk6 -mit-ca-p2highways-2005: mit-voej4pemqnlsu -mit-ca-g3indianreserves-2000: mit-fdjzkcf4v5n44 -mit-ca-a1cities-1996: mit-zohsrp37kbkzy -mit-ca-a1maj-2000: mit-jfscyye4cvjeo -mit-ca-a1majcities-2005: mit-2skdnqllivig2 -mit-ca-a1mjcities-2006: mit-lqr6dkqny5nyw -mit-ca-p2roads-1996: mit-wgx2564rmji5a -mit-ca-p53rivers-1996: mit-wj7v6dagzfjrg -mit-ca-a1mid-2000: mit-wxrtponjwzi2i -mit-ca-a1midcities-2005: mit-muffpentz5jta -mit-ca-a1mun-1996: mit-jq5irevl3rkf6 -mit-ca-f7muni-2005: mit-5qvxboeoczioe -mit-ca-g5nationalparks-2000: mit-xpkhcji2inmxq -mit-ca-g52natlparks-2005: mit-3f4tuat5cbnxo -mit-ca-f7prov-2005: mit-4zluvtwxmfkzc -mit-ca-g52provincparks-2000: mit-bvp5i362pjp5k -mit-ca-p3rai-2000: mit-nieteyn5bjobg -mit-ca-a1cnty-1996: mit-lwiz4h3bejnam -mit-ca-f7regnmuni-2005: mit-l5dizgx7nnln4 -mit-ca-a1rurcities-2006: mit-fzaw5nwwufpwg -mit-ca-p94tel-2000: mit-wagduyukyjmw6 -mit-ca-p94tel-2005: mit-66stgpabszil6 -mit-ca-a1urbcities-2006: mit-tr3spbvcjrpcw -mit-ca-c3wat-1986: mit-hxdcwidmtzpym -mit-cv-a8gns-2003: mit-xcojwvw6jro6q -mit-cj-a8gns-2003: mit-oqhgq6sryrjs4 -mit-ct-a8gns-2003: mit-jy4pehzobjoku -mit-cd-a8gns-2003: mit-ry7lrnrvc5jvg -mit-ci-a8gns-2003: mit-6urxm27o7zmow -mit-ci-f7municipalities-1995: mit-hlqp22uz3vkzo -mit-ci-f7provinces-1995: mit-eygpwsw2rbk2s -mit-ch-p8postcode4dig-2009: mit-ks2xnt7ltfjxa -mit-ch-beijing-f7districts-2005: mit-ikytqxoe4zj4k -mit-ch-beijing-g52lndmark-2005: mit-qnaru2lyo5pkc -mit-ch-beijing-g52parks-2005: mit-3s5rwycdwnohg -mit-ch-beijing-a8poi-2005: mit-znvywvhuujofy -mit-ch-beijing-p3rail-2005: mit-l7wz6zul55omi -mit-ch-beijing-p2roads-2005: mit-ng7jcsm6dfj6k -mit-ch-beijing-p3subwaystns-2005: mit-a5ifnvq4dboyi -mit-ch-beijing-c3water-2005: mit-p62wpdqlufj7s -mit-ch-f7counties-2009: mit-xqzlyvxhw5iqa -mit-ch-g52cultfeat-1990: mit-stlrliira5ntq -mit-ch-a8gns-2003: mit-esngzmdc3blga -mit-ch-pearlriver-a1places-2005: mit-43rg5yrjjjod4 -mit-ch-pearlriver-p2roads-2005: mit-t7ajxhxrwbj5a -mit-ch-pearlriver-f7admin-2005: mit-tu77ldeia5osi -mit-ch-pearlriver-a1cities-2005: mit-w3emkqcalnpm6 -mit-ch-pearlriver-p3rail-2005: mit-yrxn5mqwxboru -mit-ch-pearlriver-p53river-2005: mit-tht5ap3jonp7m -mit-ch-f7prefectures-2009: mit-odmgn3sk4jmki -mit-ch-p2roads-1990: mit-dkl4kdw6g5p5y -mit-ch-shenzhen-p61airport-2004: mit-2c3ljlf4qbnxe -mit-ch-shenzhen-g46banks-2004: mit-sradq5bk65j46 -mit-ch-shenzhen-g46bldgs-2004: mit-h7p34zxbuzmya -mit-ch-shenzhen-g46commbldgs-2004: mit-rihi4ax32jpn6 -mit-ch-shenzhen-f7districts-2004: mit-wwc2mm6gyvjwe -mit-ch-shenzhen-e68edu-2004: mit-ltlg4ml4g5mim -mit-ch-shenzhen-g52lndmarkpt-2004: mit-nquvuul4pbjvs -mit-ch-shenzhen-p3rail-2004: mit-nyhee3hg3vlms -mit-ch-shenzhen-p2roads-2004: mit-ranky4cyz5neu -mit-ch-shenzhen-p3subwaystns-2004: mit-ryjxuden6bnny -mit-ch-shenzhen-c3water-2004: mit-f6agsaai2fljg -mit-ip-a8gns-2003: mit-dmogdctzhnlza -mit-ck-a8gns-2003: mit-5jo3hb7gerl2g -mit-co-cartagena-g46blocks-2002: mit-utxfmvikmboym -mit-co-cartagena-g52lmarkpt-2002: mit-fhpui7pn7rjce -mit-co-cartagena-g52lmark-2002: mit-cpkqceecbzjqg -mit-co-cartagena-f7nbhd-2002: mit-u5fllw6peblbq -mit-co-cartagena-f7nbhdpt-2002: mit-sz43mpamxbkbk -mit-co-cartagena-p53river-2002: mit-zqtk5wlf7rota -mit-co-cartagena-c7shore-2002: mit-yjfniyr5v5j7u -mit-co-cartagena-p2roads-2002: mit-37rebxoex5opo -mit-co-cartagena-p53lake-2002: mit-odzef4kitbij2 -mit-co-f7municipalities-1997: mit-auk2vz4jrvoyy -mit-cn-a8gns-2003: mit-m5qkfmr7yzmji -mit-cf-a8gns-2003: mit-h5xpe74odvpea -mit-us-ct-f7towns-1998: mit-pyhdlcrymrn5o -mit-cw-a8gns-2003: mit-jburfrjjgrlaw -mit-cr-a8gns-2003: mit-5vffw7mvr5n7s -mit-cs-f7districts-1997: mit-l22apcafdrosg -mit-cs-f7municipalities-1997: mit-egwn4mwpgfkle -mit-hr-p8postcode5dig-2008: mit-3zhnmroyavot4 -mit-hr-a8gns-2003: mit-i7o3rp4fmfprm -mit-hr-f7municipalities-2008: mit-a2c3r3ks7nk54 -mit-cy-p8postcode2dig-2008: mit-5q3zegeizzito -mit-cy-a8gns-2003: mit-6wmz33rqfzpva -mit-cy-f7municipalities-2008: mit-i3g6dt2bn5k6q -mit-cy-f7regions-2008: mit-y6m4tfim7rnps -mit-ez-p8postcode5dig-2008: mit-5zyq6oanp5pvq -mit-ez-f7districts-2008: mit-zt6qzhgcnbihm -mit-ez-a8gns-2003: mit-ock6yj54djjkw -mit-cg-a8gns-2003: mit-mcnozfffqnpky -mit-da-p8postcode4dig-2008: mit-svcpwdcubbm3m -mit-da-a8gns-2003: mit-cfc2bmkkajlhi -mit-da-f7municipalities-2008: mit-of3pizbyq5lxs -mit-da-p2roads-2009: mit-d53xahlrhfmwu -mit-da-f7settlements-2008: mit-7ykie3xap5pjy -mit-dj-a8gns-2003: mit-emoa6c44uzm26 -mit-do-a8gns-2003: mit-tuuatmducflus -mit-dr-a8gns-2003: mit-znd467ytlnmhe -mit-tt-a8gns-2003: mit-j5nj5sh4ijof4 -mit-tt-f7subdistricts-2009: mit-5d5fhphtpromy -mit-ec-f7districts-1996: mit-xbui6su25njgo -mit-ec-a8gns-2003: mit-upterhfeqflwo -mit-ec-f7provinces-1996: mit-qdjq4ehk3biag -mit-eg-cairo-g43landuse-2010: mit-uvwa6xpcinptw -mit-eg-a8gns-2003: mit-zg6c5lo67zlja -mit-es-a8gns-2003: mit-62kuecnpdjj2k -mit-es-f7municipalities-1997: mit-ipra245yxziws -mit-ek-a8gns-2003: mit-aeh2a6y4cfipe -mit-er-a8gns-2003: mit-ggxmrfomibjr2 -mit-en-p8postcode5dig-2008: mit-lx7m4aw32biyy -mit-en-a8gns-2003: mit-66xwypk3cvmkm -mit-en-f7municipalities-2008: mit-dpnbyvlhsfol2 -mit-et-a8gns-2003: mit-7rba3eqmyrnqs -mit-eu-a8gns-2003: mit-rc4yjz43urpd6 -mit-eu-p8postcode2dig-2008: mit-4cwhtxynynm4g -mit-eu-p8postcode4or5dig-2009: mit-ceolseng5vmkw -mit-eu-q8atms-2009: mit-e7gpgsnuojo7o -mit-eu-p23cars-2009: mit-o7lsvejiejndw -mit-eu-g46buildings-2009: mit-mzf6iadrhvj46 -mit-eu-p5can-1999: mit-euibbpigffoyy -mit-eu-a1cit-1999: mit-ws36dtitfbocg -mit-eu-a1cities-2005: mit-2gvn2nrufzktu -mit-eu-a1cities-2006: mit-t7d23p3qrzi2w -mit-eu-a1cities-2007: mit-fa2ryocvk5jcy -mit-eu-a1citylimits-2009: mit-qv3cmjyi6niwi -mit-eu-a1ctry-1999: mit-yacvfxwrz5mni -mit-eu-e2ctry-1981: mit-gqst5rsedvmki -mit-eu-e64culture-2009: mit-xzeilhqygnoy6 -mit-eu-n4operzone-2009: mit-6gbvqmbljbpye -mit-eu-n4elecdistribnetwork-2010: mit-2skgikevurodm -mit-eu-n4elecinterconnlines-2009: mit-mhsi2y2perom6 -mit-eu-e64entertainment-2009: mit-k3bmytyqqnjyg -mit-eu-p53ferries-2006: mit-ll7zo7xlenlsw -mit-eu-p53ferries-2007: mit-huswir6qrfkhq -mit-eu-p53ferries-2005: mit-efupmoqpfrize -mit-eu-h8gascompstns-2010: mit-anh7svz7rji3o -mit-eu-h8gasfacil-2010: mit-oflc2rawh5iua -mit-eu-h8gasinterconn-2010: mit-hlqgummkv5ozg -mit-eu-h8natgasprodreg-2009: mit-jmqzndefanngu -mit-eu-p2gasstations-2009: mit-hrxm44ttdfjk2 -mit-eu-h8gasstorage-2010: mit-pwj2fwf2wbop6 -mit-eu-f8govtbuildings-2009: mit-fkfsan7f3ziqa -mit-eu-p2highwayexits-2009: mit-mb6zjcpgvbkde -mit-eu-p2highways-2009: mit-2nbvyxlhqvprc -mit-eu-a8hotels-2009: mit-uuv7fhawdvnti -mit-eu-d2landcover-2009: mit-xmmaxziixnoyq -mit-eu-g4landuse-2009: mit-vuvpetmf2znu6 -mit-eu-f7prov1-2005: mit-mbxa6a77pjiu2 -mit-eu-f7prov1-2006: mit-tnxsuubyhrkkw -mit-eu-f7prov1-2007: mit-qzbkakjmlrobs -mit-eu-f7prov2-2006: mit-rycgss5zcjnc6 -mit-eu-f7prov2-2007: mit-6lykwxn5c5o6c -mit-eu-f7prov3-2006: mit-e4l2y6qkvro5a -mit-eu-f7prov3-2007: mit-lvontb3xofot6 -mit-eu-h8gasimport-2010: mit-mplqlm75nro24 -mit-eu-a1majcities-2009: mit-esxcfw2hefk3m -mit-eu-p53mjrlakes-2006: mit-ux2xdqm225p46 -mit-eu-p53mjrlakes-2007: mit-erk6p6r5xvnbi -mit-eu-p53mjrrivers-2006: mit-m2nkibb7qbjhg -mit-eu-p53mjrrivers-2007: mit-kvbuujep6bjvi -mit-eu-p2majrds-1999: mit-gyeffccjunjfc -mit-eu-p2mjrroads-2006: mit-g542jswgjfjwu -mit-eu-p2majroads-2009: mit-hbsc2fsfj5ivk -mit-eu-p53maj-1999: mit-ueavfia6srk3u -mit-eu-c3majwater-2005: mit-ibzqvlz4zfn7o -mit-eu-c3majwaterbodies-2009: mit-ioppivqjtbm7o -mit-eu-e58medicalfacil-2009: mit-sy6c43dxjzm2s -mit-eu-c3minwaterbodies-2009: mit-rmxgi7ra5fjm2 -mit-eu-p2motorways-2009: mit-cvbx4r4o3fjwa -mit-eu-f7municipalities-2009: mit-qfzuphg5rnjuu -mit-eu-c1naturalareas-2009: mit-hbapwie4xzkh2 -mit-eu-h8natgaspipelns-2010: mit-l53cugxrezihk -mit-eu-p1transportation-2009: mit-sbsc6ckiuvkp4 -mit-eu-g1nuts0-2005: mit-ex7mlyvz4rptc -mit-eu-g1nuts0-2007: mit-24peoo4a5njle -mit-eu-g1nuts1-2005: mit-5mdsgex44znbc -mit-eu-g1nuts1-2006: mit-etnofyfx6vjhc -mit-eu-g1nuts1-2007: mit-qu7h35cmovl6g -mit-eu-g1nuts2-2005: mit-5yexaglczbmem -mit-eu-g1nuts2-2006: mit-ij5vwrzkarptc -mit-eu-g1nuts2-2007: mit-5hbbwdopnfk4a -mit-eu-g1nuts3-2005: mit-3n5om7k63rk2w -mit-eu-g1nuts3-2006: mit-ql7tpsgtijnhu -mit-eu-g1nuts3-2007: mit-rsjonlqcdfk2q -mit-eu-f7pop-1999: mit-tssfsb6ljnmkk -mit-eu-f7places-2006: mit-3mmjyyyk2fifo -mit-eu-f7places-2007: mit-4v4jemh7rnie6 -mit-eu-g52places-2009: mit-7dw2vguch5n7m -mit-eu-a1populated-2005: mit-lu5af5katnjjo -mit-eu-n3powerplants-2010: mit-4a7m7bvqfji6q -mit-eu-a1provinces-1999: mit-mmcd34tf3bl7y -mit-eu-e2pro-1981: mit-mnw5etawi5opu -mit-eu-g2pro-1991: mit-y26mwvcot5kj6 -mit-eu-f85publicsafety-2009: mit-7225ymtoiniiw -mit-eu-p3railstns-2005: mit-msffqebuw5mve -mit-eu-p3rrstns-2006: mit-aot3nqrywnpge -mit-eu-p3rrstns-2007: mit-26ntbknfrfppy -mit-eu-p3rai-1999: mit-bo2tnhso2zmgg -mit-eu-p3railroads-2005: mit-j7i67ppmyfpz6 -mit-eu-p3rails-2006: mit-jwibhcghlfopw -mit-eu-p3rails-2007: mit-lsqg6w5h45oem -mit-eu-p3railways-2009: mit-syyxmbnzfvm3q -mit-eu-e25reg-1981: mit-zcui6qj6nbpma -mit-eu-a8restaurants-2009: mit-myykpyvswzlp6 -mit-eu-c3riverslakes-2005: mit-rhdpkfdi4zlya -mit-eu-c3riverslakes-2009: mit-c56eplrgovo4y -mit-eu-p2roads-2005: mit-xc5crkgieblhc -mit-eu-p2roads-2006: mit-n77hdf3adviiq -mit-eu-p2roads-2007: mit-mn7hpzztnvn44 -mit-eu-e635sportingvenues-2009: mit-wsejdmmh2vkcs -mit-eu-f7submunincipalities-2009: mit-vzttnzntz5ihm -mit-eu-e635tourism-2009: mit-354xwxymqnieo -mit-eu-e68universities-2009: mit-crynouag3npwc -mit-eu-f1urb-1999: mit-uucoggfswjnyc -mit-eu-f1urban-2005: mit-r2ait4rr4jnsk -mit-eu-f1urban-2006: mit-dhgeeuaxyflk2 -mit-eu-p53wat-1999: mit-5tk6oglqdbp44 -mit-eu-p53water-2006: mit-mspr2ciwavnsk -mit-eu-p53water2007: mit-eoofbyrvbfobi -mit-fk-a8gns-2003: mit-xae4ehcil5ja2 -mit-fo-p8postcode3dig-2008: mit-fz7h2qvgmvngy -mit-fo-f7municipalities-2008: mit-3bzti4in7fnlw -mit-fm-a8gns-2003: mit-bn5nopdf5jpe2 -mit-fi-p8postcode5dig-2008: mit-tnm2umxmzrnw6 -mit-fi-g2econregions-2008: mit-y74owxtonzlgg -mit-fi-a8gns-2003: mit-isbhxoqg5fiyu -mit-fi-f7municipalities-2008: mit-4uv67qdyznnw4 -mit-fi-f7regions-2008: mit-xafijq7rjjita -mit-fr-p8postcode5dig-2008: mit-bestgwfufzmhe -mit-fr-f7cantons-2008: mit-y3st2yeeu5nvs -mit-fr-f7counties-2008: mit-byedbr4lm5poy -mit-fr-f7districts-2008: mit-wq3ualo3urmii -mit-fr-a8gns-2003: mit-ludaqpvzvnnhw -mit-fr-f7municipalities-2008: mit-ikqebrzavvo3s -mit-fg-a8gns-2003: mit-cvjdck73onjxy -mit-fg-f7municipalities-1996: mit-s23rei7vwbnn2 -mit-fp-a8gns-2003: mit-mje5n2itu5i3a -mit-fs-a8gns-2003: mit-6qx2auwadvmt2 -mit-gb-a8gns-2003: mit-yvoc5lqkcfmia -mit-ga-a8gns-2003: mit-h3uuv32mkjkwq -mit-gz-a8gns-2003: mit-cbuewjl36rnse -mit-gg-p8postcode2dig-2009: mit-jkn4bwl4svkdu -mit-us-ga-g45facilities-2003: mit-47z5bwd56rilo -mit-gg-f7districts-2009: mit-dyoqxqnlf5kek -mit-gg-a8gns-2003: mit-tq4tezl4szi62 -mit-us-ga-e25urban-2000: mit-ixjv4r55ejnl4 -mit-gm-p8postcode5dig-2008: mit-rwirzfuxpvolg -mit-gm-f7counties-2008: mit-mekfnwddjvk7c -mit-gm-f7districts-2008: mit-npwv662ovfke2 -mit-gm-p8zip5-2005: mit-ds2lcjzqp5iko -mit-gm-a8gns-2003: mit-7oe3fkbmgrnck -mit-gm-f7municipalities-2008: mit-2f5cqim5yjpm6 -mit-gm-p8postaldirectingareas-2008: mit-yzxtvek2rfiie -mit-gh-a8gns-2003: mit-jdqd3fzmvrpl6 -mit-gi-p2roads-2009: mit-laok5zibenobk -mit-gi-a8gns-2003: mit-dw375jrp4boca -mit-go-a8gns-2003: mit-gporypywbfm6k -mit-gr-p8postcode5dig-2008: mit-xfjw5afspfmiy -mit-gr-f7communities-2008: mit-xwqpktp6lfitk -mit-gr-a8gns-2003: mit-g4jbhr2ouvndo -mit-gr-f7municipalities-2008: mit-5bzodkb4dfo2o -mit-gr-f7provinces-2008: mit-imazfp4cdjko2 -mit-gl-p8postcode4dig-2008: mit-fgajiq53ufnpk -mit-gl-a8gns-2003: mit-vzyghlcqfvlwo -mit-gj-a8gns-2003: mit-avifcwu2qbog4 -mit-gp-a8gns-2003: mit-o6v4l3izaji7i -mit-gt-a8gns-2003: mit-zhmt24y2zjpmg -mit-gt-f7municipalities-1997: mit-oi4cvanmbrnak -mit-gv-a8gns-2003: mit-5hewwwd7jnlek -mit-pu-a8gns-2003: mit-2bhakk6zpnjoo -mit-gy-a8gns-2003: mit-tyfibupl3zl3m -mit-gy-f7subregions-1997: mit-aps6tqxqhjowm -mit-ha-a8gns-2003: mit-fnp5dlpltfnso -mit-hm-a8gns-2003: mit-jaerx6x5tfp22 -mit-ho-a8gns-2003: mit-y6st4cxctvloy -mit-ho-f7municipalities-1996: mit-7gxegvafyzn3c -mit-hk-a8gns-2003: mit-5ytqwtdp6zloa -mit-us-tx-houston-g46bldgs-2003: mit-d7nfkewqqrlfs -mit-us-tx-houston-a1citylimit-1998: mit-up5zkkiwwblh6 -mit-us-tx-houston-a1citylimit-2000: mit-gtmhywgj3npse -mit-us-tx-houston-a1citylimit-2002: mit-s64ootktwzlvk -mit-us-tx-houston-a1citylimit-2003: mit-sabjjlik5bmyq -mit-us-tx-houston-a1citylimit-2004: mit-cze5zkzvtzkiy -mit-us-tx-houston-g47citypts-2003: mit-jp6kwogxuvoyw -mit-us-tx-houston-g47citypts-2004: mit-5jkvmlmyvnktu -mit-us-tx-houston-g46prclval-2004: mit-y7smr2dwcnjzy -mit-us-tx-houston-g4prcluse-2004: mit-omsinafgpriiq -mit-us-tx-houston-g4prcluse-2003: mit-kwtyfsj2cvnl4 -mit-us-tx-houston-g46prclval-2003: mit-ec5t7yix55lwk -mit-hu-p8postcode4dig-2008: mit-i4i2evlqqzojk -mit-hu-f7districts-2008: mit-j7rzts4x7bo32 -mit-hu-a8gns-2003: mit-yxauo3p2s5lts -mit-hu-f7municipalities-2008: mit-w7mzzw4ocbmds -mit-ic-p8postcode3dig-2008: mit-lavnne2mpfkyu -mit-ic-f7districts-2008: mit-j75d7qfjijklm -mit-ic-a8gns-2003: mit-d63n3i6uzjnya -mit-ic-f7municipalities-2008: mit-bl3affghcbjyw -mit-in-p8postcode6dig-2005: mit-grtruzfqv5n3g -mit-in-agra-f7ward-2011: mit-qgpznbjqmbkbs -mit-in-ahmedabad-f7ward-2001: mit-e7nofitvqvptg -mit-in-bangalore-f7ward-2011: mit-ufvj4iyexbnu6 -mit-in-bangalore-f7ward-2001: mit-u7nx2fwdc5nlm -mit-in-chennai-f7ward-2001: mit-bheor6ksu5mag -mit-in-chennai-f7ward-2011: mit-6pm35rrvfvi4y -mit-in-c8clmtavgs-2002: mit-tl4djfm6qnisy -mit-in-coimbatore-f7ward-2011: mit-6jqnz6n22nkyw -mit-in-delhi-g52green-2007: mit-26mp6pofcfjha -mit-in-delhi-p33metro-2007: mit-yxbro7hhpzlp2 -mit-in-delhi-a8poi-2007: mit-sapo3iqd4fkjo -mit-in-delhi-p33railway-2007: mit-mmdayhl5kbizo -mit-in-delhi-p2road-2007: mit-36nwsxw3p5nt4 -mit-in-delhi-c3water-2007: mit-qka4g6vzkrjxc -mit-in-delhi-f7ward-2001: mit-xxcjtv5ouzjcy -mit-in-delhi-f7ward-2011: mit-u2bey4q2bnlb2 -mit-in-f7dstrbnd-1991: mit-riy6kxhs6rplk -mit-in-f7dstrbnd-2001: mit-f4lpecgngfop4 -mit-in-f7dstrbnd-2011: mit-g3b4lpcsivlt4 -mit-in-f7districts-2009: mit-k7c7quaqjnl6m -mit-in-a8gns-2003: mit-emww5brkfjibi -mit-in-gujarat-f7villagetown-2011: mit-lez2vcqcevjie -mit-in-hyderabad-g52green-2007: mit-7gbd5ebhvjpos -mit-in-hyderabad-a8locality-2007: mit-sszstpso5nlcm -mit-in-hyderabad-a8poi-2007: mit-yqbd6zai7vljk -mit-in-hyderabad-p33railway-2007: mit-a6bbc4ssxnl7w -mit-in-hyderabad-p2road-2007: mit-j3dgv4k6g5pdc -mit-in-hyderabad-c3water-2007: mit-oliua6bkvnpam -mit-in-hyderabad-f7ward-2001: mit-pdviuok2briko -mit-in-hyderabad-f7ward-2011: mit-knn5gwcu5noe4 -mit-in-indore-f7ward-2011: mit-diwrdmtuznoxk -mit-in-jaipur-f7ward-2011: mit-xvooz4scrzmtw -mit-in-kannur-f7ward-2011: mit-zjnx2qxwrjkwa -mit-in-kochi-f7ward-2011: mit-tqllg4z6efowu -mit-in-kolkata-f7ward-2001: mit-pcusmxueejnlk -mit-in-kolkata-f7ward-2011: mit-b76qlstzkvmay -mit-in-j6dstcrp-1988: mit-tagrbvg62rmlc -mit-in-lucknow-f7ward-2011: mit-i2qyrvf7ublmw -mit-in-ludhiana-f7ward-2011: mit-3fga53xatno3o -mit-in-madurai-f7ward-2011: mit-qydi2nkuynkri -mit-in-maharashtra-f7panchay-2011: mit-ur2whecwwni2i -mit-in-maharashtra-f7subdist-2011: mit-etciuxehtbo4m -mit-in-maharashtra-f7village-2011: mit-l4gappl3qnizq -mit-in-malappuram-f7ward-2011: mit-qy3w37zsofici -mit-in-mumbai-g52green-2007: mit-ono5zrwy5vlq2 -mit-in-mumbai-f1land-2007: mit-o5okvkcxiznli -mit-in-mumbai-a8locality-2007: mit-bozv7oha2bpzu -mit-in-mumbai-a8poi-2007: mit-j7ppgppc4zjnw -mit-in-mumbai-p33railway-2007: mit-6vgkobwgkzkss -mit-in-mumbai-p2road-2007: mit-nbudhfbiizkgo -mit-in-mumbai-c3sea-2007: mit-mwb5pbsz4zpru -mit-in-mumbai-c3water-2007: mit-s3gfdfssprnns -mit-in-mumbai-f7ward-2001: mit-iqimmi3kgfmbc -mit-in-mumbai-f7ward-2011: mit-xe4nf7jgozpw6 -mit-in-muzaffarnagar-f7ward-2011: mit-bagcec3zh5l5m -mit-in-nagpur-f7ward-2011: mit-4lya3r2yubkau -mit-in-nashik-f7ward-2011: mit-gjwolms4pjk7k -mit-in-odisha-f7subdist-2011: mit-ylriovh64jm7k -mit-in-odisha-f7village-2011: mit-zra4vijfgfnuy -mit-in-patna-f7ward-2011: mit-tdeqwoghovn3g -mit-in-pune-f7ward-2011: mit-33uob4yxdjopq -mit-in-raurkela-f7ward-2011: mit-6b72qb7rbrjpm -mit-in-c3rivers-2002: mit-obyopykzlfpye -mit-in-p2roads-2002: mit-x3mxrfnsmrlmi -mit-in-f7statebnd-2011: mit-np6byao2mzjog -mit-in-c3strcnls-2002: mit-lmzwzjf2kjp3s -mit-in-surat-f7ward-2001: mit-qzlzsjjnk5lvc -mit-in-thiruvananthapu-f7ward-2011: mit-dywrex2o4vpqg -mit-in-thrissur-f7ward-2011: mit-tvz3w2d75jins -mit-in-vadodara-f7ward-2011: mit-bekdvzvycjkec -mit-in-vijayawada-f7ward-2001: mit-ipwsezyldzpjc -mit-in-vishakhapatnam-f7ward-2011: mit-az7jszlyqvlbs -mit-id-p8postcode3dig-2009: mit-hfryc6oqenot4 -mit-id-f7districts-2009: mit-yu26bfhk4fpjk -mit-id-a8gns-2003: mit-d52ahdo275njy -mit-ir-p8postcode2dig-2009: mit-faqa5axp75odq -mit-ir-f7counties-2009: mit-u3iiaignh5ns6 -mit-ir-a8gns-2003: mit-rodvkfvebrp6a -mit-iz-p8postcode2dig-2009: mit-maxmmwji7bjsm -mit-iz-f7districts-2009: mit-r77laityjbp2w -mit-iz-a8gns-2003: mit-7pw7lkul4flgg -mit-ei-f7counties-2008: mit-7td6ugp4svmge -mit-ei-a8gns-2003: mit-fzrat76hv5p24 -mit-ei-f7municipalities-2008: mit-7tqebcq2ffpoq -mit-ei-p2roads-2009: mit-yr33va4nhrmz4 -mit-im-a8gns-2003: mit-prebi7ruarpo2 -mit-is-p8postcode2dig-2009: mit-uenbar5gmfiye -mit-is-a8gns-2003: mit-j3gvrsesg5p3m -mit-is-c21naturalregions-2009: mit-d6kj54he3vlja -mit-is-f7subdistricts-2009: mit-yq27xdq355joa -mit-it-p8postcode5dig-2008: mit-2w5duwj7wjiri -mit-it-a8gns-2003: mit-22f7m5kuajmk2 -mit-it-f7municipalities-2008: mit-dijeni5xezjd6 -mit-it-f7provinces-2008: mit-jjg43utmsjoru -mit-jm-a8gns-2003: mit-v456safg2fmwc -mit-jm-f7parishes-1995: mit-5lyq6tuunfley -mit-in-jamnagar-f7villagetown-2011: mit-luijmsxelbies -mit-in-jamnagar-f7ward-2011: mit-hvfgcb6ymzinc -mit-jn-a8gns-2003: mit-7lzgk3x7tjmyc -mit-ja-p8postcode3dig-2008: mit-dzxxp547jzojs -mit-ja-a8gns-2003: mit-ayl52camhzkfw -mit-ja-f7municipalities-2008: mit-2i7geaiu2nnew -mit-je-a8gns-2003: mit-f4fwwmqrfvnqm -mit-jo-p8postcode2dig-2009: mit-oz4r24a6k5mvi -mit-jo-f7districts-2009: mit-x2upztkxonk42 -mit-jo-a8gns-2003: mit-ujrylcxegzjt6 -mit-ju-a8gns-2003: mit-umxu7uz5lnnde -mit-in-junagadh-f7villagetown-2011: mit-l545hs4b6rk6w -mit-in-junagadh-f7ward-2011: mit-ruaa4asgujo2s -mit-kz-p8postcode4dig-2009: mit-by6sgsayufkku -mit-kz-a8gns-2003: mit-jnwyurdfhno24 -mit-kz-f7provinces-2009: mit-bz3jieyxcnlac -mit-ke-a8gns-2003: mit-v3d7cwyk2zn2w -mit-kr-a8gns-2003: mit-pbuy2fndjnmue -mit-kv-p8postcode2dig-2008: mit-yd7icgur3bpai -mit-kv-f7municipalities-2008: mit-kgxqcw4junndi -mit-ku-p8postcode2dig-2009: mit-43bx7oibdvmum -mit-ku-f7districts-2009: mit-lr2lxqmo4rmna -mit-ku-a8gns-2003: mit-nlzgec7tqzpyk -mit-kg-p8postcode4dig-2009: mit-7tpd2ufebrije -mit-kg-a8gns-2003: mit-s2blnu6uvzi7y -mit-kg-f7provinces-2009: mit-li323ssitnko4 -mit-la-p8postcode2dig-2009: mit-kkhrj2ni75oeo -mit-la-f7districts-2009: mit-u7ehtvwplnj74 -mit-la-a8gns-2003: mit-pk2kr2ychzprg -mit-lg-p8postcode4dig-2008: mit-jd3o4kfeovjf2 -mit-lg-a8gns-2003: mit-2tvbgova4zptw -mit-lg-f7municipalities-2008: mit-bq63w3tgkzjf2 -mit-lg-f7submunicipalities-2008: mit-t4ug22o26bjxm -mit-us-ma-lawrence-c3flood-2001: mit-mhhd3i7v2fpyu -mit-us-ma-lawrence-c3rpa-2001: mit-sqnxfbr3enja4 -mit-us-ma-lawrence-e25blkgp-1990: mit-xmjvehseifndo -mit-us-ma-lawrence-e25blkgp-2000: mit-txenypcdvfi6a -mit-us-ma-lawrence-g4dvlpd-2001: mit-b4cawekys5kg2 -mit-us-ma-lawrence-s1hstry-2003: mit-o55iaienpvowm -mit-us-ma-lawrence-f81mncpl-2001: mit-tcvnsw4iw5m5c -mit-us-ma-lawrence-g46prcls-2001: mit-6ghnhv3ygjni2 -mit-us-ma-lawrence-g52parks-2001: mit-odqfy2hhbnpwu -mit-us-ma-lawrence-g3cntrt-2001: mit-ktkeoie47vkcq -mit-us-ma-lawrence-g52opnsp-2001: mit-arakvi4lmbiqk -mit-us-ma-lawrence-p3rr-2001: mit-cdszagdgbnkkm -mit-us-ma-lawrence-g45redev-2001: mit-l5ohbc6sznnqi -mit-us-ma-lawrence-g15rnwl-2003: mit-oxrjqhzi3nmx4 -mit-us-ma-lawrence-p2rdnm-2001: mit-vxevwohswblb2 -mit-us-ma-lawrence-p2roads-2002: mit-hqkyhha3drpqu -mit-us-ma-lawrence-p2roads-2003: mit-mv235q34jvmhe -mit-us-ma-lawrence-e68schls-2002: mit-bfmktkb7yfkzi -mit-us-ma-lawrence-a1mask-2001: mit-adgxqqq4zjnng -mit-us-ma-lawrence-p2rds-2001: mit-dcmq3yqn6zl3m -mit-us-ma-lawrence-f7bndry-2003: mit-6du43nygffn5o -mit-us-ma-lawrence-c3water-1980: mit-xfbdrybmcvoou -mit-us-ma-lawrence-g44zon-2001: mit-2mcumbnttnips -mit-le-p8postcode2dig-2009: mit-525tpkamqfjlw -mit-le-f7districts-2009: mit-3pgus4wogrm5m -mit-le-a8gns-2003: mit-7sivzo4flzoee -mit-ls-f7admin2-2003: mit-vu5xdqhtejou6 -mit-ls-e25constituencies-2005: mit-vcyn7hi42zpm6 -mit-lt-a8gns-2003: mit-657yevsqyfjow -mit-ls-p2roads-2007: mit-vmuwh2xxpnkvg -mit-ls-a1towns-2007: mit-yxwigyuyufpgu -mit-li-a8gns-2003: mit-gbyrmtxy6vjqi -mit-ly-a8gns-2003: mit-wue7zspe2fjhe -mit-ls-a8gns-2003: mit-3uc37dwmozmlc -mit-ls-p2roads-2009: mit-mzoxq5sedjjs4 -mit-lh-p8postcode5dig-2008: mit-7gjozsz3tvlsi -mit-lh-a8gns-2003: mit-h2u7w72axboma -mit-lh-f7municipalities-2008: mit-wnmkosmsarpxu -mit-us-la-e25blkgrpsct-2000: mit-4gbpkux76jlay -mit-us-la-e25zcta5dct-2000: mit-hsv5dcoohfihm -mit-lu-p8postcode2dig-2008: mit-p3kaaphqtvp6m -mit-lu-a8gns-2003: mit-ekeh6ghncnjuk -mit-lu-f7municipalities-2008: mit-gyisxghajrpjs -mit-lu-p2roads-2009: mit-rfyke6bmwnklg -mit-mc-a8gns-2003: mit-5ptyejsqrbl6o -mit-mk-p8postcode2dig-2008: mit-bzq3kgaytjkm6 -mit-mk-a8gns-2003: mit-ruznlcfzivl7g -mit-mk-f7municipalities-2008: mit-nm6oxph5lji3e -mit-mg-f7admin1-2002: mit-rihrcwo2mfno4 -mit-mg-f7admin3-2002: mit-xjhyyqzbjjl2u -mit-mg-f7admin2-2002: mit-etfedj7zyzkdm -mit-mg-a1cities-2006: mit-t5do2i3lz5irq -mit-ma-a8gns-2003: mit-atwqwpdoyjmpi -mit-mg-p3rail-2006: mit-2c6vzlwujfo2y -mit-mg-n2dam-2006: mit-rnshi4cv4zi6c -mit-mg-p53rivers-2006: mit-qqbfiigvtjite -mit-mg-p2roads-2006: mit-y67e2lue5zids -mit-mg-a1towns-2006: mit-kzz3wz36dnmdo -mit-mw-f7admin2-2003: mit-idrfeny6prl4w -mit-mw-f7admin3-2003: mit-ymsglkoxsjib6 -mit-mi-a8gns-2003: mit-4d3rehzcvno7e -mit-mw-p53mwlake-2002: mit-2ar3fksnezjmm -mit-mw-g2livezone-2007: mit-i2mmqdqbfvn6g -mit-mw-f7provinces-2002: mit-5ku7v23juvoam -mit-my-p8postcode2dig-2009: mit-ejnqvjvgvzin4 -mit-my-a8gns-2003: mit-ehw5t36k5fofs -mit-mv-p8postcode2dig-2009: mit-ydu2t54x3rpfa -mit-mv-f7districts-2009: mit-evo7hxrtcfnkg -mit-mv-a8gns-2003: mit-mbpdoucsm5luy -mit-ml-a8gns-2003: mit-trdxwps5evp4s -mit-ml-f7provinces-1996: mit-emxzqushi5oay -mit-mt-p8postcode3dig-2008: mit-66qprswk5no2w -mit-mt-f7districts-2008: mit-7a7ugjlub5jwi -mit-mt-a8gns-2003: mit-k4svzffbe5jj2 -mit-mt-f7municipalities-2008: mit-cyrwud67uvjdy -mit-us-ny-nyc-mn-g46bldghgt-2009: mit-fnffckjc5fo7e -mit-us-ny-nyc-mn-g47txblks-2005: mit-33udvsitxjmws -mit-us-ny-nyc-mn-g47txlots-2002: mit-m4uxyvg75jogu -mit-us-ny-nyc-mn-g47txlots-2003: mit-3uej55d3gbina -mit-us-ny-nyc-mn-g47txlots-2005: mit-odo7yjczgznhi -mit-us-ny-nyc-mn-g47txlots-2006: mit-b3gyg7443no2g -mit-us-ny-nyc-mn-g47txlots-2007: mit-5jgtqlvqf5oic -mit-us-ny-nyc-mn-g47txlots-2008: mit-phsxt4kyhfpjq -mit-us-ny-nyc-mn-g47txlots-2009: mit-6whrc5dbevmju -mit-us-ny-nyc-mn-g47txlots-2010: mit-twx72dviuzpui -mit-us-ny-nyc-mn-g47txlots-2011: mit-az7mu32evnnoc -mit-us-ny-nyc-mn-g47txlots-2012: mit-venf5e6kp5jq6 -mit-rm-a8gns-2003: mit-lpmkt5sxkbovm -mit-mb-a8gns-2003: mit-enstl73hbvlre -mit-us-ma-a2orthoc-2002: mit-qpq5kq6nfrpwi -mit-us-ma-c3cran-1997: mit-gvo64m4f3jm2w -mit-us-ma-l2andro-1997: mit-nlddkvldt5loq -mit-us-ma-d5acec-2000: mit-ijwagr3tmjpku -mit-us-ma-g3acec-2003: mit-g462aqv6ynp7e -mit-us-ma-c7brbch-1997: mit-w54s3jm37jpfs -mit-us-ma-e63bike-2002: mit-b5wtjnrbi5k6s -mit-us-ma-e25blkgrpsct-2000: mit-kkf5sdiplfnmu -mit-us-ma-e25blocksct-2000: mit-77kdrr55mfmkm -mit-us-ma-e25tractsct-2000: mit-5v4nuyne25low -mit-us-ma-d1cvp-2006: mit-4izlhqyedfnfw -mit-us-ma-a2orthcc-2001: mit-kb6mtdad4jia6 -mit-us-ma-d5cstpd-2003: mit-46zn6au7o5lsk -mit-us-ma-c7cstzn-1997: mit-ppl6qu5tq5ouo -mit-us-ma-a2ctile-1997: mit-7zlo37etdbj2k -mit-us-ma-e625collegecrime-1980: mit-v7xnsfz2qblmw -mit-us-ma-e625collegecrime-1981: mit-k6hj5uir2vkc4 -mit-us-ma-e625collegecrime-1982: mit-2fbl2vluk5i6i -mit-us-ma-e625collegecrime-1983: mit-jzqn2paoennuq -mit-us-ma-e625collegecrime-1984: mit-5am4xmmqp5pio -mit-us-ma-e625collegecrime-1985: mit-efpq5bkryrllc -mit-us-ma-e625collegecrime-1986: mit-tybvwks6rrjry -mit-us-ma-e625collegecrime-1987: mit-gq6bqlg5gvmnk -mit-us-ma-e625collegecrime-1988: mit-xmqxezbw7josk -mit-us-ma-e625collegecrime-1989: mit-yt2oipuk3zp42 -mit-us-ma-e625collegecrime-1990: mit-xbkmhdzckzpks -mit-us-ma-e625collegecrime-1991: mit-yqmffbnklniqy -mit-us-ma-e625collegecrime-1992: mit-6wqwa4dndbivm -mit-us-ma-e625collegecrime-1993: mit-rs5k34z2ajkos -mit-us-ma-e625collegecrime-1994: mit-o5qliydjxjjd4 -mit-us-ma-e625collegecrime-1995: mit-rhtrehi6cnipc -mit-us-ma-e625collegecrime-1996: mit-3ikqfmes2viiw -mit-us-ma-e625collegecrime-1997: mit-buzgynbq35oae -mit-us-ma-e625collegecrime-1998: mit-qoxtpbrtmbnx2 -mit-us-ma-e625collegecrime-1999: mit-vpi3p4gvprjgo -mit-us-ma-e625collegecrime-2000: mit-5oh3rrof5znfw -mit-us-ma-e625collegecrime-2001: mit-uwkimoxie5luu -mit-us-ma-e625collegecrime-2002: mit-b5hnekbuyjjem -mit-us-ma-e625collegecrime-2003: mit-wypvcoezj5j4w -mit-us-ma-e68masscollegeuni-2007: mit-6zqvsdip2vkzc -mit-us-ma-e58healthcenters-2007: mit-xc6yyrrq7jljs -mit-us-ma-boston-p33cmmtr-1998: mit-5s6frhbjonmg6 -mit-us-ma-f7cngrs-2003: mit-s2v5c4h5pvk4m -mit-us-ma-e25countiesct-2000: mit-xyz47zy7jfnjw -mit-us-ma-f7cnty-1991: mit-jnwadb6bufpam -mit-us-ma-e625municipality-1980: mit-hrs3k7vrcbklg -mit-us-ma-e625municipality-1981: mit-higjklsl55nvy -mit-us-ma-e625municipality-1982: mit-qup2di5bxnllk -mit-us-ma-e625municipality-1983: mit-vzs64jeoxfm6o -mit-us-ma-e625municipality-1984: mit-nocpvy2rnfkkq -mit-us-ma-e625municipality-1985: mit-erz5jwaf25kuo -mit-us-ma-e625municipality-1986: mit-gyc3vukunzn76 -mit-us-ma-e625municipality-1987: mit-d7hh2bykc5kqs -mit-us-ma-e625municipality-1988: mit-kc3nfzh6rfiq4 -mit-us-ma-e625municipality-1989: mit-hzohde5fmbkeu -mit-us-ma-e625municipality-1990: mit-gafppcwu3nids -mit-us-ma-e625municipality-1991: mit-wja7gzz2arl2i -mit-us-ma-e625municipality-1992: mit-44ewydrhfzo6e -mit-us-ma-e625municipality-1993: mit-ujzogg6k5zohy -mit-us-ma-e625municipality-1994: mit-g5kzlvpkt5mjm -mit-us-ma-e625municipality-1995: mit-5eeg6nkcvrnbo -mit-us-ma-e625municipality-1996: mit-7cxyke5kfjn3c -mit-us-ma-e625municipality-1997: mit-spp3dloczbpf2 -mit-us-ma-e625municipality-1998: mit-7zkunr5vhvksy -mit-us-ma-e625municipality-1999: mit-eppv3kym2npo4 -mit-us-ma-e625municipality-2000: mit-jgm5cdis2rkly -mit-us-ma-e625municipality-2001: mit-3djcuyflzvmuk -mit-us-ma-e625municipality-2002: mit-oevqrb44rfj5g -mit-us-ma-e625municipality-2003: mit-p7w3bkyaxvpvo -mit-us-ma-n2dams-2012: mit-5q7qiimlrfjwy -mit-us-ma-n46waste-2002: mit-hdc55qjfbnnre -mit-us-ma-l2slfsh-2000: mit-qaalsybqofi32 -mit-us-ma-a2orthoi-2003: mit-hvai3wwlnrj6a -mit-us-ma-a2orthom-2003: mit-fgeepradnnop4 -mit-us-ma-a2dquad-1993: mit-xm7uyumcgblk4 -mit-us-ma-c3ssaqu-1996: mit-d2gu2ka36jkga -mit-us-ma-d5estmt-2003: mit-zm33olb6efndq -mit-us-ma-d5marin-1996: mit-t4w6web2qblx4 -mit-us-ma-n856dscrg-2003: mit-jvswpvtvxziyy -mit-us-ma-p2exits-2003: mit-axxhrtly6vog6 -mit-us-ma-e58hsptl-2002: mit-tfztzyypgnmhi -mit-us-ma-f7house-2002: mit-cnx5tv7tpjn2y -mit-us-ma-c3hydro-2003: mit-7piqvybiafm5k -mit-us-ma-e1lndmk-1996: mit-oxm3r3pfbvmpk -mit-us-ma-a2llone-1995: mit-err2ylooovkuo -mit-us-ma-a2llten-1995: mit-5syc7nracbidw -mit-us-ma-e67libraries-2005: mit-hvi26mblobkpe -mit-us-ma-e63longdisttrails-1999: mit-aevlnbrfbzifw -mit-us-ma-e63lgtrl-1999: mit-isjldouo5jmdk -mit-us-ma-p2road-2002: mit-3lcl3jlglzobe -mit-us-ma-p2majrd-2002: mit-4h37wtumbfp2g -mit-us-ma-p2eotmjrds-2006: mit-mxblfgcovzllm -mit-us-ma-p2majrds-2007: mit-2vkv2a7jjzpb2 -mit-us-ma-boston-p33mbtal-1998: mit-eiy4drb6tfkrm -mit-us-ma-p3statn-1998: mit-3rs5sv7q7fk7q -mit-us-ma-d5peat-2003: mit-urjjdxiiivpzs -mit-us-ma-d5vernl-2003: mit-y24adkucpnphq -mit-us-ma-g3opnsppoly-2007: mit-ccmiig64arjmk -mit-us-ma-g3opnspline-2007: mit-tq5jptjyxvpli -mit-us-ma-g47opnsp-2007: mit-xp7ybmeqyrpdi -mit-us-ma-c3wtrrc-2002: mit-2v56q2jfrnoki -mit-us-ma-p2rtemarkers-2003: mit-jqgk7omqvro6k -mit-us-ma-d1pvp-2000: mit-gnhvxezxcvp7c -mit-us-ma-d5coast-2003: mit-fvk4p2johflic -mit-us-ma-d5prty-2003: mit-blujxjsvczlua -mit-us-ma-d5pine1-2003: mit-past4rr2lzjqu -mit-us-ma-d5pine2-2003: mit-bybqoahod5mdk -mit-us-ma-d5rvrne-2003: mit-3f3luu4j7nm4k -mit-us-ma-d5sndpl-2003: mit-7oyllr4xhzpec -mit-us-ma-d5forst-2003: mit-mawz3yswsvlzu -mit-us-ma-e625prsn-2002: mit-s7feewgkevj76 -mit-us-ma-e625prisions-2007: mit-po32brahv5kyq -mit-us-ma-g52opnsp-2003: mit-2siefwozzbn2q -mit-us-ma-a2quad-1989: mit-3nbsfcn5cblii -mit-us-ma-g45rpa-1998: mit-ye5kdtwx6jjfo -mit-us-ma-p2eotrds-2006: mit-tdcymzgrgjnag -mit-us-ma-p2rds-2007: mit-szptts2kg5oqy -mit-us-ma-c3salt-2000: mit-kudmpyxktbi44 -mit-us-ma-g3scnic-1981: mit-w7ofzzq5frjsg -mit-us-ma-e68schls-2002: mit-ibzlumbv6bjzi -mit-us-ma-e68schools-2007: mit-2jejzle2ovic4 -mit-us-ma-j3soils-2000: mit-v3cgtchjlbn54 -mit-us-ma-f7brdr-1991: mit-dm2se66q6risw -mit-us-ma-a2stpln-1989: mit-6s2jps5tjviza -mit-us-ma-g52srhpt-2000: mit-rricoecf7riby -mit-us-ma-g52srhp2-2000: mit-lyeurhgayrifm -mit-us-ma-g52srhp3-2000: mit-em7kpsyprjits -mit-us-ma-g52srhp4-2000: mit-54c2u535tjjis -mit-us-ma-p3train-1998: mit-qvyunqwasvihe -mit-us-ma-p2rdctr-2002: mit-pjz7gzxczvpmq -mit-us-ma-e25townsct-2003: mit-twgafrsqxjk62 -mit-us-ma-f8townhalls-2007: mit-rcupqub4jrlm4 -mit-us-ma-f7towns-2002: mit-jbu3r5rmm5lo4 -mit-us-ma-e63trail-2001: mit-zcyfd77fjnmay -mit-us-ma-e63trackstrails-2001: mit-wenmzjqkfrn6c -mit-us-ma-p3rts-2004: mit-juqnbtjqprnlk -mit-us-ma-boston-p33mbtas-1998: mit-bfop6lmtbjono -mit-us-ma-p3stations-2004: mit-amky6skv3jmhk -mit-us-ma-p3traintracks-2004: mit-kem4kbqukri6c -mit-us-ma-c32floodhazards-2012: mit-byi65t4uxvop6 -mit-us-ma-p8zip4-2002: mit-56c4ubsxdficw -mit-us-ma-a2utmgd-1996: mit-grgcbexvmfipm -mit-us-ma-a2utmpt-1996: mit-gnrs3ci44rphu -mit-us-ma-c3wtrsd-2000: mit-qj6qr6qyijp4e -mit-us-ma-e25zcta5dct-2000: mit-f6rqs4ucovjk2 -mit-us-ma-g44zone-2002: mit-ozciiczdrrn36 -mit-mr-a8gns-2003: mit-qduv7bt3jjnyw -mit-mp-a8gns-2003: mit-ymvbjiycujnam -mit-mf-a8gns-2003: mit-qr7febn4erj4o -mit-mx-bc-e25blockgroups-2000: mit-jbv2ui7okvmwq -mit-mx-bc-g46blocks-2000: mit-l6woo7rjevnvu -mit-mx-bc-f7counties-2000: mit-vdllp76mlfk7e -mit-mx-bc-g52lndmrklin-2000: mit-cocu4opomzlfe -mit-mx-bc-g52lndmrkpnt-2000: mit-ro435xbptfo2a -mit-mx-bc-g52lndmrk-2000: mit-dl3cobx7qviyu -mit-mx-bc-p8postcode-2000: mit-jplgfcr5lrjw6 -mit-mx-bc-p3rail-2000: mit-fogrbprmg5ogy -mit-mx-bc-a1state-2000: mit-nh5aqw5fxbii4 -mit-mx-bc-e2towns-2000: mit-e5n5zbzyanpsw -mit-mx-bc-g4urbanareas-2000: mit-7ibtdbubxzk2a -mit-mx-bc-f7urbandistrict-2000: mit-gu4kvc6ybnmnq -mit-mx-bc-c3water-2000: mit-itr4rnthnvnxc -mit-mx-ch-e25blockgroups-2000: mit-o5jqvveixni4q -mit-mx-ch-g46blocks-2000: mit-2bqxmabitjmz6 -mit-mx-ch-a1cities-2000: mit-r4cfuv5uofpig -mit-mx-ch-f7counties-2000: mit-y4swcbglsvpge -mit-mx-ch-p2highways-2000: mit-46bjozmibbkoo -mit-mx-ch-p53lakes-2000: mit-jvfclt4csjo7i -mit-mx-ch-g52lndmrklin-2000: mit-yda4kso6l5i34 -mit-mx-ch-g52lndmrkpnt-2000: mit-c34c6hbdr5l4m -mit-mx-ch-g52lndmrk-2000: mit-vkdpesoghjp32 -mit-mx-ch-p2mjrroads-2000: mit-q6oisv4u6njjq -mit-mx-ch-a8poi-2000: mit-tghleas2wrnwo -mit-mx-ch-p8postcode-2000: mit-2lsuvxpqijnko -mit-mx-ch-p3rail-2000: mit-gttdpygbizir4 -mit-mx-ch-p53rivers-2000: mit-j4zbvhow6nj3e -mit-mx-ch-a1state-2000: mit-qgnqqmlxqrie4 -mit-mx-ch-e2towns-2000: mit-cexl6hlzivml2 -mit-mx-ch-g4urbanareas-2000: mit-ahsnl2bxxfjog -mit-mx-ch-f7urbandistrict-2000: mit-f2zdlukcvzmas -mit-mx-ch-c3water-2000: mit-rzi2x34qzzp4a -mit-mx-a1cit-1990: mit-nsimt2kzwnmz4 -mit-mx-a1cities-2005: mit-imrgam32fniyk -mit-mx-a1city-2006: mit-gg6vn4el4zkqu -mit-mx-a1cities-2007: mit-lwdv4pioazkto -mit-mx-co-e25blockgroups-2000: mit-zu5zkn47aflxo -mit-mx-co-g46blocks-2000: mit-pakwudbjpnllo -mit-mx-co-f7counties-2000: mit-m2owz5bgpvi54 -mit-mx-co-g53lndmrklin-2000: mit-x455j6ozjnnpc -mit-mx-co-g52lndmrkpnt-2000: mit-qokqs3zdqbln4 -mit-mx-co-g53lndmrk-2000: mit-d3y537zg2fmoq -mit-mx-co-p8postcode-2000: mit-pohwcyulbzmry -mit-mx-co-p3rail-2000: mit-r56eohihdrio2 -mit-mx-co-p2roads-2000: mit-v24w2lz7gflvi -mit-mx-co-a1state-2000: mit-gqzrg5id7nkvy -mit-mx-co-e2towns-2000: mit-x7optfasvfkem -mit-mx-co-g4urbanareas-2000: mit-tfxusdvbdzimw -mit-mx-co-f7urbandistrict-2000: mit-fjeb2gwwpzkfs -mit-mx-co-c3water-2000: mit-smjxkxta5vj7a -mit-mx-c28contours-2005: mit-sb6lk4albnkd6 -mit-mx-c315dra-1990: mit-c7yu4bvm55lju -mit-mx-df-e25demographics-2010: mit-xtnycjbqlbkm6 -mit-mx-df-p61airports-2010: mit-u4xjqqjimrndg -mit-mx-df-e25blockgroups-2000: mit-arqomcy65bmhg -mit-mx-df-g46blocks-2000: mit-bycufsrobnjam -mit-mx-df-f7counties-2000: mit-w6suzftup5on6 -mit-mx-df-g52lndmrkpnt-2000: mit-5oineqehufkpm -mit-mx-df-g52lndmrk-2000: mit-gwtjh2kvuvlnc -mit-mx-df-g4parks-2010: mit-cae7lpunjrkkc -mit-mx-df-g52poi-2010: mit-mxnhnioftjltk -mit-mx-df-p8postcode-2000: mit-nolaepsjbfl6q -mit-mx-df-p3rail-2000: mit-mnupkyupfjk4q -mit-mx-df-a1state-2000: mit-jznalhhhxflca -mit-mx-df-e2towns-2000: mit-lhzc3m4mkbjd2 -mit-mx-df-g4urbanareas-2000: mit-22b7uppzxbn5k -mit-mx-df-f7urbandistrict-2000: mit-2vncngetyrndm -mit-mx-df-c3water-2000: mit-oi6uui7smnmga -mit-mx-df-c3water-2010: mit-rsopbiq555jv4 -mit-mx-a8gns-2003: mit-xolo5jfevrjvw -mit-mx-c3lake-1990: mit-24ygwgu7tjmua -mit-mx-a1cities-1996: mit-7fihqlcpybncw -mit-mx-p2roads-1996: mit-4cpsfrvx5jiku -mit-mx-em-e25blockgroups-2000: mit-n274bsmukfknc -mit-mx-em-g46blocks-2000: mit-hfilo7d6wnpsg -mit-mx-em-f7counties-2000: mit-5r36wklg3jo4g -mit-mx-em-g52lndmrkln-2000: mit-xucru33dhrjyi -mit-mx-em-g52lndmrkpnt-2000: mit-2eb2xh4panow2 -mit-mx-em-g52lndmrk-2000: mit-cv4msa4gqzolw -mit-mx-em-p8postcode-2000: mit-4mwah7vwszmys -mit-mx-em-p3rail-2000: mit-dfmorcci6vmru -mit-mx-em-p2roads-2000: mit-nyyrz4cai5ibc -mit-mx-em-a1state-2000: mit-immlcgh3enloi -mit-mx-em-e2towns-2000: mit-5hq5edcm7rnzu -mit-mx-em-g4urbanareas-2000: mit-ctq2rihakzjse -mit-mx-em-f7urbandistrict-2000: mit-zzcsvgkehzpky -mit-mx-em-c3water-2000: mit-3l5vatuianndu -mit-mx-f7mun-1999: mit-lojpsnhcrzo2y -mit-mx-f7municipalities-1997: mit-62hsd7ct3jn4y -mit-mx-f7muni-2005: mit-vp3tip5veziiy -mit-mx-f1admin-2006: mit-vfyyenf5obolm -mit-mx-nl-e25blockgroups-2000: mit-ztk3vn2q65iwi -mit-mx-nl-g46blocks-2000: mit-4t5p2jmjenppq -mit-mx-nl-f7counties-2000: mit-6mbpi62bcrmn6 -mit-mx-nl-g52lndmrkln-2000: mit-5qyqxysnuziio -mit-mx-nl-g52lndmrkpnt-2000: mit-ltxq6iajvzn2s -mit-mx-nl-g52lndmrk-2000: mit-7nxojux7jnonk -mit-mx-nl-p8postcode-2000: mit-mmgxjv4rxvnua -mit-mx-nl-p3rail-2000: mit-pmqka7fcdvksg -mit-mx-nl-p2roads-2000: mit-3fx3dzpfa5oow -mit-mx-nl-a1state-2000: mit-ocwk27u645l6y -mit-mx-nl-e2towns-2000: mit-rr34nnyvx5pxy -mit-mx-nl-g4urbanareas-2000: mit-esngbzrcr5nuw -mit-mx-nl-f7urbandistrict-2000: mit-q37hg4snxjl7g -mit-mx-nl-c3water-2000: mit-bvhaqgznpfn34 -mit-mx-p3rails-2005: mit-4fywg5y4efo2i -mit-mx-p3rails-2006: mit-5xkjn6pwwfp66 -mit-mx-p3rails-2007: mit-tg7axur7wfptm -mit-mx-p53riv-1990: mit-ql3wadmijfkoc -mit-mx-c3rivers-2005: mit-s7vgs3c2lfkae -mit-mx-p2rds-1990: mit-tzkh4tvru5jro -mit-mx-p2roads-2005: mit-ee7bc64d2noci -mit-mx-p2roads-2006: mit-belqxkfeyjluy -mit-mx-p2roads-2007: mit-d7siqsnkabm5c -mit-mx-so-e25blockgroups-2000: mit-evhayqyu4rkzy -mit-mx-so-g46blocks-2000: mit-n3tzj4mxzvpga -mit-mx-so-f7counties-2000: mit-bxmgfeydonn22 -mit-mx-so-g52lndmrkln-2000: mit-ahvrmb62vfltm -mit-mx-so-g52lndmrkpnt-2000: mit-6m3a7fwurfmvo -mit-mx-so-g52lndmrk-2000: mit-qqkswpe5unnqu -mit-mx-so-p8postcode-2000: mit-3udq7omv5fjk4 -mit-mx-so-p3rail-2000: mit-2gs6rrwt2jj6w -mit-mx-so-p2roads-2000: mit-tajg36uz45i5g -mit-mx-so-a1state-2000: mit-jmgsgmlh4fonq -mit-mx-so-e2towns-2000: mit-gxpyl53v6bp2o -mit-mx-so-g4urbanareas-2000: mit-56nazzap55nzw -mit-mx-so-f7urbandistrict-2000: mit-hdb5blmd2nok6 -mit-mx-so-c3water-2000: mit-xeslz47wqnkru -mit-mx-f7sts-1992: mit-axqbsfcojjpxu -mit-mx-f7states-1996: mit-3bw5hc7awjjng -mit-mx-f7states-2005: mit-gowxaeychzoag -mit-mx-f7states-2006: mit-lmoxrwjuy5jx4 -mit-mx-tm-e25blockgroups-2000: mit-kjkb72sbznk7g -mit-mx-tm-g46blocks-2000: mit-wcqcy7leyjmzs -mit-mx-tm-f7counties-2000: mit-ncpufy5e4jmwg -mit-mx-tm-g52lndmrkln-2000: mit-txk3nkvz6voeq -mit-mx-tm-g52lndmrkpnt-2000: mit-vkan5p7km5nfs -mit-mx-tm-g52lndmrk-2000: mit-nnwdlrgynblmi -mit-mx-tm-p8postcode-2000: mit-qru6fgdcnvo7c -mit-mx-tm-p3rail-2000: mit-yfh3gkeisrl2y -mit-mx-tm-p2roads-2000: mit-z36uohivmbpm6 -mit-mx-tm-a1state-2000: mit-nnxxczftkvp5e -mit-mx-tm-e2towns-2000: mit-22c43n4bvzik2 -mit-mx-tm-g4urbanareas-2000: mit-cpfkpbfnsrkqc -mit-mx-tm-f7urbandistrict-2000: mit-7ccfnsvjujnme -mit-mx-tm-c3water-2000: mit-go5ut53ranm2u -mit-mx-f1urban-2005: mit-z5zaosl5mvovi -mit-mx-f1urban-2006: mit-vflhzz7qarmhi -mit-mx-f1urban-2007: mit-sv65te4fffoly -mit-mx-c3bodies-2005: mit-fbjtwcnacvj3c -mit-mx-c3bodies-2007: mit-fm5w57rygrmua -mit-md-p8postcode4dig-2008: mit-cz6qrtrs6rljo -mit-md-a8gns-2003: mit-za35dnv2mbowg -mit-md-f7municipalities-2008: mit-gsowk4t5zbpgw -mit-mn-a8gns-2003: mit-cewp2zqth5lrk -mit-mn-p2roads-2009: mit-rrcr3wcds5lz4 -mit-mg-p8postcode4dig-2009: mit-4yulnhtmqnmjk -mit-mg-f7districts-2009: mit-7djteg34jjns4 -mit-mg-a8gns-2003: mit-hcky7tlg4zix2 -mit-mj-p8postcode2dig-2008: mit-xl4nymh7anp76 -mit-mj-f7municipalities-2008: mit-jxmfj6gqfnis4 -mit-mh-a8gns-2003: mit-3faysvwvmrpdu -mit-mo-a8gns-2003: mit-6atcolfnhnkde -mit-mz-f7districts-2002: mit-7rxkexahebjgk -mit-mz-c2elevation-1999: mit-leuwcnxkt5pju -mit-mz-c32flood-1999: mit-n6uxbwzlbbp5q -mit-mz-g17warehouses-1999: mit-rntwsqk4u5i26 -mit-mz-a8gns-2003: mit-3z6nr3qn3vnmw -mit-mz-e58healthfac-2004: mit-vuy6wxjarnllu -mit-mz-p53rivers-1999: mit-5ovxwoiihrj56 -mit-mz-e624ngos-2004: mit-o3km5scz5flxg -mit-mz-a1places-2007: mit-qgjkp5vwdfoxm -mit-mz-p2primaryroads-2002: mit-2mfnsphxkrlce -mit-mz-p2roads-2002: mit-huuzhvkbj5k6w -mit-mz-p2secondroads-1999: mit-cm3ybq674vp3m -mit-mz-p2tertroads-2002: mit-bvavrnbutbjrq -mit-mz-e624unwfp-1999: mit-l7k5lvxhznpr2 -mit-mz-a1villages-2007: mit-s4ruigbzqbp5w -mit-na-c315catchments-2001: mit-2agmuh7z6vmf6 -mit-na-c2escarpment-2002: mit-texiwp7pwbk4g -mit-wa-a8gns-2003: mit-c5wta5bfjblni -mit-na-c2landscapes-2002: mit-bvft5nthffkee -mit-na-c315pans-2001: mit-z53ttdh2zjmt2 -mit-na-p53rivers-2002: mit-t46z2oo65zk4m -mit-na-g5townlands-2002: mit-dqw7n3d6jnjhg -mit-na-c2features-2002: mit-t54rozn3qfliu -mit-nr-a8gns-2003: mit-rvlszsiorrmn2 -mit-np-p8postcode3dig-2009: mit-qhekq2x4o5nka -mit-np-f7districts-2009: mit-akhyws7rq5oqq -mit-np-a8gns-2003: mit-5slweuniknin4 -mit-np-f7zones-2009: mit-42znbknmgvow4 -mit-nl-p8postcode4dig-2008: mit-anszozzhpvpna -mit-nt-a8gns-2003: mit-6irrntsqyzli2 -mit-nl-a8gns-2003: mit-bi2u4ry4hjjbc -mit-nl-f7municipalities-2008: mit-uscrbpfqfvoa2 -mit-nl-f7provinces-2008: mit-p5ovlulmbzmxy -mit-nc-a8gns-2003: mit-tpvfjm6vznlww -mit-us-newengland-f7brdr-2003: mit-tzhxvisy3vp24 -mit-us-nh-f7towns-1998: mit-vfqium6pjjnzc -mit-us-nj-c31coastline-1996: mit-ewxjxvjzefogq -mit-us-nj-c1contaminated-2005: mit-ebblni7spfnvy -mit-us-nj-f7counties-2003: mit-hpkoir2k2jnli -mit-us-nj-e63golf-2001: mit-hisljaabuvkq2 -mit-us-nj-g52historic-2004: mit-b5ngvc3q5jkbm -mit-us-nj-g46kcsdeeds-2004: mit-sawxjlupffk3k -mit-us-nj-p53lakes-1998: mit-qrzaitsl7foug -mit-us-nj-g4lulc-1998: mit-cbsvmjtz7znko -mit-us-nj-a1municipal-2005: mit-urtdcyekankw4 -mit-us-nj-p52protectland-2005: mit-xr3aowdh5zks4 -mit-us-nj-p53rivers-1993: mit-p4d6pku4hficc -mit-us-nj-p53streams-1998: mit-5sjvx62n5bosm -mit-us-nj-p4waterdischarge-2002: mit-z3ptlfb5s5kma -mit-us-nj-c35swqs-2005: mit-d2qullco7fjzu -mit-us-nj-d1lwetland-1998: mit-nv6ar6nwjbiqm -mit-us-nj-d1wetland-1998: mit-6pbn3tl6gzpxu -mit-us-la-no-g46buildings-2011: mit-s2kcztdbabkug -mit-us-la-no-g46buildings-082005: mit-hgdicwk7wznka -mit-us-la-no-g46buildings-092005: mit-3s7e52enhrldo -mit-us-la-no-f7council-2006: mit-hmud6lvm5rmn2 -mit-us-la-no-g46lots-2007: mit-i3ou6q2pxrmew -mit-us-la-no-f7munidist-2006: mit-liz6vbwubvmjg -mit-us-la-no-f1hood-2007: mit-nbdmtlx2djn6s -mit-us-la-no-f7parish-2006: mit-cg7xhk4yxviuc -mit-us-la-no-g45plandist-2006: mit-c6xck7fgzrld2 -mit-us-la-no-f85precinct-2006: mit-hka4ay3anzpbu -mit-us-la-no-p2street-2006: mit-4sltsrfp7johg -mit-us-la-no-f7ward-2006: mit-kb2mdf2kmnps4 -mit-us-la-no-p8zip-2007: mit-6lloswta2jn3w -mit-us-la-no-g44zoning-2007: mit-qnjrxph73zikc -mit-us-ny-nyc-f7borobndrys-2005: mit-xky37eftczptg -mit-us-ny-nyc-f7boroughs-2010: mit-yboicagikblfk -mit-us-ny-nyc-f7citycncldist-2005: mit-tworkedhhjnmw -mit-us-ny-nyc-f7citycouncil-2010: mit-ld5o2sr6bjnau -mit-us-ny-nyc-f7cmmntydist-2005: mit-27pov3etf5kt2 -mit-us-ny-nyc-f7communitydist-2010: mit-gyvqgqyzyrnem -mit-us-ny-nyc-f7congrdist-2005: mit-e2buo4ywwzkuq -mit-us-ny-nyc-f7-electdist-2005: mit-66szdthtavlmg -mit-us-ny-nyc-f7electdist-2010: mit-pmnrmagtsvldy -mit-us-ny-nyc-g475firecompany-2010: mit-6rwi6vy36nlzs -mit-us-ny-nyc-g44fresh-2011: mit-y4pifkcha5mvy -mit-us-ny-nyc-e55healthdist-2005: mit-l3rkd6vdbzkfs -mit-us-ny-nyc-e55healthareas-2010: mit-e7uvgovxb5oyg -mit-us-ny-nyc-e55healthctrdst-2010: mit-6v7dojnsbfkr4 -mit-us-ny-nyc-e73inclusionary-2011: mit-ezr3mqtcmzidw -mit-us-ny-nyc-g44ltdheight-2011: mit-r24ntwh3sfleo -mit-us-ny-nyc-g44ldgma-2011: mit-ta3qko7ayjp5y -mit-us-ny-nyc-f85muncourtdst-2005: mit-4p7dtqh4ovo3m -mit-us-ny-nyc-f85policepcts-2005: mit-2pgq7hlqpnlyi -mit-us-ny-nyc-f85policepcts-2010: mit-lirwbpazljotg -mit-us-ny-nyc-g52paws-2010: mit-d5suucczbjniy -mit-us-ny-nyc-e68schooldist-2005: mit-6ncg24cpurnwu -mit-us-ny-nyc-e68schooldist-2010: mit-rvuhkjvgvvoqc -mit-us-ny-nyc-f7assmblydist-2005: mit-blfur4wolnm7g -mit-us-ny-nyc-f7statesendist-2005: mit-ucexn6sx3njaw -mit-us-ny-nyc-p33sbwyentr-2011: mit-auldwrb3unjku -mit-us-ny-nyc-g52waterfront-2010: mit-v5e4peyzenlru -mit-us-ny-nyc-g44zoningdist-2011: mit-kpgxw4amwflnc -mit-us-ny-f7towns-1998: mit-htrdr4nmsziu6 -mit-nz-p8postcode4dig-2007: mit-mlznus6rifnt6 -mit-nz-a8gns-2003: mit-mmuhnsglqjn32 -mit-nz-f7territoryauthorities-2007: mit-6npm7yctpvkae -mit-us-ma-newton-c-e25blcks-1998: mit-bcscyjpzirmdy -mit-us-ma-newton-c-g46bldgs-1998: mit-n4cfjyntwfk7w -mit-us-ma-newton-c-n1easmt-1998: mit-45j6h6flgniwk -mit-us-ma-newton-c-s1hstrc-1998: mit-hmjpes3d6njme -mit-us-ma-newton-c-p2mdian-1998: mit-l4lmhdssbbjho -mit-us-ma-newton-c-g52opnsp-1998: mit-6cptcl2pjnkvw -mit-us-ma-newton-c-g46prcls-1998: mit-5s6cxk67hzmbw -mit-us-ma-newton-c-p2stedg-1998: mit-fvs4y5brqnmt2 -mit-us-ma-newton-c-f7tile-1998: mit-ztm7z75bqfiv4 -mit-us-ma-newton-c-g44zone-1998: mit-s3bqt7mrebnfq -mit-us-ma-newton-p2roads-1998: mit-hafutoh3kzmis -mit-us-ma-newton-p22bus-1998: mit-b657hss7objbg -mit-us-ma-newton-p33stops-1998: mit-m5wihlk6knk6u -mit-us-ma-newton-c3stream-1998: mit-d4s2ptu3vbnby -mit-us-ma-newton-p2ctrln-1998: mit-maob6mobwvkvq -mit-us-ma-newton-c3srfce-1998: mit-7752xpfnffpsw -mit-us-ma-newton-c3wetld-1998: mit-ebe6mypc7fiis -mit-nu-a8gns-2003: mit-vszycfgoebilg -mit-nu-f7municipalities-1996: mit-2kxgqathenonm -mit-ng-f7districts-1996: mit-4seed2hxdbpmo -mit-ng-a8gns-2003: mit-7ytnon5glfpiy -mit-ni-p8postcode2dig-2004: mit-jl4s55wrkbnfg -mit-ni-a8gns-2003: mit-vxh2ml2gozouy -mit-ni-f7lgas-2004: mit-pszr7nj6gjmrm -mit-ne-a8gns-2003: mit-v62nxfjivzjoi -mit-nm-a8gns-2003: mit-j36xsvjrcnm2k -mit-nf-a8gns-2003: mit-pddr672i2zjo6 -mit-na-p61airports-2009: mit-nvbgzz4pjrlui -mit-na-p61airports-2010: mit-yitawpguffmsu -mit-na-a1cities-2009: mit-ngjf4mw2wzkum -mit-na-a1citylimits-2009: mit-3yxs2q4vhjm64 -mit-na-a1citylimits-2010: mit-k6pgpri5vjkp4 -mit-na-n4cntrlareapts-12-2008: mit-2uzfod5kpfoou -mit-na-n4cntrlareas-2008: mit-5jj7btdpfzlk6 -mit-na-n4elecfederalreg-12-2008: mit-abbhwznwizok4 -mit-na-n4holdincoterr-2008: mit-sgjg746cxrpee -mit-na-n4holdincoterr-12-2008: mit-jva3bxcip5lsy -mit-na-n4electriciouterr-2008: mit-setjpega3bj6w -mit-na-n4electriciouterr-12-2008: mit-gqnuzs7ttjl2e -mit-na-n4mktareaconnect-12-2008: mit-olvtrpxrczlgk -mit-na-n4mktareapts-12-2008: mit-h3ekgwhahnnvg -mit-na-n4mktarea-12-2008: mit-ctr7jhfpezi5e -mit-na-n4mktarea-2008: mit-biawn52uu5nmi -mit-na-n4electricnoniouterr-2008: mit-oz2pp2cudnjlu -mit-na-n4planareas-2008: mit-wypvog37fzo4q -mit-na-n4planareas-12-2008: mit-snvidndmbfpvm -mit-na-n4electricsubstn-2008: mit-nfzpczpy65mms -mit-na-n4electricsubstn-08-2008: mit-i4n4tfsvnflyk -mit-na-n4electricsubstn-12-2008: mit-kc2rlmptrzjhs -mit-na-n4transareapts-12-2008: mit-5wl34h56uznea -mit-na-n4transareas-2008: mit-j6k7sgatqnndk -mit-na-n4transareas-12-2008: mit-ifa2ojnfhvl5q -mit-na-n4electrictranslns-08-2008: mit-p4c73sbowfpzi -mit-na-n4electrictranslns-12-2008: mit-anlwpi4xvvore -mit-us-n3pwrcopoints-2008: mit-yvuyf6tij5ngu -mit-na-p8zip5dig-2009: mit-6ebdzlre2nmju -mit-na-p8zip5dig-2010: mit-lrzmibfjcrko2 -mit-na-p8zip5digpoints-2009: mit-kvwolwyg6jmz2 -mit-na-p2exits-2010: mit-m4cshpl3njluq -mit-na-p2highways-2009: mit-imnrdna6grm5g -mit-na-e1institut-2009: mit-xr45qaqz5riuy -mit-na-e1institut-2010: mit-bqi5pge3vbow2 -mit-na-p2interstates-2009: mit-ppcu2lucrzmic -mit-na-n3operzone-2008: mit-fu4hlytipjjak -mit-na-q1isopricing-12-2008: mit-e7qrc42d7nm3w -mit-na-p53lakes-2010: mit-mmio7ztgdrlqs -mit-na-e1lndmrks-2009: mit-cwnyhat2czjjc -mit-na-e1lndmarks-2010: mit-5oxvjwhnlznyy -mit-na-h8gasimport-2008: mit-iwtpwzwvyvkks -mit-na-h8gasimport-12-2008: mit-m4k2obcpgbnk6 -mit-na-a1mjrcities-2009: mit-3gg2fhmnxnnzc -mit-na-a1mjrcities-2010: mit-gn27k6ujkrpgo -mit-na-p53mjrlakes-2009: mit-xdffbo4hqzong -mit-na-p2mjrroads-2009: mit-hc3y4hlghjmdw -mit-na-p53mjrwater-2009: mit-er5txuk2zjjlm -mit-na-n3mwprice-08-2008: mit-xxcnt2rfajops -mit-na-n3mwprice-12-2008: mit-whs5xbd3wvljy -mit-na-n3mwprice-03-2008: mit-2vtajs3fonlve -mit-na-p53minrivers-2009: mit-gmnghheojvpyg -mit-na-h8gasholdingterr-2008: mit-2ghkhtvltjjp2 -mit-na-h8natgaspipelns-2008: mit-anooz3xlczlp6 -mit-na-h8natgaspipelns-08-2008: mit-rjwfsnfx65mvo -mit-na-h8natgaspipelns-12-2008: mit-grzo52cntzmhg -mit-na-h8gaspoints-2008: mit-rlmt7i577jkcw -mit-na-h8gasutilityterr-2008: mit-zrsev4cdyjik6 -mit-na-n42gasutilityterr-12-2008: mit-7qiza3x2vjnng -mit-na-n3nercreg-2008: mit-wvan6tyjyjpy2 -mit-na-n3nercreg-08-2008: mit-5yzq7swzf5kjq -mit-na-n3nercreg-12-2008: mit-24haci233jnzs -mit-na-n3nerczone-2008: mit-434frkn7wjlqe -mit-na-n3nerczone-08-2008: mit-cy7fjp5gqbmjc -mit-na-n3nerczone-12-2008: mit-vfcslae4tbkbs -mit-na-n3noregesp-2008: mit-ltlinb6at5i6e -mit-na-h8gasserviceterr-2008: mit-nyhngknx5vjzy -mit-na-g52parks-2009: mit-rjbt36ix5zo4e -mit-na-g52parks-2010: mit-gkfx2hsfojkyq -mit-na-n3pwrplants-2008: mit-uwylymjma5j4y -mit-na-n3pwrplants-08-2008: mit-c6wlcbcmmjigw -mit-na-n3pwrplants-12-2008: mit-wirxhtoj4zii6 -mit-na-p3rail-2009: mit-pewm6ruqermmy -mit-na-e63recareas-2009: mit-52lzzuekobj4i -mit-na-q46retail-2009: mit-gluuq3qckzony -mit-na-n3rtoterr-2008: mit-ccocp2gokbmyo -mit-na-f7stateborders-2009: mit-nhuu7jqrzfpws -mit-na-f7statepoints-2009: mit-alqx5n2i4vnby -mit-na-n4translnconstraints-2008: mit-rm2xfoadzjixw -mit-na-n4translnconstraint-12-2008: mit-si3ay2pdsvjga -mit-na-p1transterms-2009: mit-huzxa7qzdni6g -mit-kn-f7districts-2009: mit-zzynmoseyfin6 -mit-kn-a8gns-2003: mit-zphme6wp2rpry -mit-no-p8postcode4dig-2008: mit-leauwjfsqnorq -mit-no-g2econregions-2008: mit-jmgaehvv7jn66 -mit-no-a8gns-2003: mit-emi55kutpjmli -mit-no-f7municipalities-2008: mit-p75unixuhvjxc -mit-os-a8gns-2003: mit-umfuwnas3jlyw -mit-mu-f7districts-2009: mit-n4o6mufvmnlps -mit-mu-a8gns-2003: mit-dcoszsxiebmpo -mit-pk-f7districts-2009: mit-wuop2rwfybnnu -mit-pk-a8gns-2003: mit-kadf3326nvkn6 -mit-pk-karachi-p22busroutes-2006: mit-yfflsyq4xbkdm -mit-pk-karachi-p22busstops-2006: mit-rsedmbp7bjp6m -mit-pk-karachi-e58epi-2006: mit-wgms557cbnias -mit-pk-karachi-e58gp-2006: mit-2yos6pqxebl3q -mit-pk-karachi-e58hosp-2006: mit-l75cgvh5ozmpc -mit-pk-karachi-e1landmarks-2006: mit-vsiv5ezxprjzs -mit-pk-karachi-g46lyari-2006: mit-hjy6ve2smnj4o -mit-pk-karachi-p2roads-2006: mit-uoj5rkd7dbiga -mit-pk-karachi-g46saddar-2006: mit-5bekm3g23zkfu -mit-pk-karachi-f7towns-2006: mit-a5ktihj6zzjke -mit-pk-karachi-f7councils-2006: mit-olb5xquknfjby -mit-ps-a8gns-2003: mit-yhhme3mdgvmfo -mit-pm-f7counties-1997: mit-qap766y3wvnjq -mit-pm-f7municipalities-1997: mit-kwer2fvrkfk2k -mit-pp-p8postcode2dig-2009: mit-6vaejzpr6bkjy -mit-pp-f7districts-2009: mit-b4epnt5yinksu -mit-pf-a8gns-2003: mit-xhrn5yqcsblrw -mit-pa-a8gns-2003: mit-fyfwefxynjos2 -mit-pa-f7municipalities-1994: mit-jsfgqlsk5zins -mit-pe-f7municipalities-1996: mit-4lzupmma3rkcm -mit-rp-p8postcode2dig-2009: mit-ir5ntxfzaris6 -mit-rp-f7provinces-2009: mit-iuqdkz77qfn2o -mit-pc-a8gns-2003: mit-v5mbhbevt5mis -mit-pl-p8postcode5dig-2008: mit-vdxdgup3ibnuq -mit-pl-f7districts-2008: mit-bulnxx2gurp2k -mit-pl-f7municipalities-2008: mit-wnbxefys7blrk -mit-pl-f7submunicipalities-2008: mit-wzjthvropnpxm -mit-po-p8postcode4dig-2008: mit-shx2eaaczjjxs -mit-po-f7localcouncils-2008: mit-vak4ul6t2nlys -mit-po-f7municipalities-2008: mit-p6bttem4hronw -mit-rq-p8postcode5dig-2006: mit-qcd5dtdjf5jas -mit-rq-f7barrios-2006: mit-mckvafwe2ziqq -mit-qa-f7zones-2009: mit-pp2xxtxt2fpvm -mit-us-ny-queen-e-g47txlts-2006: mit-j6pflap7yrnry -mit-us-ny-queen-w-g47txlts-2006: mit-gwo37rc63zlti -mit-us-ny-nyc-qn-g47txblks-2005: mit-teuk3cuxz5kwu -mit-re-a8gns-2003: mit-zr5ra2qbinmg4 -mit-us-ri-f7towns-1998: mit-xgrnlbykffoti -mit-us-ny-nyc-ro-g46bldghgt-092012: mit-yg72sulv7zm5e -mit-ro-p8postcode6dig-2008: mit-cjvje7xnezmyw -mit-ro-f7municipalities-2008: mit-xuw6b3oitvkom -mit-rs-p8postcode2dig-2008: mit-gp5d7ocihbk2u -mit-rs-f7districts-2008: mit-li5nwx5vjvocq -mit-rs-f7regions-2008: mit-yen4yykm55pcy -mit-ru-h1deposits-2003: mit-vjh6lqfaaflkm -mit-sc-a8gns-2003: mit-5ifdy6a7pzo5u -mit-st-a8gns-2003: mit-nw7hvvtbrfi7q -mit-sb-a8gns-2003: mit-2dqdhuzo45jwm -mit-vc-a8gns-2003: mit-ov3wir3jkfmdo -mit-ws-a8gns-2003: mit-fn4c2jmfpnnx2 -mit-us-ca-sd-k5cedarburnscar-2003: mit-kv3avpk33bml6 -mit-us-ca-sd-k5fireparcels-2003: mit-eauxmvdff5pd6 -mit-us-ca-sanfran-g46bldg-2011: mit-dqtbhcmu3fmjk -mit-us-ca-sanfran-g45ngbhd-1998: mit-gtb3ytnrrfku6 -mit-us-ca-sanfran-g46prcls-2001: mit-i3hv7qpenvp2w -mit-us-ca-sanfran-p2roads-2000: mit-grm2wjunuricy -mit-sm-a8gns-2003: mit-miqrsbqqdznak -mit-sm-p2roads-2009: mit-qf2ckt23mnipk -mit-sa-p8postcode1dig-2009: mit-emypun4pnnop4 -mit-sa-f7governorates-2009: mit-5ok5nq53qvjpg -mit-sg-a8gns-2003: mit-y3kmxihq2fmfg -mit-ri-p8postcode2dig-2008: mit-4gtyq4a27nj5c -mit-yi-a8gns-2003: mit-nrwnon5ghbn2i -mit-ri-f7districts-2008: mit-ttv6p2tdh5me6 -mit-ri-f7municipalities-2008: mit-h57btzc3ibimo -mit-sn-p8postcode2dig-2009: mit-4e2nnml3bjmgo -mit-sn-f7planningareas-2009: mit-ea4ntbrw3nnne -mit-lo-p8postcode5dig-2008: mit-4ayjqeih55ji4 -mit-lo-f7districts-2008: mit-35qi46gy7noty -mit-lo-f7municipalities-2008: mit-6kufbk5tbbnny -mit-si-p8postcode4dig-2008: mit-lyt2usefavklw -mit-si-f7districts-2008: mit-zk3ueyihgnpr6 -mit-si-f7municipalities-2008: mit-zs7k6ibnwfmlw -mit-us-wa-snohomish-p61rnway-2000: mit-myquucyxpvoqw -mit-us-wa-snohomish-p2artpln-2002: mit-sqqezszx6zprw -mit-us-wa-snohomish-c3basin-2005: mit-xy6gowwiejk7o -mit-us-wa-snohomish-a1cit-2002: mit-2g4xjik6nfops -mit-us-wa-snohomish-f7cgrs-2005: mit-gznwzzhjy5ju6 -mit-us-wa-snohomish-f7cnty-1997: mit-yi4qhkhnynozq -mit-us-wa-snohomish-f7cntycl-2005: mit-kagsxjrez5pf2 -mit-us-wa-snohomish-g52parks-2004: mit-ulqol3ofijppq -mit-us-wa-snohomish-e63trail-2004: mit-t5cbln6vlrjfu -mit-us-wa-snohomish-p2rts-2000: mit-cfjxdgyranlmy -mit-us-wa-snohomish-f7firdist-2005: mit-ecra4rpfwvj3q -mit-us-wa-snohomish-f81fire-2005: mit-cqf5kglgqjmr4 -mit-us-wa-snohomish-g4luse-2004: mit-agrtibgyhjo4s -mit-us-wa-snohomish-f7hospcom-2005: mit-4os65ifjhjoao -mit-us-wa-snohomish-f7hospdst-2005: mit-afkixwdxcroto -mit-us-wa-snohomish-f7court-2005: mit-cpw6maq7gjjrk -mit-us-wa-snohomish-f7legdis-2005: mit-4drismfvlvmtw -mit-us-wa-snohomish-f7libcap-2000: mit-52wekxjchnik4 -mit-us-wa-snohomish-f7libdist-2005: mit-kk2o5rxqprp6i -mit-us-wa-snohomish-p2majrds-2003: mit-7osvtru53fp3o -mit-us-wa-snohomish-h1mineral-2003: mit-f2rgfix4y5lie -mit-us-wa-snohomish-g52prkdst-2005: mit-lbddza5kwvkjw -mit-us-wa-snohomish-g52prkprp-2000: mit-xfp2j62jiflh4 -mit-us-wa-snohomish-f7prtcomm-2005: mit-r2attb6anrnpu -mit-us-wa-snohomish-f7prtdist-2005: mit-46ccpkhkjvjny -mit-us-wa-snohomish-g5plss-2003: mit-yniuir57fzp6e -mit-us-wa-snohomish-g5plssgrd-2003: mit-h4cvdpegynjoc -mit-us-wa-snohomish-g5plssqtr-2003: mit-m3bcxli5fjm4w -mit-us-wa-snohomish-f81pubsrv-1997: mit-sioxg67tbrpla -mit-us-wa-snohomish-p1trnsben-2005: mit-tkkhdsujvbobq -mit-us-wa-snohomish-f7utildst-2005: mit-xezlxpojg5llu -mit-us-wa-snohomish-f7utilcom-2005: mit-rcbipzi7ynphg -mit-us-wa-snohomish-p3rr-2004: mit-t6uyhdcsmbnwa -mit-us-wa-snohomish-f7trnsdst-2005: mit-7m5zbuvtjznyq -mit-us-wa-snohomish-p2rdctr-2000: mit-ibphl42jprie4 -mit-us-wa-snohomish-g4urbrurl-2004: mit-dqm3gf5vcnj2m -mit-us-wa-snohomish-f7schldst-2004: mit-64sjlrcidbp66 -mit-us-wa-snohomish-e68schls-2005: mit-iskiwhlxa5mcw -mit-us-wa-snohomish-f7swrdist-2005: mit-uoix4p24hnmsm -mit-us-wa-snohomish-p2stctr-1996: mit-ron734k2ornri -mit-us-wa-snohomish-g45tdr-2004: mit-xtsurrzshfj6a -mit-us-wa-snohomish-g5townshp-1997: mit-dhugpdvvvjjyy -mit-us-wa-snohomish-f1urbctr-2004: mit-dp7cabobgrlf4 -mit-us-wa-snohomish-g45urbgrt-2004: mit-ydpua4itanmmm -mit-us-wa-snohomish-g45urbres-2004: mit-crwdugyrb5j4o -mit-us-wa-snohomish-f7votprcp-2005: mit-l23jabq3gzieu -mit-us-wa-snohomish-f7voteprc-2005: mit-ppx3h2oagjonq -mit-us-wa-snohomish-c3wtrbdy-2004: mit-rejasqccmbidi -mit-us-wa-snohomish-c3wtrcrs-2004: mit-bwgio4dr4rmu2 -mit-us-wa-snohomish-f7wtrdist-2005: mit-fgkui5bt2zpz4 -mit-us-wa-snohomish-c3wtlnd-2004: mit-xtkw7dc6pzpk2 -mit-us-wa-snohomish-g44zone-2004: mit-l5yh5jdlg5kh4 -mit-us-ma-somerville-g46blck-1999: mit-it4l26zq2zlfc -mit-us-ma-somerville-g46bldg-1999: mit-rqgdxqwdgrp7s -mit-us-ma-somerville-g46prcl-1999: mit-lebm4p54xbogs -mit-us-ma-somerville-p2sdwlk-1999: mit-6lhljelgpnmbe -mit-us-ma-somerville-p2strcl-1999: mit-m6x7ivdtmzjmk -mit-us-ma-somerville-c3mystc-1999: mit-psyyntkt4vpxy -mit-sf-wc-g46erven-1998: mit-3da6yibgc5lg2 -mit-sf-capetown-a2imagegrid-2008: mit-mv6a6yndvrle6 -mit-sf-capetown-c28contours-2008: mit-o3d6inkikjozq -mit-sf-capetown-g46apperven-2008: mit-7mjtx52ownn6w -mit-sf-capetown-g52cpnparea-2008: mit-c24vvdpxbblhm -mit-sf-capetown-e58clinics-2008: mit-zj5ly2bmyvklw -mit-sf-capetown-f81firestns-1999: mit-uejx6klqdfkns -mit-sf-capetown-e58govhosps-2008: mit-a45ya2uaszopo -mit-sf-capetown-e63halls-2002: mit-hpg745btfblhg -mit-sf-capetown-a8hotels-2002: mit-5s4g57fgxbpbo -mit-sf-capetown-m1indusparks-2008: mit-b3ufkrn4efps4 -mit-sf-capetown-g45settlemnt-2008: mit-abd4esdfcblly -mit-sf-capetown-e67libraries-2001: mit-mlljq4wv6rogy -mit-sf-capetown-p2majroads-2000: mit-npyubdys3jklu -mit-sf-wc-f8metrocouncil-1998: mit-bx6h2le4tjngq -mit-sf-capetown-e4worship-2008: mit-kvjmvjfylvkfq -mit-sf-capetown-f85policestn-2002: mit-uggzl673brmrm -mit-sf-capetown-p8postoffs-1999: mit-g3uof3r7x5i4i -mit-sf-capetown-e58privhosps-2001: mit-vbaigdu25vm2w -mit-sf-capetown-g52protarea-2008: mit-q5qo6fh4evjug -mit-sf-capetown-p3railroads-2003: mit-i6lvzdbz2jiuc -mit-sf-capetown-p3rrstations-2008: mit-kz6phiui7rm5k -mit-sf-capetown-g46regprops-2008: mit-afpb7xbfero5o -mit-sf-capetown-c3rivers-2008: mit-galwmr5c35nus -mit-sf-capetown-p2roads-2008: mit-mfabxtyu7zjva -mit-sf-capetown-e63sportsfac-2000: mit-pacpwdxc2zjcy -mit-sf-capetown-p8addresses-2008: mit-bfvlv6eyy5nze -mit-sf-capetown-a1suburbs-2008: mit-racqltklsnon4 -mit-sf-capetown-f85traffoff-2002: mit-x55qqdhw6bmmy -mit-sf-capetown-c3lakes-2008: mit-5cebox6zv5pj4 -mit-sf-ec-f7landadmin-1998: mit-r5wugx4dhzmcm -mit-sf-ec-g46allotmttwp-1998: mit-gb4jr4dz3fotq -mit-sf-ec-g46communalland-1998: mit-2czaid7ievo3c -mit-sf-ec-f7distmunicipal-1998: mit-7giptzljdvkem -mit-sf-ec-f7distmgtareas-1998: mit-w4spz2pf45icc -mit-sf-ec-g46erven-1998: mit-ghw5yimf7vp4i -mit-sf-ec-g46farmportion-1998: mit-eflj4jio7nmcq -mit-sf-ec-g46generalplan-1998: mit-qsuqnjt7lbje6 -mit-sf-ec-g46leaseareas-1998: mit-nrpelgc6m5ikk -mit-sf-ec-f7localmunicipal-1998: mit-w5xbptlwqzku2 -mit-sf-ec-f85magisterial-1998: mit-yjm7ndo2a5muc -mit-sf-ec-g46parentfarm-1998: mit-6raxhk5d45n72 -mit-sf-ec-g52parks-1998: mit-waa26aqeqnmac -mit-sf-ec-f7provincialbdry-1998: mit-a5d5xskae5oce -mit-sf-ec-g46servarearural-1998: mit-xtc4iaa5sfmr6 -mit-sf-ec-g46servlinerural-1998: mit-mephylwsabopw -mit-sf-ec-p2streetnames-1998: mit-zwjzcsyv6jpwy -mit-sf-ec-g46informalerf-1998: mit-4jotnaoqrziiy -mit-sf-ec-g46unalienriver-1998: mit-pn5qzp3rs5p6w -mit-sf-ec-g46unalienstate-1998: mit-w2ms4iahqnmsm -mit-sf-ec-g46servlineurban-1998: mit-juaaxre5x5pyo -mit-sf-ec-p2urbanstreets-1998: mit-bnvkmwxujvl2w -mit-sf-wc-g46allotmttwp-1998: mit-7clio277ljjo4 -mit-sf-wc-f7suburbs-1998: mit-dsnp34cusvilk -mit-sf-wc-f7distmgtareas-1998: mit-bavrad4ihjlec -mit-sf-wc-f7distmunicipal-1998: mit-etge4lwyejlwi -mit-sf-capetown-e68schools-2008: mit-smycaokh7rify -mit-sf-wc-g46estbdry-1998: mit-bevalj7j2rkdw -mit-sf-wc-g46farmportion-1998: mit-hi3wxjon7vinm -mit-sf-wc-g46generalplan-1998: mit-ymhcxrjyh5nki -mit-sf-wc-g46leaseareas-1998: mit-w5ihncir55mpe -mit-sf-wc-f7localmunicipal-1998: mit-gtqm3ux7yjl26 -mit-sf-wc-f85magisterial-1998: mit-sfmbibtfpzoby -mit-sf-wc-g46parentfarm-1998: mit-hjv775uw35jty -mit-sf-wc-g52parks-1998: mit-lvzp7eyjcznhk -mit-sf-wc-f7provincialbdry-1998: mit-lnjc3t3syfnba -mit-sf-wc-g46servarearural-1998: mit-hx242zrg7vmdy -mit-sf-wc-g46servlinerural-1998: mit-rq2hfnmlsfnr6 -mit-sf-wc-p2streetnames-1998: mit-zzt3li6kczpus -mit-sf-wc-g46unalienriver-1998: mit-zy4aiviu5bpyc -mit-sf-wc-g46unalienstate-1998: mit-zrrhzy6b3blv6 -mit-sf-wc-g46servareaurban-1998: mit-ime2ymwvanpbc -mit-sf-wc-g46servlineurban-1998: mit-jglras5w6rno6 -mit-sf-wc-p2urbanstreets-1998: mit-zmdrcvcszrla6 -mit-ks-p8postcode3dig-2009: mit-xti5ejkrvvjk4 -mit-ks-f7districts-2009: mit-qgke26jhsvirk -mit-ks-a8gns-2003: mit-gogoj6wun5o5g -mit-sp-p8postcode5dig-2008: mit-z3pef3escjk34 -mit-sp-a8gns-2003: mit-aqddo7vrmjj5o -mit-sp-f7municipalities-2008: mit-lsx6z53m3rpho -mit-sp-f7provinces-2008: mit-vcmxophbynkrq -mit-pg-a8gns-2003: mit-zjhlwtb2ufjg4 -mit-ce-p8postcode2dig-2009: mit-rx6jvnbgznkmy -mit-ce-f7districts-2009: mit-woimdomy5ni6c -mit-us-ny-nyc-si-g47txblks-2005: mit-xxvtqxeycfl7g -mit-us-ny-nyc-si-g47txlots-2002: mit-clswiywkb5lrs -mit-us-ny-nyc-si-g47txlots-2006: mit-vfwb3bqpuflce -mit-us-ny-nyc-si-g47txlots-2010: mit-ga2aauo2ejj4k -mit-ns-f7municipalities-1995: mit-nqboxperxnjug -mit-sv-a8gns-2003: mit-sobrjhghjrmda -mit-sz-f7admin2-2002: mit-bsgbsd322fmoi -mit-sz-p61airports-1998: mit-zusgkxlm6vkru -mit-sz-e29cfsam-2002: mit-tripgbltpbjc6 -mit-sz-c3drainage-2002: mit-45fufhhj4njf4 -mit-sz-p2majorroads-1999: mit-mp374ektfznpi -mit-sz-c2mountains-2002: mit-3yzgfwzz5nnj2 -mit-sz-p3railroads-2002: mit-cyetengaobjma -mit-sz-p2roads-2002: mit-mikvxirsufl7s -mit-sz-f7tinkhundla-2000: mit-qauiy2toxznry -mit-sz-e29vac-2002: mit-hxnh5yzndnpka -mit-sw-p8postcode5dig-2008: mit-jozzosawdzijk -mit-sw-f7municipalities-2008: mit-szmn5cgnzvjai -mit-sz-p8postcode4dig-2008: mit-vp2qd3czk5naa -mit-sz-f7districts-2008: mit-24nymgp5wrppa -mit-sz-f7municipalities-2008: mit-5lhxjusrvrmf4 -mit-sy-f7districts-2009: mit-q62v24dqdvmpe -mit-sy-a8gns-2003: mit-efbikz5qzrpqm -mit-tw-p8postcode3dig-2009: mit-z4t3w5qs6rppi -mit-tw-f7districts-2009: mit-yv2mp4ec7jp5s -mit-ti-p8postcode4dig-2009: mit-lzikomosznkcq -mit-ti-f7districts-2009: mit-inownc2bs5k26 -mit-th-p8postcode2dig-2009: mit-h43i4zsc7bmt6 -mit-th-f7provinces-2009: mit-yr3hiyv6gvmz2 -mit-te-a8gns-2003: mit-emscrple3zjp4 -mit-tu-p8postcode5dig-2008: mit-nrkxvaxtzblum -mit-tu-f7districts-2008: mit-enqhxegwxziru -mit-tu-a8gns-2003: mit-nrauezi4hjok6 -mit-tu-f7neighborhoods-2008: mit-qdh7f43ehrjyo -mit-tx-p8postcode3dig-2009: mit-le4gbtfrrvnh2 -mit-tx-f7provinces-2009: mit-ctekx7ov7nlvq -mit-up-p8postcode3dig-2008: mit-f2ddlxtziflgw -mit-up-f7districts-2008: mit-r7p2isvrizlws -mit-uf-a8gns-2003: mit-7uj5gsyap5jrw -mit-uk-f7districts-2008: mit-ztdgebvup5nlm -mit-uk-p8postcodesectors-2008: mit-v5wzmcdxnrkpc -mit-uy-f7municipalities-1997: mit-i3xm76eq6nm64 -mit-us-n852nonattain-2008: mit-o72cthgb5jn56 -mit-us-f7cd103-1993: mit-scb3nkljw5is6 -mit-us-f7cd104-1995: mit-l6dktatnefn7q -mit-us-f7cd105-1997: mit-unf6hcasvjntg -mit-us-f7cd106-1999: mit-v3z24nsqn5j7i -mit-us-f7cd107-2001: mit-yff72ay5zbnqy -mit-us-f7cd108-2003: mit-4hg3kzlsj5mxo -mit-us-f7cd109-2005: mit-zckwqvm435kma -mit-us-f7cd110-2007: mit-o4zivlff2rj44 -mit-us-f7cd111-2009: mit-yftaa43ltnlpo -mit-us-p61runways-2005: mit-zqdoxack7bmue -mit-us-p61runways-2008: mit-cmyofvmqbjlog -mit-us-p61airports-2005: mit-m6phlc2ozbksk -mit-us-p61airport-2008: mit-uqakc6ymdnpiy -mit-us-p61airport-2009: mit-nzyr6auh3fnbq -mit-us-p61airport-2010: mit-ruzbqlmitvloq -mit-us-n42altfuels-2006: mit-jsy6k44bcrmjo -mit-us-p1altfuel-2008: mit-lyf6yab4k5nxi -mit-us-p3amtrak-2008: mit-t6mkmu7jejnoa -mit-us-p3amtrak-2009: mit-zc57jpn7cbkia -mit-us-g2beadistricts-12-2008: mit-hr5e63mmvbmke -mit-us-h9coaldock-2008: mit-kjspkexefvmsu -mit-us-h9coalsource-08-2008: mit-uyoubmwucbnoe -mit-us-h9coalsource-12-2008: mit-qvogd23k7vpyg -mit-us-h9coalsupplyreg-08-2008: mit-7y7zkzlng5n4k -mit-us-h9coalsupplyreg-12-2008: mit-74aibrf3obnji -mit-us-h9coalsupplyreg-03-2008: mit-yv7pkcpfyriow -mit-us-a1cbsa-2005: mit-bxljhrqjtjjui -mit-us-a1cbsa-2006: mit-33rdr35acnm62 -mit-us-a1cbsa-2003: mit-esvh2q3v5vn6q -mit-us-f7counties-1996: mit-452jcnyyijorc -mit-us-f7cnty-2005: mit-vs2g5xm4azmjm -mit-us-f7ccd-2000: mit-wr2vtilgdbolk -mit-us-f7counties-2005: mit-s7vp4735abmji -mit-us-f7cntyln-2005: mit-zjp4kwhybfn2q -mit-us-f7mcdccd-2009: mit-bpozn62ne5mto -mit-us-n4deregstates-12-2008: mit-nwidf2l4xno2q -mit-us-e25dma-2000: mit-zl6cfoop3jor6 -mit-us-c315-2000: mit-dcbz6glo75nxi -mit-us-electricpowerflty-2001: mit-megmvuuzzrmre -mit-us-g46indian-2005: mit-xecpwhjfjrnly -mit-us-g46federal-2005: mit-4lax7wtzjnla6 -mit-us-f81firestations-2001: mit-ubcq63sqrbko6 -mit-us-p8zip5dig-2007: mit-vgyxzo4axzjcw -mit-us-p8zip5digpoints-2007: mit-t2unmzljbzjgg -mit-us-p3fxdtransitntwrk-2004: mit-cxnck6ihcfnvg -mit-us-p3fxdtransitstatn-2004: mit-yuoabtezdnmdg -mit-us-p2faf-2003: mit-2ucmtxhgi5nhm -mit-us-p2faf-2007: mit-5vgzdgnwhnpis -mit-us-p1tran-1999: mit-ootiuk4wobp6u -mit-us-e58ghospitl-2005: mit-padgcogrebmug -mit-us-f7gppl-2005: mit-26s53tytt5jt4 -mit-us-e68gschools-2005: mit-kre3kni2kvn3w -mit-us-e1gblding-2005: mit-sloumwn7kvnn2 -mit-us-e1gcemetry-2005: mit-4w2ifloaynlso -mit-us-e1gchurch-2005: mit-vrwtdenacbl3o -mit-us-e1ggolf-2005: mit-4izdmnpd2jnvg -mit-us-e1glocale-2005: mit-j5wyuecgjvorg -mit-us-e1gsummit-2005: mit-66nvybr4drluu -mit-us-m8burgers-1996: mit-6tegqw5sc5pi2 -mit-us-p1hazmat-2006: mit-kz5nn4bbfrowm -mit-us-n85hazmatsites-1999: mit-wh5e6yz52zm5k -mit-us-p3railrdcross-2008: mit-4wa7iuxwyjpyw -mit-us-p2highways-1996: mit-pwonanqrpzjuu -mit-us-p2highways-2005: mit-gm6fwf7c2bm64 -mit-us-e58hospitals-2005: mit-idgkqgo6xfpkm -mit-us-c28hydline-2000: mit-pbmovztwjvkre -mit-us-c28hydpoly-2000: mit-tollyzg3xjjpq -mit-us-n4inddensity-2008: mit-jzf5itomnjjks -mit-us-m1industrialfacil-12-2008: mit-5cu4myg3djm4q -mit-us-e1institut-2006: mit-r7aaf5jtenpzs -mit-us-p1intrterm-2003: mit-yclnspb7fzkgy -mit-us-p2interst-1996: mit-yjetineaabik6 -mit-us-p2interstate-2005: mit-y3fnuxpelrpu6 -mit-us-c28lak-2000: mit-26kmsf7xbrme6 -mit-us-e1lalndmrk-2006: mit-ua4gbqiewridk -mit-us-p2majhiways-2005: mit-wcbtkk5glnipm -mit-us-g52parks-2006: mit-ejjft3lpzfmjq -mit-us-p2majrds-2000: mit-shh4vflosno2w -mit-us-p2majrds-2005: mit-qz5iq2rpv5k6m -mit-us-p2mjrrds-2006: mit-3dtohparx5jnm -mit-us-e55healthflty-2000: mit-qvqjzb7hnrl5i -mit-us-e25msa-2000: mit-qfq5gyepsbowe -mit-us-r2milbase-2001: mit-lfqd27anavm3y -mit-us-r2milbase-2002: mit-55ut3adi7zl4y -mit-us-r2milbase-2004: mit-jjgcopcemjisu -mit-us-r2milbase-2006: mit-wmc4ortif5lsk -mit-us-r2milbase-2008: mit-l2fzbponankbi -mit-us-f7mpo-2003: mit-lbxjsxqyd5jzs -mit-us-f7mpo-2004: mit-r7755fjj4niz4 -mit-us-f7mpo-2005: mit-zqaef2rwj5mkc -mit-us-f7mpo-2006: mit-kkuqomdk5bjjm -mit-us-f7mpo-2008: mit-ohhs6n2drzkws -mit-us-p61airports-2006: mit-gkstaeeygbmo4 -mit-us-c55quakehis-2006: mit-homz4vzwkfi3g -mit-us-f1urban-2005: mit-v5tsvrkqirify -mit-us-c55volcano-2006: mit-xpkf4ywwyrjkw -mit-us-c28hydroply-2005: mit-jp2irut3hrlny -mit-us-p24bridges-2008: mit-5dakxma44vojc -mit-us-g52natlparks-2008: mit-gqtynn2oajjlq -mit-us-p61runwaynd-2001: mit-qbugdumnfzp4k -mit-us-p53waterwayline-2008: mit-sb4jcjitjzpsq -mit-us-p53waterwaynode-2008: mit-dwanryc7lfmsu -mit-na-p53navwaterway-2008: mit-woe23jzqg5mza -mit-na-p53navwaterway-12-2008: mit-dqbefpf4gbnsu -mit-us-n85co-2004: mit-jmcvtgumcno5m -mit-us-n85co-2006: mit-6fubzbpzinoxq -mit-us-n85lead-2004: mit-rvorca3s4rjaa -mit-us-n85lead-2006: mit-3g4apavjznlrc -mit-us-n85nox-2004: mit-afgooeu67vjyy -mit-us-n85nox-2006: mit-2qboiotx5voly -mit-us-n85ozone-2004: mit-eqs3nrdmdrnik -mit-us-n85ozone-2006: mit-exmjdscjfvkv4 -mit-us-n85pm10-2006: mit-63n2m2h3ebmpe -mit-us-n85pm10-2004: mit-7q2daraoozki6 -mit-us-n85pm25-2006: mit-oxmanzzx7nlo4 -mit-us-n85sox-2006: mit-s6d2yg7sfrk3k -mit-us-n85sox-2004: mit-2l3jxzfn2rjeu -mit-us-h8oilgas-2003: mit-w37ehgh6nvl4w -mit-us-g52park-2000: mit-7h7esvq73npnk -mit-us-g52parks-2007: mit-ckwb4gikynj2u -mit-us-f7placeply-2006: mit-h7tmyyjbenjpo -mit-us-f7pop-2000: mit-jmraobvbzbou2 -mit-us-f7places-1996: mit-fonjunargvizy -mit-us-f7places-2003: mit-cwcnm4mfqfkwu -mit-us-f9prescntyelectresults-2004: mit-46756vef3rils -mit-us-p61runway-2001: mit-vxov2esxc5ir2 -mit-us-p61runway-2002: mit-xepl3xkev5nqw -mit-us-p61runway-2003: mit-er3c43qlgzoke -mit-us-p61runway-2004: mit-ihalcj3k4vn5g -mit-us-p61runway-2005: mit-afta7vyz7vife -mit-us-p61runway-2006: mit-6k7fnhcwtnpbk -mit-us-p61airport-2002: mit-uztteop5inpmi -mit-us-p61airport-2003: mit-hqhlegw76rira -mit-us-p61airport-2004: mit-mkgkooeid5pb4 -mit-us-p61airport-2005: mit-oeztcdn2tfjtq -mit-us-p61airport-2006: mit-7er72j323fl6a -mit-us-p3railnodes100k-2008: mit-hqjcfguxankj4 -mit-us-p3railroadrates-12-2008: mit-xkssqf2kgblzq -mit-us-p3rail100k-2005: mit-n23ikmmq2zkso -mit-us-p3rail100k-2008: mit-pqobiubrhvlbw -mit-us-g52recareas-2006: mit-q4excsrl7zjju -mit-us-n852hazeareas-12-2008: mit-x47us5e4srplo -mit-us-q46retlctrs-1999: mit-3hbpqwssafjko -mit-us-p53riv-2000: mit-2ogqhwbrr5ix2 -mit-us-e68schools-2000: mit-let5mer325o4e -mit-us-b72sp27-2000: mit-4xme54u24zpyw -mit-us-b72sp83-2000: mit-5aocbcohk5one -mit-us-f7states-2006: mit-cd4qo2ey7jjuq -mit-us-a1sta-2000: mit-pqcwg3ohobl4c -mit-us-e1institut-2005: mit-ixvxn5ibgjp6y -mit-us-e1lalndmrk-2005: mit-ufzh5wlki5iys -mit-us-g52park-2005: mit-wcvcoyl4xrj5s -mit-us-g52recareas-2005: mit-7zb3vdnurfmxm -mit-us-p94-2000: mit-r5rcbhlagbo4g -mit-us-p94areacode-2006: mit-smloenizg5mog -mit-us-p8zip3-2000: mit-v4cv4cr2e5l3k -mit-us-p8zip3-2005: mit-ozdewlxia5ooc -mit-us-p8zip3dig-2007: mit-odhgueoourjgq -mit-us-p1transterms-2005: mit-yeuxcpondfmf4 -mit-us-p1tranterm-2006: mit-gtxiyl77mvib4 -mit-us-e2urbnarea-2000: mit-tb4xjaxndvjck -mit-us-e2uza-2003: mit-jvnejnhijvnbu -mit-us-e25urb-2000: mit-unk5252aezp5e -mit-us-h1usbmdistricts-12-2008: mit-n4goacmfqzmvi -mit-us-p61airport-2000: mit-eshohoaplrnao -mit-us-a1city-2000: mit-4du62wh44fnh4 -mit-us-f81fedl-2000: mit-tzazqnr4bnjag -mit-us-c55qua-2000: mit-ea6q256jmni2q -mit-us-g5publand-2000: mit-ddfabmmsifjru -mit-us-c55vul-2000: mit-hwfa6uze3fily -mit-us-c28hyd-2000: mit-m7dgz3xtlvils -mit-us-p2interstate-2000: mit-2jqcb4e3ibo6s -mit-us-p55port-2001: mit-xyahlczsajjvk -mit-us-p55port-2002: mit-eh4so4mc4zjce -mit-us-p55port-2003: mit-kqq4qkrjtrluo -mit-us-p55port-2004: mit-idamei6ianncs -mit-us-p55port-2005: mit-i2zuihlgpnlj6 -mit-us-p55port-2006: mit-tt6d6pw3jbpyu -mit-us-p55port-2008: mit-tap5gcln7zlbs -mit-us-c28t100-2000: mit-wood3rx34vnvi -mit-us-c28t24-2000: mit-kdwjhdvy5rl4i -mit-us-c28t250-2000: mit-uopopmyv6zon6 -mit-us-n46sewagetrtmnt-12-2008: mit-47urmyoaivkiu -mit-us-c3wat-2005: mit-my6srksfvzif4 -mit-us-e63weekend-1996: mit-4zk2nq3s3nir4 -mit-us-p8zippoly-2006: mit-n5qm5hl4bvmpa -mit-us-p8zip3-2006: mit-sboqekiw2fnvw -mit-us-p8zippoly-2005: mit-3cyjhfy445n2g -mit-us-p8zipusa-2005: mit-o7vrykmgh5ncm -mit-us-p8zip-2006: mit-qirku7t2h5j4a -mit-us-p8zip-1996: mit-iymsg5hjq5ogy -mit-uz-p8postcode4dig-2009: mit-dcygv2ijsniqi -mit-uz-f7provinces-2009: mit-lxptyoaywjose -mit-vt-p2roads-2009: mit-4tgpz4nnjzjva -mit-ve-f7municipalities-1996: mit-svxxwamy2zl2q -mit-us-vt-f7towns-1998: mit-bvp2ezqvlvjry -mit-vm-p8postcode2dig-2009: mit-tod6viclrvosg -mit-vm-f1provinces-1997: mit-c3g5s6ap6zifg -mit-vm-f7provinces-2009: mit-7xpnix2at5nnu -mit-us-ma-newton-w-e25blcks-1998: mit-mue2e5u675izi -mit-us-ma-newton-w-g46bldgs-1998: mit-cvksva5ejrivw -mit-us-ma-newton-w-n1easmt-1998: mit-dtpmmu7h7zp4m -mit-us-ma-newton-w-s1hstrc-1998: mit-3km3o6wxj5mna -mit-us-ma-newton-w-g52opnsp-1998: mit-o3yf5a2lwfm4u -mit-us-ma-newton-w-g46prcls-1998: mit-5mx5lqxtmrmoi -mit-us-ma-newton-w-p2stedg-1998: mit-kovivjpkwbjxk -mit-us-ma-newton-w-f7tile-1998: mit-kazwfe2curj26 -mit-us-ma-newton-w-g44zone-1998: mit-yzv4haoxo5pj2 -mit-wi-a8gns-2003: mit-ftt2einsyjocm -mit-int-p94inclusions3g-2014: mit-w4si2mro2rnze -mit-int-p944g-2014: mit-636x32qbybkeu -mit-int-p94inclusions4g-2014: mit-3mnbaq6iajmn6 -mit-int-f7states-2004: mit-rcecg2qhcroe2 -mit-int-f2-2000: mit-kzr22vaerjnf2 -mit-int-f7admin-2006: mit-rrtsraa4cnkg4 -mit-int-p61airports-2004: mit-wxt5gusj7jibm -mit-int-a1city-2000: mit-qd5eq347rnlke -mit-int-a1cities-2004: mit-5wchclumgnpe6 -mit-int-a1cities-2006: mit-bw4fdkouijpda -mit-int-a1cont-2000: mit-j4w5mjlnxfmmm -mit-int-f7countrygen-2006: mit-e7msrgnj5vjsw -mit-int-a1ctry-1992: mit-huf2mfk3kvimq -mit-int-a1ctry-2000: mit-ng4667kgznkgu -mit-int-a1cntry-2005: mit-bezl2jchprlu4 -mit-int-f7cntry06-2006: mit-4htmslgh7vmqm -mit-int-e24cntrydemographics-2007: mit-zko6rpkzlzlwc -mit-int-j6crops-2004: mit-gw23tj7i7bifc -mit-int-c315-2000: mit-vdczlmkccrofu -mit-int-c315drainage-2005: mit-f2gqt5gv4nkha -mit-int-c55quakes-2003: mit-ogdavca6dfi6u -mit-int-c28elev-2004: mit-s6d2gmvsgrlea -mit-int-a8gaz-2005: mit-l3svu6ozbrkz4 -mit-int-a8gaz-2007: mit-ybpdpxgganp5a -mit-int-c57geoage-2003: mit-xdcksxpk3rirs -mit-int-c55faults-2003: mit-ddzrrildrbohy -mit-int-d2grassland-2004: mit-4rqd3o7kmzkt4 -mit-int-c28surface-2004: mit-jvhjelig3fira -mit-int-p94inclusionsgsm-2014: mit-ktlyqbbslni62 -mit-int-m1industrial-2004: mit-5wwufpeyhznpq -mit-int-c23lak-2000: mit-pndqggqg2nmpy -mit-int-c23lakes-2005: mit-thy5567wcri52 -mit-int-b72latlonggrd-2000: mit-j3fggk6pqnljw -mit-int-h1extracta-2004: mit-w3hl5ljhcvnmo -mit-int-h1extractp-2004: mit-xrkf4fksfvm6m -mit-int-c3misc-2004: mit-rpdmfxbmnbnda -mit-int-a8mispop-2004: mit-yn3m2om2mnmji -mit-int-a8misother-2004: mit-sbjdb645jrnt4 -mit-int-a8phystxt-2004: mit-xgvgz76jqrllc -mit-int-c31deptha-2004: mit-os2mmje6lfl6a -mit-int-c31depthl-2004: mit-ln5vvuylinira -mit-int-h8oilrefineries-12-2008: mit-37og5kyyfnphy -mit-int-h1deposit-2003: mit-pj2gl53vanof4 -mit-int-h8petrol-2003: mit-x55yuzl66jmta -mit-int-p4pipelines-2004: mit-mcxuwpuxzjip4 -mit-int-f7polbnd-2003: mit-cjwge7rgsnp4i -mit-int-p3rryards-2004: mit-f5g5cddndrjna -mit-int-p3railrds-2003: mit-eefazgx2e5o2k -mit-int-a1reg-2000: mit-sd5fhpx77voks -mit-int-p53riv-2000: mit-u2jlkfljjfmu2 -mit-int-p53rivers-2005: mit-cywxaqxfbjkjk -mit-int-p1roadraill-2004: mit-gdu3q7qhf5kbm -mit-int-p1roadrailp-2004: mit-wufjz74k7joai -mit-int-c72seaice-2004: mit-wh6ppxs5bbp4i -mit-int-n1storage-2004: mit-umhhjxolirjam -mit-int-d2swamp-2004: mit-iaze23xcb5jfg -mit-int-b2tz-2000: mit-ppppflyvinloi -mit-int-k2trees-2004: mit-vfzekth5rrl2m -mit-int-c813tundra-2004: mit-7rfslkn5unopa -mit-int-n39utility-2003: mit-l7a2ljmmbznse -mit-int-b72utm-2000: mit-pfbd67qpmnm2m -mit-int-c55volcanos-2003: mit-htzfbbqq2jmmo -mit-int-c3watrcrs-2003: mit-sbnxwxosyjmty -mit-int-h1wells-2004: mit-ox5hn3uqufiye -mit-int-d1eco-1998: mit-7poe4b5loripq -mit-int-d1wwfmar-2005: mit-zzgzboryarolk -mit-int-d1wwfterr-2005: mit-uhhbqvh63vp2c -mit-ym-f7districts-2009: mit-3wofaj6wezlwe -mit-zm-e29cfsam-2002: mit-hacoci6euzmue -mit-zm-f7districts-2001: mit-y25kb2l3cvk4y -mit-zm-a1places-2002: mit-vtxpd776szp62 -mit-zw-f7admin1-2002: mit-p6qu5tbmebin2 -mit-zw-f7admin3-2003: mit-to22q6ya5npeo -mit-zw-e29cfsam-2002: mit-33dpqzpevbjhs -mit-zw-a1cities-2002: mit-szyg7zacbrnj4 -mit-zw-g2foodzones-2003: mit-j7xmlg6cznmew -mit-zw-p53lakekariba-2002: mit-anvlivgjpjo3i -mit-zw-p53rivers-2002: mit-jfpsih7kjznn2 -mit-zw-e624ngos-2002: mit-ggjedz4a3zidi diff --git a/lib/legacy_id_map.rb b/lib/legacy_id_map.rb deleted file mode 100644 index e30d43a3..00000000 --- a/lib/legacy_id_map.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -class LegacyIdMap - class << self - def map - @map ||= YAML.safe_load_file(path) - end - - private - - def path - Rails.root.join('config', 'legacy_id.map') - end - end -end diff --git a/spec/controllers/catalog_controller_spec.rb b/spec/controllers/catalog_controller_spec.rb deleted file mode 100644 index 09d70da6..00000000 --- a/spec/controllers/catalog_controller_spec.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe CatalogController do - describe 'Mapping legacy IDs to new ones' do - it 'redirects from an old ID to a new one (when it does not exist)' do - get :show, params: { id: 'mit-ao-p2roads-2005' } - - expect(response).to redirect_to(solr_document_path('mit-f4b5a2yjdflbi')) - end - end -end From cd6ff99665228d14ffb52d5d84b9557c04c5f49d Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Tue, 11 Jun 2024 14:49:05 -0700 Subject: [PATCH 07/18] Update handling of format facet Don't display values on the show page, but do use them to indicate what file format will be downloaded from the dropdown. --- app/controllers/catalog_controller.rb | 2 +- config/locales/geoblacklight.en.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index 3ded8ad1..b814dff5 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -176,7 +176,7 @@ class CatalogController < ApplicationController config.add_show_field Settings.FIELDS.RESOURCE_CLASS, label: 'Resource Class', itemprop: 'class', link_to_facet: true config.add_show_field Settings.FIELDS.RESOURCE_TYPE, label: 'Resource Type', itemprop: 'type', link_to_facet: true - config.add_show_field Settings.FIELDS.FORMAT, label: 'Format', itemprop: 'format' + # config.add_show_field Settings.FIELDS.FORMAT, label: 'Format', itemprop: 'format' config.add_show_field Settings.FIELDS.RIGHTS, label: 'Rights', itemprop: 'rights' config.add_show_field Settings.FIELDS.RIGHTS_HOLDER, label: 'Rights Holder', itemprop: 'rights_holder' config.add_show_field Settings.FIELDS.LICENSE, label: 'License', itemprop: 'license' diff --git a/config/locales/geoblacklight.en.yml b/config/locales/geoblacklight.en.yml index f261a217..774ba895 100644 --- a/config/locales/geoblacklight.en.yml +++ b/config/locales/geoblacklight.en.yml @@ -5,3 +5,5 @@ en: relations: member_of_ancestors: 'Item belongs to a collection' member_of_descendants: 'Collection items' + formats: + jpeg2000: 'JP2' From 8c9226a53ba5fcee1907162d9cd0f6d89006b300 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Tue, 11 Jun 2024 14:50:08 -0700 Subject: [PATCH 08/18] Remove custom RightsMetadata functionality Aardvark provides these fields natively. --- app/controllers/catalog_controller.rb | 1 - .../concerns/rights_metadata_concern.rb | 7 --- app/models/solr_document.rb | 1 - app/views/catalog/_rights_metadata.html.erb | 36 ------------- lib/rights_metadata.rb | 52 ------------------- 5 files changed, 97 deletions(-) delete mode 100644 app/models/concerns/rights_metadata_concern.rb delete mode 100644 app/views/catalog/_rights_metadata.html.erb delete mode 100644 lib/rights_metadata.rb diff --git a/app/controllers/catalog_controller.rb b/app/controllers/catalog_controller.rb index b814dff5..376fb94d 100644 --- a/app/controllers/catalog_controller.rb +++ b/app/controllers/catalog_controller.rb @@ -40,7 +40,6 @@ class CatalogController < ApplicationController # solr field configuration for document/show views config.show.display_type_field = 'format' - config.show.partials << 'rights_metadata' config.show.partials << 'show_message' config.show.partials << 'show_default_viewer_container' config.show.partials << 'show_default_attribute_table' diff --git a/app/models/concerns/rights_metadata_concern.rb b/app/models/concerns/rights_metadata_concern.rb deleted file mode 100644 index 87a2e99a..00000000 --- a/app/models/concerns/rights_metadata_concern.rb +++ /dev/null @@ -1,7 +0,0 @@ -module RightsMetadataConcern - extend Geoblacklight::SolrDocument - - def rights_metadata - RightsMetadata.new(fetch(:stanford_rights_metadata_s, {})) - end -end diff --git a/app/models/solr_document.rb b/app/models/solr_document.rb index fb3fa8ef..9e12222a 100644 --- a/app/models/solr_document.rb +++ b/app/models/solr_document.rb @@ -3,7 +3,6 @@ class SolrDocument include Geoblacklight::SolrDocument # include GeomonitorConcern # https://github.com/geoblacklight/geo_monitor/issues/12 - include RightsMetadataConcern include WmsRewriteConcern alias stanford? same_institution? diff --git a/app/views/catalog/_rights_metadata.html.erb b/app/views/catalog/_rights_metadata.html.erb deleted file mode 100644 index 7b9c3f0d..00000000 --- a/app/views/catalog/_rights_metadata.html.erb +++ /dev/null @@ -1,36 +0,0 @@ -<% document ||= @document %> - -<% rights_metadata ||= document.rights_metadata %> - - diff --git a/lib/rights_metadata.rb b/lib/rights_metadata.rb deleted file mode 100644 index f0ee596e..00000000 --- a/lib/rights_metadata.rb +++ /dev/null @@ -1,52 +0,0 @@ -class RightsMetadata - def initialize(rights_metadata) - @rights_metadata = rights_metadata - end - - def use_and_reproduction - ng_xml.xpath('//rightsMetadata/use/human[@type="useAndReproduction"]').first.try(:content) - end - - def copyright - ng_xml.xpath('//rightsMetadata/copyright').first.try(:content) - end - - def license - cc_license || odc_licence - end - - def ng_xml - @ng_xml ||= Nokogiri::XML(@rights_metadata) - end - - private - - def cc_license - { human: cc_license_human, machine: cc_license_machine } if cc_license_human.present? && cc_license_machine.present? - end - - def cc_license_machine - ng_xml.xpath('//rightsMetadata/use/machine[@type="creativeCommons"]').first.try(:content) - end - - def cc_license_human - ng_xml.xpath('//rightsMetadata/use/human[@type="creativeCommons"]').first.try(:content) - end - - def odc_licence - return unless odc_licence_human.present? && odc_licence_machine.present? - - { - human: odc_licence_human, - machine: odc_licence_machine - } - end - - def odc_licence_human - ng_xml.xpath('//rightsMetadata/use/human[@type="openDataCommons"]').first.try(:content) - end - - def odc_licence_machine - ng_xml.xpath('//rightsMetadata/use/machine[@type="openDataCommons"]').first.try(:content) - end -end From 91be925fcacb6de7b2e71ce185a468b76a724bae Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Tue, 11 Jun 2024 14:51:44 -0700 Subject: [PATCH 09/18] Use Mirador as the IIIF manifest viewer --- app/assets/javascripts/modules/mirador.js | 63 +++++++++++++++++++ app/assets/stylesheets/modules/show.scss | 21 ++++++- .../earthworks_geoblacklight_helper.rb | 5 ++ app/views/layouts/blacklight/base.html.erb | 1 + 4 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 app/assets/javascripts/modules/mirador.js diff --git a/app/assets/javascripts/modules/mirador.js b/app/assets/javascripts/modules/mirador.js new file mode 100644 index 00000000..4fc19518 --- /dev/null +++ b/app/assets/javascripts/modules/mirador.js @@ -0,0 +1,63 @@ +// Borrowed from: +// https://github.com/sul-dlss/sul-embed/blob/main/app/javascript/src/modules/m3_viewer.js +const setupViewer = function () { + const target = document.getElementById("mirador"); + if (target) { + Mirador.viewer({ + id: "mirador", + selectedTheme: "sul", + themes: { + sul: { + palette: { + type: "light", + primary: { + main: "#8c1515", + }, + secondary: { + main: "#8c1515", + }, + shades: { + dark: "#2e2d29", + main: "#ffffff", + light: "#f4f4f4", + }, + notification: { + main: "#e98300", + }, + }, + }, + }, + windows: [ + { + id: "main", + loadedManifest: target.dataset.manifestUrl, + }, + ], + window: { + allowClose: false, + allowFullscreen: true, + allowMaximize: false, + authNewWindowCenter: "screen", + hideWindowTitle: true, + sidebarPanel: "attribution", + views: [ + { key: "single", behaviors: [null, "individuals"] }, + { key: "book", behaviors: [null, "paged"] }, + { key: "scroll", behaviors: ["continuous"] }, + { key: "gallery" }, + ], + }, + workspace: { + showZoomControls: true, + type: "single", + }, + workspaceControlPanel: { + enabled: false, + }, + }); + } +}; + +// Load the viewer on page load and Turbolinks page change +document.addEventListener("DOMContentLoaded", setupViewer); +document.addEventListener("turbolinks:load", setupViewer); diff --git a/app/assets/stylesheets/modules/show.scss b/app/assets/stylesheets/modules/show.scss index cdedd774..58b38f20 100644 --- a/app/assets/stylesheets/modules/show.scss +++ b/app/assets/stylesheets/modules/show.scss @@ -19,7 +19,22 @@ dd[itemprop='url'] a { } } -// Remove margin after final paragraph in description -.blacklight-dct_description_sm p:last-of-type { - margin-bottom: 0; +// Paragraph margins for description field +.blacklight-dct_description_sm p { + margin-bottom: 0.5rem; + + &:last-of-type { + margin-bottom: 0; + } +} + +// Move the index map legend to make space for "Embedded Content" text +.index-map-legend { + left: unset; +} + +// Styles for Mirador viewer (non-stanford IIIF content) +#mirador { + width: 100%; + min-height: 493px; } diff --git a/app/helpers/earthworks_geoblacklight_helper.rb b/app/helpers/earthworks_geoblacklight_helper.rb index 252b7d14..4ee79585 100644 --- a/app/helpers/earthworks_geoblacklight_helper.rb +++ b/app/helpers/earthworks_geoblacklight_helper.rb @@ -12,4 +12,9 @@ def render_value_as_truncate_abstract(args) Array(args[:value]).flatten.collect { |v| concat tag.p(v) } end end + + # Use Mirador as the IIIF manifest viewer + def iiif_manifest_viewer + tag.div(nil, id: 'mirador', data: { 'manifest-url' => @document.viewer_endpoint }) + end end diff --git a/app/views/layouts/blacklight/base.html.erb b/app/views/layouts/blacklight/base.html.erb index 8ce85852..77073327 100644 --- a/app/views/layouts/blacklight/base.html.erb +++ b/app/views/layouts/blacklight/base.html.erb @@ -29,6 +29,7 @@ + <%= javascript_include_tag 'application' %> - + From 7286247e7e2dd4b2ff3d058651f01a6ed73978a7 Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Thu, 6 Jun 2024 10:29:29 -0700 Subject: [PATCH 16/18] Update dependencies --- Gemfile.lock | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index da7f9e77..df6d622a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -84,6 +84,7 @@ GEM execjs (~> 2) base64 (0.2.0) bcrypt (3.1.20) + bcrypt_pbkdf (1.1.1) bcrypt_pbkdf (1.1.1-arm64-darwin) bcrypt_pbkdf (1.1.1-x86_64-darwin) bigdecimal (3.1.8) @@ -113,7 +114,7 @@ GEM bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) thor (~> 1.0) - capistrano (3.18.1) + capistrano (3.19.0) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) @@ -186,6 +187,7 @@ GEM domain_name (0.6.20240107) drb (2.2.1) dry-cli (1.0.0) + ed25519 (1.3.0) erubi (1.13.0) execjs (2.9.1) factory_bot (6.2.1) @@ -202,7 +204,16 @@ GEM net-http-persistent (~> 4.0) faraday-retry (2.2.1) faraday (~> 2.0) + ffi (1.17.0-aarch64-linux-gnu) + ffi (1.17.0-aarch64-linux-musl) + ffi (1.17.0-arm-linux-gnu) + ffi (1.17.0-arm-linux-musl) ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86-linux-gnu) + ffi (1.17.0-x86-linux-musl) + ffi (1.17.0-x86_64-darwin) + ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.0-x86_64-linux-musl) ffi-compiler (1.3.2) ffi (>= 1.15.5) rake @@ -230,6 +241,7 @@ GEM sprockets-rails (~> 3.0) vite_rails (~> 3.0) git (2.1.1) + activesupport (>= 5.0) addressable (~> 2.8) process_executer (~> 1.1) rchardet (~> 1.8) @@ -322,8 +334,18 @@ GEM net-ssh (7.2.3) newrelic_rpm (9.11.0) nio4r (2.7.3) + nokogiri (1.16.6-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.6-arm-linux) + racc (~> 1.4) nokogiri (1.16.6-arm64-darwin) racc (~> 1.4) + nokogiri (1.16.6-x86-linux) + racc (~> 1.4) + nokogiri (1.16.6-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.6-x86_64-linux) + racc (~> 1.4) okcomputer (1.18.5) orm_adapter (0.5.0) ostruct (0.6.0) @@ -340,7 +362,7 @@ GEM puma (6.4.2) nio4r (~> 2.0) racc (1.8.0) - rack (3.0.11) + rack (3.1.4) rack-attack (6.7.0) rack (>= 1.0, < 4) rack-mini-profiler (2.3.4) @@ -400,7 +422,7 @@ GEM actionpack (>= 5.2) railties (>= 5.2) retriable (3.1.2) - rexml (3.3.0) + rexml (3.3.1) strscan rgeo (3.0.1) rgeo-geojson (2.1.1) @@ -497,7 +519,12 @@ GEM actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) + sqlite3 (1.7.3-aarch64-linux) + sqlite3 (1.7.3-arm-linux) sqlite3 (1.7.3-arm64-darwin) + sqlite3 (1.7.3-x86-linux) + sqlite3 (1.7.3-x86_64-darwin) + sqlite3 (1.7.3-x86_64-linux) sshkit (1.23.0) base64 net-scp (>= 1.1.2) @@ -506,7 +533,7 @@ GEM stringio (3.1.1) strscan (3.1.0) thor (1.3.1) - tilt (2.3.0) + tilt (2.4.0) timeout (0.4.1) twitter-typeahead-rails (0.11.1) actionpack (>= 3.1) @@ -523,7 +550,7 @@ GEM vite_rails (3.0.17) railties (>= 5.1, < 8) vite_ruby (~> 3.0, >= 3.2.2) - vite_ruby (3.5.0) + vite_ruby (3.6.0) dry-cli (>= 0.7, < 2) rack-proxy (~> 0.6, >= 0.6.1) zeitwerk (~> 2.2) @@ -546,7 +573,20 @@ GEM zeitwerk (2.6.16) PLATFORMS - arm64-darwin-23 + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86-linux + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES bcrypt_pbkdf (~> 1.1) From d9496895dc2ddba65fdd7eaf37e50298add9dd3a Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Fri, 28 Jun 2024 12:54:22 -0700 Subject: [PATCH 17/18] Remove deprecated legacy_connection_handler This raises ArgumentError because it was deprecated in 7.0 and removed in 7.1. --- config/initializers/new_framework_defaults_6_1.rb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/config/initializers/new_framework_defaults_6_1.rb b/config/initializers/new_framework_defaults_6_1.rb index 3b4ae610..a89a87ef 100644 --- a/config/initializers/new_framework_defaults_6_1.rb +++ b/config/initializers/new_framework_defaults_6_1.rb @@ -39,11 +39,6 @@ # requests to HTTPS in `ActionDispatch::SSL` middleware. Rails.application.config.action_dispatch.ssl_default_redirect_status = 308 -# Use new connection handling API. For most applications this won't have any -# effect. For applications using multiple databases, this new API provides -# support for granular connection swapping. -Rails.application.config.active_record.legacy_connection_handling = false - # Make `form_with` generate non-remote forms by default. Rails.application.config.action_view.form_with_generates_remote_forms = false From 8e9fb547ebecd2426185b6a6e48f170d928460fc Mon Sep 17 00:00:00 2001 From: Nick Budak Date: Mon, 1 Jul 2024 08:07:08 -0700 Subject: [PATCH 18/18] Remove jmx tag in config See https://github.com/sul-dlss/sul-solr-configs/pull/330 --- config/solr_configs/solrconfig.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/config/solr_configs/solrconfig.xml b/config/solr_configs/solrconfig.xml index a68c5163..c06b819d 100644 --- a/config/solr_configs/solrconfig.xml +++ b/config/solr_configs/solrconfig.xml @@ -51,8 +51,6 @@ - -