geoblacklight 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.coveralls.yml +1 -0
- data/.gitmodules +1 -1
- data/.travis.yml +9 -0
- data/Gemfile +18 -0
- data/README.md +36 -38
- data/Rakefile +9 -9
- data/app/assets/fonts/geoblacklight.eot +0 -0
- data/app/assets/fonts/geoblacklight.svg +117 -0
- data/app/assets/fonts/geoblacklight.ttf +0 -0
- data/app/assets/fonts/geoblacklight.woff +0 -0
- data/app/assets/images/blacklight/logo.png +0 -0
- data/app/assets/javascripts/geoblacklight/application.js +1 -0
- data/app/assets/javascripts/geoblacklight/geoblacklight.js +86 -2
- data/app/assets/javascripts/geoblacklight/modules/collapse.js +6 -0
- data/app/assets/javascripts/geoblacklight/modules/download.js +45 -0
- data/app/assets/javascripts/geoblacklight/modules/geosearch.js +77 -0
- data/app/assets/javascripts/geoblacklight/modules/home.js +10 -0
- data/app/assets/javascripts/geoblacklight/modules/item.js +72 -0
- data/app/assets/javascripts/geoblacklight/modules/map-view.js +7 -7
- data/app/assets/javascripts/geoblacklight/modules/results.js +50 -0
- data/app/assets/stylesheets/geoblacklight/_geoblacklight.css.scss +20 -0
- data/app/assets/stylesheets/geoblacklight/_styles.css.scss +44 -0
- data/app/assets/stylesheets/geoblacklight/application.css.scss +3 -0
- data/app/assets/stylesheets/geoblacklight/modules/home.css.scss +3 -0
- data/app/assets/stylesheets/geoblacklight/modules/icon-customization.css.scss +10 -0
- data/app/assets/stylesheets/geoblacklight/modules/icons.css.scss +77 -0
- data/app/assets/stylesheets/geoblacklight/modules/item.css.scss +4 -0
- data/app/assets/stylesheets/geoblacklight/modules/results.css.scss +29 -0
- data/app/controllers/download_controller.rb +22 -94
- data/app/controllers/wms_controller.rb +2 -74
- data/app/helpers/geoblacklight_helper.rb +6 -36
- data/app/views/catalog/_document_split.html.erb +4 -0
- data/app/views/catalog/_home_text.html.erb +2 -39
- data/app/views/catalog/_index_split_default.html.erb +24 -0
- data/app/views/catalog/_show_default.html.erb +4 -57
- data/app/views/catalog/_show_header_default.html.erb +8 -0
- data/app/views/catalog/_show_sidebar.html.erb +17 -57
- data/app/views/catalog/_upper_metadata.html.erb +38 -0
- data/config/initializers/rails_config.rb +3 -0
- data/config/jetty.yml +6 -0
- data/config/locales/geoblacklight.en.yml +5 -0
- data/geoblacklight.gemspec +5 -5
- data/lib/generators/geoblacklight/install_generator.rb +45 -15
- data/lib/generators/geoblacklight/templates/geoblacklight.css.scss +2 -78
- data/lib/generators/geoblacklight/templates/settings.yml +9 -0
- data/lib/geoblacklight.rb +13 -0
- data/lib/geoblacklight/controller_override.rb +18 -0
- data/lib/geoblacklight/download.rb +63 -0
- data/lib/geoblacklight/download/kmz_download.rb +14 -0
- data/lib/geoblacklight/download/shapefile_download.rb +14 -0
- data/lib/geoblacklight/engine.rb +11 -1
- data/lib/geoblacklight/solr_document.rb +30 -0
- data/lib/geoblacklight/version.rb +1 -1
- data/lib/geoblacklight/view_helper_override.rb +17 -0
- data/lib/geoblacklight/wms_layer.rb +38 -0
- data/lib/geoblacklight/wms_layer/feature_info_response.rb +30 -0
- data/lib/tasks/geoblacklight.rake +15 -0
- data/spec/features/download_layer_spec.rb +18 -0
- data/spec/features/home_page_spec.rb +49 -0
- data/spec/features/layer_inspection_spec.rb +9 -0
- data/spec/features/layer_preview_spec.rb +16 -0
- data/spec/features/split_view.html.erb_spec.rb +35 -0
- data/spec/fixtures/test-berkeley-fields.json +44 -0
- data/spec/lib/geoblacklight/controller_override_spec.rb +28 -0
- data/spec/lib/geoblacklight/download/kmz_download_spec.rb +15 -0
- data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +14 -0
- data/spec/lib/geoblacklight/download_spec.rb +76 -0
- data/spec/lib/geoblacklight/solr_document.rb +52 -0
- data/spec/lib/geoblacklight/view_helper_override_spec.rb +23 -0
- data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +43 -0
- data/spec/lib/geoblacklight/wms_layer_spec.rb +33 -0
- data/spec/spec_helper.rb +3 -6
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
- data/spec/views/catalog/_document_split.html.erb_spec.rb +5 -0
- data/spec/views/catalog/_index_split.html.erb_spec.rb +5 -0
- data/template.rb +10 -0
- data/vendor/assets/javascripts/native.history.js +1 -0
- metadata +129 -82
- data/app/assets/images/geoblacklight/src_berkeley.png +0 -0
- data/app/assets/images/geoblacklight/src_cambridge.png +0 -0
- data/app/assets/images/geoblacklight/src_harvard.png +0 -0
- data/app/assets/images/geoblacklight/src_maryland.png +0 -0
- data/app/assets/images/geoblacklight/src_massgis.png +0 -0
- data/app/assets/images/geoblacklight/src_mit.png +0 -0
- data/app/assets/images/geoblacklight/src_princeton.png +0 -0
- data/app/assets/images/geoblacklight/src_stanford.png +0 -0
- data/app/assets/images/geoblacklight/src_tufts.png +0 -0
- data/app/assets/images/geoblacklight/src_un.png +0 -0
- data/app/assets/images/geoblacklight/type_arc.png +0 -0
- data/app/assets/images/geoblacklight/type_dot.png +0 -0
- data/app/assets/images/geoblacklight/type_library.png +0 -0
- data/app/assets/images/geoblacklight/type_map.png +0 -0
- data/app/assets/images/geoblacklight/type_polygon.png +0 -0
- data/app/assets/images/geoblacklight/type_raster.png +0 -0
- data/app/assets/javascripts/geoblacklight/modules/map-home.js +0 -25
- data/app/assets/javascripts/geoblacklight/modules/map-results.js +0 -72
- data/app/views/catalog/_document_list.html.erb +0 -12
- data/app/views/catalog/_index_header_default.html.erb +0 -59
- data/spec/fixtures/geoblacklight_schema/transformed.json +0 -53
@@ -0,0 +1,45 @@
|
|
1
|
+
Blacklight.onLoad(function() {
|
2
|
+
var downloads = [];
|
3
|
+
$('[data-download-path]').each(function(i, element) {
|
4
|
+
downloads.push(new GeoBlacklight.Download(element));
|
5
|
+
});
|
6
|
+
});
|
7
|
+
|
8
|
+
GeoBlacklight.Download = function(element) {
|
9
|
+
var _this = this;
|
10
|
+
_this.element = $(element);
|
11
|
+
_this.url = _this.element.data('download-path');
|
12
|
+
_this.buttonGroup = _this.element.closest('.btn-group');
|
13
|
+
_this.spinner = $('<i class="fa fa-spinner fa-spin fa-2x fa-align-center"></i>');
|
14
|
+
_this.buttonGroup.append(_this.spinner.hide());
|
15
|
+
_this.setupClickListener();
|
16
|
+
};
|
17
|
+
|
18
|
+
GeoBlacklight.Download.prototype = {
|
19
|
+
setupClickListener: function() {
|
20
|
+
var _this = this;
|
21
|
+
_this.element.on('click', function(e) {
|
22
|
+
e.preventDefault();
|
23
|
+
_this.requestDownload();
|
24
|
+
});
|
25
|
+
},
|
26
|
+
requestDownload: function() {
|
27
|
+
var _this = this;
|
28
|
+
_this.spinner.show();
|
29
|
+
$.ajax({
|
30
|
+
url: _this.url,
|
31
|
+
dataType: 'json'
|
32
|
+
}).done(function(data) {
|
33
|
+
_this.renderFlashMessage(data);
|
34
|
+
_this.spinner.hide();
|
35
|
+
}).fail(function(data, e) {
|
36
|
+
_this.spinner.hide();
|
37
|
+
});
|
38
|
+
},
|
39
|
+
renderFlashMessage: function(response) {
|
40
|
+
$.each(response, function(i, val) {
|
41
|
+
var flashHtml = '<div class="alert alert-' + val[0] + '"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + val[1] + '</div>';
|
42
|
+
$('div.flash_messages').append(flashHtml);
|
43
|
+
});
|
44
|
+
}
|
45
|
+
};
|
@@ -0,0 +1,77 @@
|
|
1
|
+
!function(global) {
|
2
|
+
"use strict";
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Convert LatLngBounds to array of values.
|
6
|
+
*
|
7
|
+
* Additionally, this will wrap the longitude values for the corners.
|
8
|
+
* @param {L.LatLngBounds} bounds Leaflet LatLngBounds object
|
9
|
+
* @return {Array} Array of values as [sw.x, sw.y, ne.x, ne.y]
|
10
|
+
*/
|
11
|
+
L.boundsToBbox = function(bounds) {
|
12
|
+
var sw = bounds.getSouthWest().wrap(),
|
13
|
+
ne = bounds.getNorthEast().wrap();
|
14
|
+
return [
|
15
|
+
L.Util.formatNum(sw.lng, 6),
|
16
|
+
L.Util.formatNum(sw.lat, 6),
|
17
|
+
L.Util.formatNum(ne.lng, 6),
|
18
|
+
L.Util.formatNum(ne.lat, 6)
|
19
|
+
];
|
20
|
+
};
|
21
|
+
|
22
|
+
L.Control.GeoSearch = L.Control.extend({
|
23
|
+
|
24
|
+
options: {
|
25
|
+
button: false
|
26
|
+
},
|
27
|
+
|
28
|
+
initialize: function(searcher, options) {
|
29
|
+
L.Util.setOptions(this, options);
|
30
|
+
this._searcher = L.Util.bind(searcher, this);
|
31
|
+
},
|
32
|
+
|
33
|
+
onAdd: function(map) {
|
34
|
+
var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control');
|
35
|
+
this._map = map;
|
36
|
+
|
37
|
+
if (this.options.button === true) {
|
38
|
+
this.link = L.DomUtil.create('a', 'leaflet-bar-part search-control',
|
39
|
+
container);
|
40
|
+
this.link.href = '';
|
41
|
+
this.icon = L.DomUtil.create('i', 'glyphicon glyphicon-search',
|
42
|
+
this.link);
|
43
|
+
}
|
44
|
+
|
45
|
+
map.on("moveend", this._search, this);
|
46
|
+
|
47
|
+
return container;
|
48
|
+
},
|
49
|
+
|
50
|
+
_search: function() {
|
51
|
+
var params = this.filterParams(['bbox', 'page']),
|
52
|
+
bounds = L.boundsToBbox(this._map.getBounds());
|
53
|
+
|
54
|
+
params.push('bbox=' + encodeURIComponent(bounds.join(' ')));
|
55
|
+
|
56
|
+
this._searcher(params.join('&'));
|
57
|
+
},
|
58
|
+
|
59
|
+
filterParams: function(filterList) {
|
60
|
+
var querystring = window.location.search.substr(1),
|
61
|
+
params = [];
|
62
|
+
|
63
|
+
if (querystring !== "") {
|
64
|
+
params = $.map(querystring.split('&'), function(value) {
|
65
|
+
if ($.inArray(value.split('=')[0], filterList) > -1) {
|
66
|
+
return null;
|
67
|
+
} else {
|
68
|
+
return value;
|
69
|
+
}
|
70
|
+
});
|
71
|
+
}
|
72
|
+
return params;
|
73
|
+
}
|
74
|
+
|
75
|
+
});
|
76
|
+
|
77
|
+
}(this);
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Blacklight.onLoad(function () {
|
2
|
+
$('[data-map="home"]').each(function(i, element) {
|
3
|
+
var geoblacklight = new GeoBlacklight(this),
|
4
|
+
search;
|
5
|
+
search = new L.Control.GeoSearch(function(querystring) {
|
6
|
+
this.link.href = "/catalog?" + querystring;
|
7
|
+
}, { button: true });
|
8
|
+
geoblacklight.map.addControl(search);
|
9
|
+
});
|
10
|
+
});
|
@@ -0,0 +1,72 @@
|
|
1
|
+
Blacklight.onLoad(function() {
|
2
|
+
$('[data-map="item"]').each(function(i, element) {
|
3
|
+
var layerMap = new GeoBlacklight.Item(element);
|
4
|
+
});
|
5
|
+
});
|
6
|
+
|
7
|
+
GeoBlacklight.Item = GeoBlacklight.extend({
|
8
|
+
|
9
|
+
initialize: function(element) {
|
10
|
+
GeoBlacklight.prototype.initialize.call(this, element);
|
11
|
+
this.dataAttributes = $(element).data();
|
12
|
+
this.layer = new L.layerGroup().addTo(this.map);
|
13
|
+
if (this.dataAttributes.available) {
|
14
|
+
this.addPreviewLayer();
|
15
|
+
} else {
|
16
|
+
this.addBoundsOverlay(L.bboxToBounds(this.dataAttributes.mapBbox));
|
17
|
+
}
|
18
|
+
},
|
19
|
+
|
20
|
+
addPreviewLayer: function() {
|
21
|
+
var _this = this;
|
22
|
+
_this.wmsLayer = L.tileLayer.wms(_this.dataAttributes.wmsUrl, {
|
23
|
+
layers: _this.dataAttributes.layerId,
|
24
|
+
format: 'image/png',
|
25
|
+
transparent: true,
|
26
|
+
tiled: true,
|
27
|
+
CRS: 'EPSG:900913',
|
28
|
+
opacity: 0.75
|
29
|
+
});
|
30
|
+
_this.layer.addLayer(_this.wmsLayer);
|
31
|
+
_this.setupInspection();
|
32
|
+
},
|
33
|
+
|
34
|
+
setupInspection: function() {
|
35
|
+
var _this = this;
|
36
|
+
_this.map.on('click', function(e) {
|
37
|
+
spinner = '<span id="attribute-table"><i class="fa fa-spinner fa-spin fa-3x fa-align-center"></i></span>';
|
38
|
+
$('#attribute-table').replaceWith(spinner);
|
39
|
+
var wmsoptions = {
|
40
|
+
URL: _this.dataAttributes.wmsUrl,
|
41
|
+
LAYERS: _this.dataAttributes.layerId,
|
42
|
+
BBOX: _this.map.getBounds().toBBoxString(),
|
43
|
+
WIDTH: $('#map').width(),
|
44
|
+
HEIGHT: $('#map').height(),
|
45
|
+
QUERY_LAYERS: _this.dataAttributes.layerId,
|
46
|
+
X: Math.round(e.containerPoint.x),
|
47
|
+
Y: Math.round(e.containerPoint.y)
|
48
|
+
};
|
49
|
+
|
50
|
+
$.ajax({
|
51
|
+
type: 'POST',
|
52
|
+
url: '/wms/handle',
|
53
|
+
data: wmsoptions,
|
54
|
+
success: function(data) {
|
55
|
+
if (data.hasOwnProperty('error')) {
|
56
|
+
$('#attribute-table').html('Could not find that feature');
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
var t = $('<table id="attribute-table" class="table table-hover table-condensed table-responsive table-striped table-bordered"><thead><tr><th>Attribute</th><th>Value</th></tr></thead><tbody>');
|
60
|
+
$.each(data.values, function(i,val) {
|
61
|
+
t.append('<tr><td>' + val[0] + '</td><td>' + val[1] + '</tr>');
|
62
|
+
});
|
63
|
+
$('#attribute-table').replaceWith(t);
|
64
|
+
},
|
65
|
+
fail: function(error) {
|
66
|
+
console.log(error);
|
67
|
+
}
|
68
|
+
});
|
69
|
+
});
|
70
|
+
}
|
71
|
+
|
72
|
+
});
|
@@ -1,9 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
console.log('DEBUG: Inside geoblacklight/modules/map-view.js');
|
3
|
+
// console.log('DEBUG: Inside geoblacklight/modules/map-view.js');
|
4
4
|
Blacklight.onLoad(function () {
|
5
|
-
$('#geoblacklight-map-view').geoBlacklight_setupMapView();
|
6
|
-
$('#geoblacklight-tools').geoBlacklight_setupTools();
|
5
|
+
// $('#geoblacklight-map-view').geoBlacklight_setupMapView();
|
6
|
+
// $('#geoblacklight-tools').geoBlacklight_setupTools();
|
7
7
|
});
|
8
8
|
|
9
9
|
/* Requires leaflet */
|
@@ -21,7 +21,7 @@ Blacklight.onLoad(function () {
|
|
21
21
|
return this.each(function () {
|
22
22
|
console.log(this)
|
23
23
|
map = L.map('map');
|
24
|
-
console.log(solrDoc)
|
24
|
+
// console.log(solrDoc)
|
25
25
|
// var layerBbox;
|
26
26
|
// var location = JSON.parse(doc.Location);
|
27
27
|
if (solrDoc.solr_bbox){
|
@@ -30,10 +30,10 @@ Blacklight.onLoad(function () {
|
|
30
30
|
[solrDoc.solr_ne_pt_0_d, solrDoc.solr_ne_pt_1_d]]);
|
31
31
|
}
|
32
32
|
|
33
|
-
|
34
|
-
var basemap = L.tileLayer('http://otile1.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', {
|
33
|
+
var basemap = L.tileLayer('http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', {
|
35
34
|
attribution: '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">',
|
36
|
-
maxZoom: 18
|
35
|
+
maxZoom: 18,
|
36
|
+
subdomains: '1234' // see http://developer.mapquest.com/web/products/open/map
|
37
37
|
}).addTo(map);
|
38
38
|
|
39
39
|
map.on('click', function(e){
|
@@ -0,0 +1,50 @@
|
|
1
|
+
Blacklight.onLoad(function() {
|
2
|
+
var dynamicSearcher;
|
3
|
+
|
4
|
+
dynamicSearcher = GeoBlacklight.debounce(function(querystring) {
|
5
|
+
History.pushState(null, null, "/catalog?" + querystring);
|
6
|
+
}, 800);
|
7
|
+
|
8
|
+
History.Adapter.bind(window, 'statechange', function() {
|
9
|
+
var state = History.getState();
|
10
|
+
updatePage(state.url);
|
11
|
+
});
|
12
|
+
|
13
|
+
$('[data-map="index"]').each(function() {
|
14
|
+
var geoblacklight = new GeoBlacklight(this).setHoverListeners(),
|
15
|
+
search = new L.Control.GeoSearch(dynamicSearcher);
|
16
|
+
geoblacklight.map.addControl(search);
|
17
|
+
});
|
18
|
+
|
19
|
+
function updatePage(url) {
|
20
|
+
$.get(url).done(function(data) {
|
21
|
+
var resp = $.parseHTML(data);
|
22
|
+
$doc = $(resp);
|
23
|
+
$("#documents").replaceWith($doc.find("#documents"));
|
24
|
+
$("#sidebar").replaceWith($doc.find("#sidebar"));
|
25
|
+
$("#sortAndPerPage").replaceWith($doc.find("#sortAndPerPage"));
|
26
|
+
if ($("#map").next().length) {
|
27
|
+
$("#map").next().replaceWith($doc.find("#map").next());
|
28
|
+
} else {
|
29
|
+
$("#map").after($doc.find("#map").next());
|
30
|
+
}
|
31
|
+
});
|
32
|
+
}
|
33
|
+
|
34
|
+
});
|
35
|
+
|
36
|
+
GeoBlacklight.prototype.setHoverListeners = function() {
|
37
|
+
var _this = this;
|
38
|
+
|
39
|
+
$("#content")
|
40
|
+
.on("mouseenter", "#documents [data-layer-id]", function() {
|
41
|
+
var bounds = L.bboxToBounds($(this).data('bbox'));
|
42
|
+
_this.addBoundsOverlay(bounds);
|
43
|
+
})
|
44
|
+
.on("mouseleave", "#documents [data-layer-id]", function() {
|
45
|
+
_this.removeBoundsOverlay();
|
46
|
+
});
|
47
|
+
|
48
|
+
return this;
|
49
|
+
|
50
|
+
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require leaflet
|
12
|
+
*= require font-awesome
|
13
|
+
*/
|
14
|
+
|
15
|
+
@import 'geoblacklight/styles';
|
16
|
+
@import 'modules/icons';
|
17
|
+
@import 'modules/icon-customization';
|
18
|
+
@import 'modules/home';
|
19
|
+
@import 'modules/item';
|
20
|
+
@import 'modules/results';
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#table-container{
|
2
|
+
overflow:scroll;
|
3
|
+
max-height: 450px;
|
4
|
+
}
|
5
|
+
|
6
|
+
#control {
|
7
|
+
text-align: center;
|
8
|
+
background: #FFF;
|
9
|
+
position: absolute;
|
10
|
+
left: 24px;
|
11
|
+
top: 120px;
|
12
|
+
height: 200px;
|
13
|
+
width: 28px;
|
14
|
+
border: 1px solid #BBB;
|
15
|
+
-webkit-border-radius: 3px;
|
16
|
+
border-radius: 3px;
|
17
|
+
z-index: 999;
|
18
|
+
}
|
19
|
+
|
20
|
+
#handle {
|
21
|
+
background: #000;
|
22
|
+
position: absolute;
|
23
|
+
left: -1px;
|
24
|
+
top: 20px;
|
25
|
+
width: 28px;
|
26
|
+
height: 10px;
|
27
|
+
}
|
28
|
+
|
29
|
+
#bottom {
|
30
|
+
position: absolute;
|
31
|
+
bottom:0px;
|
32
|
+
left: 8px;
|
33
|
+
text-align: center;
|
34
|
+
}
|
35
|
+
|
36
|
+
#handle:hover {
|
37
|
+
cursor: pointer;
|
38
|
+
background: #444;
|
39
|
+
cursor: ns-resize;
|
40
|
+
}
|
41
|
+
|
42
|
+
.show-tools .bookmark_toggle {
|
43
|
+
padding: 0px 0px;
|
44
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
//
|
2
|
+
// Icon Font: geoblacklight
|
3
|
+
//
|
4
|
+
// From https://github.com/geoblacklight/geoblacklight-icons/blob/master/app/assets/stylesheets/_geoblacklight.scss
|
5
|
+
|
6
|
+
@font-face {
|
7
|
+
font-family: "geoblacklight";
|
8
|
+
src: font-url("geoblacklight.eot");
|
9
|
+
src: font-url("geoblacklight.eot?#iefix") format("embedded-opentype"),
|
10
|
+
font-url("geoblacklight.woff") format("woff"),
|
11
|
+
font-url("geoblacklight.ttf") format("truetype"),
|
12
|
+
font-url("geoblacklight.svg#geoblacklight") format("svg");
|
13
|
+
font-weight: normal;
|
14
|
+
font-style: normal;
|
15
|
+
}
|
16
|
+
|
17
|
+
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
18
|
+
@font-face {
|
19
|
+
font-family: "geoblacklight";
|
20
|
+
src: font-url("geoblacklight.svg#geoblacklight") format("svg");
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
[data-icon]:before { content: attr(data-icon); }
|
25
|
+
|
26
|
+
[data-icon]:before,
|
27
|
+
.geoblacklight-berkeley:before,
|
28
|
+
.geoblacklight-harvard:before,
|
29
|
+
.geoblacklight-image:before,
|
30
|
+
.geoblacklight-line:before,
|
31
|
+
.geoblacklight-massgis:before,
|
32
|
+
.geoblacklight-mit:before,
|
33
|
+
.geoblacklight-paper-map:before,
|
34
|
+
.geoblacklight-point:before,
|
35
|
+
.geoblacklight-polygon:before,
|
36
|
+
.geoblacklight-raster:before,
|
37
|
+
.geoblacklight-stanford:before,
|
38
|
+
.geoblacklight-tufts:before {
|
39
|
+
display: inline-block;
|
40
|
+
font-family: "geoblacklight";
|
41
|
+
font-style: normal;
|
42
|
+
font-weight: normal;
|
43
|
+
font-variant: normal;
|
44
|
+
line-height: 1;
|
45
|
+
text-decoration: inherit;
|
46
|
+
text-rendering: optimizeLegibility;
|
47
|
+
text-transform: none;
|
48
|
+
-moz-osx-font-smoothing: grayscale;
|
49
|
+
-webkit-font-smoothing: antialiased;
|
50
|
+
font-smoothing: antialiased;
|
51
|
+
}
|
52
|
+
|
53
|
+
.geoblacklight-berkeley:before { content: "\f101"; }
|
54
|
+
.geoblacklight-harvard:before { content: "\f103"; }
|
55
|
+
.geoblacklight-image:before { content: "\f10a"; }
|
56
|
+
.geoblacklight-line:before { content: "\f108"; }
|
57
|
+
.geoblacklight-massgis:before { content: "\f106"; }
|
58
|
+
.geoblacklight-mit:before { content: "\f104"; }
|
59
|
+
.geoblacklight-paper-map:before { content: "\f110"; }
|
60
|
+
.geoblacklight-point:before { content: "\f109"; }
|
61
|
+
.geoblacklight-polygon:before { content: "\f107"; }
|
62
|
+
.geoblacklight-raster:before { content: "\f10d"; }
|
63
|
+
.geoblacklight-stanford:before { content: "\f102"; }
|
64
|
+
.geoblacklight-tufts:before { content: "\f105"; }
|
65
|
+
|
66
|
+
$font-geoblacklight-berkeley: "\f101";
|
67
|
+
$font-geoblacklight-harvard: "\f103";
|
68
|
+
$font-geoblacklight-image: "\f10a";
|
69
|
+
$font-geoblacklight-line: "\f108";
|
70
|
+
$font-geoblacklight-massgis: "\f106";
|
71
|
+
$font-geoblacklight-mit: "\f104";
|
72
|
+
$font-geoblacklight-paper-map: "\f110";
|
73
|
+
$font-geoblacklight-point: "\f109";
|
74
|
+
$font-geoblacklight-polygon: "\f107";
|
75
|
+
$font-geoblacklight-raster: "\f10d";
|
76
|
+
$font-geoblacklight-stanford: "\f102";
|
77
|
+
$font-geoblacklight-tufts: "\f105";
|