Support discipline labels
Support display order for the Scimap circles Support custom tooltip Add % information on click action Add info text Add numerical information for mapped, total publications Set default map view to 554 Sub-Discipline Enable labels by default
|
@ -76,6 +76,38 @@ a.clear-selected-entities {
|
||||||
top: 10px !important;
|
top: 10px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* tooltip */
|
||||||
|
#tt {
|
||||||
|
font:11px/1.5 Verdana, Arial, Helvetica, sans-serif;
|
||||||
|
position:absolute;
|
||||||
|
display:block;
|
||||||
|
background:url(../../../images/visualization/mapofscience/tooltip/tt_left.gif) top left no-repeat
|
||||||
|
}
|
||||||
|
|
||||||
|
#tttop {
|
||||||
|
display:block;
|
||||||
|
height:5px;
|
||||||
|
margin-left:5px;
|
||||||
|
background:url(../../../images/visualization/mapofscience/tooltip/tt_top.gif) top right no-repeat;
|
||||||
|
overflow:hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
#ttcont {
|
||||||
|
display:block;
|
||||||
|
padding:2px 12px 3px 7px;
|
||||||
|
margin-left:5px;
|
||||||
|
background:#666;
|
||||||
|
color:#FFF
|
||||||
|
}
|
||||||
|
|
||||||
|
#ttbot {
|
||||||
|
display:block;
|
||||||
|
height:5px;
|
||||||
|
margin-left:5px;
|
||||||
|
background:url(../../../images/visualization/mapofscience/tooltip/tt_bottom.gif) top right no-repeat;
|
||||||
|
overflow:hidden
|
||||||
|
}
|
||||||
|
|
||||||
/* DataTable related css */
|
/* DataTable related css */
|
||||||
|
|
||||||
/* filter */
|
/* filter */
|
||||||
|
|
BIN
productMods/images/visualization/mapofscience/labels/bio.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
productMods/images/visualization/mapofscience/labels/biotech.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
productMods/images/visualization/mapofscience/labels/brain.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
productMods/images/visualization/mapofscience/labels/chem.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
productMods/images/visualization/mapofscience/labels/chemeng.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 2.9 KiB |
BIN
productMods/images/visualization/mapofscience/labels/eecs.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
productMods/images/visualization/mapofscience/labels/health.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
productMods/images/visualization/mapofscience/labels/human.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
productMods/images/visualization/mapofscience/labels/infect.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.4 KiB |
BIN
productMods/images/visualization/mapofscience/labels/medspec.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
productMods/images/visualization/mapofscience/labels/socsci.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 94 B |
After Width: | Height: | Size: 73 B |
BIN
productMods/images/visualization/mapofscience/tooltip/tt_top.gif
Normal file
After Width: | Height: | Size: 93 B |
|
@ -48,7 +48,7 @@ var SliderControlPanel = ControlPanel.extend({
|
||||||
},
|
},
|
||||||
initSlider: function() {
|
initSlider: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
var label = $("<div />").width(20).css("font-size", "60%").css("float", "right").text("0");
|
var label = $("<div />").width(150).css("font-size", "75%").css("text-align", "center").text("");
|
||||||
var slider = $("<div />").width(150).css("font-size","60%");
|
var slider = $("<div />").width(150).css("font-size","60%");
|
||||||
slider.slider({
|
slider.slider({
|
||||||
slide: function(event, ui) {
|
slide: function(event, ui) {
|
||||||
|
@ -61,8 +61,8 @@ var SliderControlPanel = ControlPanel.extend({
|
||||||
|
|
||||||
var div = me.getDiv();
|
var div = me.getDiv();
|
||||||
div.css("margin-right", "10px");
|
div.css("margin-right", "10px");
|
||||||
div.append(slider);
|
|
||||||
div.append(label);
|
div.append(label);
|
||||||
|
div.append(slider);
|
||||||
},
|
},
|
||||||
getValue: function () {
|
getValue: function () {
|
||||||
return this.sliderDiv.slider( "option", "value" );
|
return this.sliderDiv.slider( "option", "value" );
|
||||||
|
@ -84,11 +84,8 @@ var SliderControlPanel = ControlPanel.extend({
|
||||||
this._setLabel(value);
|
this._setLabel(value);
|
||||||
},
|
},
|
||||||
_setLabel: function(value) {
|
_setLabel: function(value) {
|
||||||
if (value < 1) {
|
var labelText = "Top " + value + " disciplines shown"
|
||||||
this.labelDiv.text("0");
|
this.labelDiv.text(labelText);
|
||||||
} else {
|
|
||||||
this.labelDiv.text(value);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
setChangeEventHandler: function(handlerFunc) {
|
setChangeEventHandler: function(handlerFunc) {
|
||||||
this.sliderDiv.slider({
|
this.sliderDiv.slider({
|
||||||
|
@ -96,3 +93,43 @@ var SliderControlPanel = ControlPanel.extend({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* options
|
||||||
|
* map - Container map to be added
|
||||||
|
* click - Handler function for click event
|
||||||
|
* text - Description of the check Box
|
||||||
|
*/
|
||||||
|
var CheckBoxPanel = ControlPanel.extend({
|
||||||
|
init: function(options) {
|
||||||
|
this._super(options);
|
||||||
|
this.initCheckBox();
|
||||||
|
},
|
||||||
|
initCheckBox: function() {
|
||||||
|
var me = this;
|
||||||
|
var description
|
||||||
|
var text = me.options.text;
|
||||||
|
var checkBox = $('<input type="checkbox"><span style="font-size: 75%; vertical-align: text-top">'
|
||||||
|
+ text
|
||||||
|
+ '</span></input>'
|
||||||
|
);
|
||||||
|
me.checkBox = checkBox;
|
||||||
|
|
||||||
|
var div = me.getDiv();
|
||||||
|
div.css("margin-right", "10px");
|
||||||
|
div.append(checkBox);
|
||||||
|
|
||||||
|
me.checkBox.attr('checked', me.options.checked);
|
||||||
|
/* Init contents if it is given */
|
||||||
|
var click = me.options.click;
|
||||||
|
if (click) {
|
||||||
|
me.click(click);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
click: function(handlerFunc) {
|
||||||
|
this.checkBox.click(handlerFunc);
|
||||||
|
},
|
||||||
|
isChecked: function() {
|
||||||
|
return this.checkBox.attr('checked');
|
||||||
|
}
|
||||||
|
});
|
|
@ -5,10 +5,10 @@ var ScinodePolygon = CirclePolygon.extend({
|
||||||
this.hide();
|
this.hide();
|
||||||
},
|
},
|
||||||
setValue: function(value) {
|
setValue: function(value) {
|
||||||
this.options.value = value;
|
this.polygon.value = value;
|
||||||
},
|
},
|
||||||
getValue: function() {
|
getValue: function() {
|
||||||
return this.options.value;
|
return this.polygon.value;
|
||||||
},
|
},
|
||||||
setSize: function(size) {
|
setSize: function(size) {
|
||||||
this.setRadius(size);
|
this.setRadius(size);
|
||||||
|
@ -20,13 +20,16 @@ var ScinodePolygon = CirclePolygon.extend({
|
||||||
unfocus: function() {
|
unfocus: function() {
|
||||||
this.setOptions({strokeWeight: 1.0});
|
this.setOptions({strokeWeight: 1.0});
|
||||||
},
|
},
|
||||||
|
setContent: function(content) {
|
||||||
|
this.polygon.content = content;
|
||||||
|
},
|
||||||
registerEvents : function() {
|
registerEvents : function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
var polygon = me.polygon;
|
var polygon = me.polygon;
|
||||||
this._super();
|
this._super();
|
||||||
this.registerEvent(addClickListener(polygon, function() {
|
this.registerEvent(addClickListener(polygon, function() {
|
||||||
INFO_WINDOW.setPosition(this.center);
|
INFO_WINDOW.setPosition(this.center);
|
||||||
var content = '<div style="font-size: 80%; padding: 5px; text-align: left;"><b>' + this.label +'</b><br />' + this.value + ' publications </div>';
|
var content = this.content;
|
||||||
INFO_WINDOW.setContent(content);
|
INFO_WINDOW.setContent(content);
|
||||||
INFO_WINDOW.open(this.map);
|
INFO_WINDOW.open(this.map);
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -214,18 +214,23 @@ var DataTableWidget = Class.extend({
|
||||||
me.widget.fnFilter("");
|
me.widget.fnFilter("");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var totalPublications = me.pubsWithNoJournals + me.pubsWithInvalidJournals + me.pubsMapped;
|
||||||
|
$("#mapped-publications").text(addCommasToNumber(me.pubsMapped));
|
||||||
$("#percent-mapped-info").show();
|
$("#percent-mapped-info").show();
|
||||||
$("#percent-mapped").text((100 * me.pubsMapped / (me.pubsWithNoJournals + me.pubsWithInvalidJournals + me.pubsMapped)).toFixed(2));
|
$("#percent-mapped").text((100 * me.pubsMapped / totalPublications).toFixed(2));
|
||||||
|
$("#total-publications").text(addCommasToNumber(totalPublications));
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
changeFilter: function(filterType) {
|
changeFilter: function(filterType) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (filterType === SCIMAP_TYPE.SUBDISCIPLINE) {
|
if (filterType === SCIMAP_TYPE.SUBDISCIPLINE) {
|
||||||
|
|
||||||
$("#science-areas-th").html("Sub-Disciplines");
|
$("#science-areas-th").html("Sub-Disciplines");
|
||||||
me.widget.fnSettings()._iDisplayLength = 10;
|
if (me.widget) {
|
||||||
|
me.widget.fnSettings()._iDisplayLength = 10;
|
||||||
|
}
|
||||||
me.currentSelectedFilter = SCIMAP_TYPE.SUBDISCIPLINE;
|
me.currentSelectedFilter = SCIMAP_TYPE.SUBDISCIPLINE;
|
||||||
$("a#csv").attr("href", entityMapOfScienceSubDisciplineCSVURL);
|
$("a#csv").attr("href", entityMapOfScienceSubDisciplineCSVURL);
|
||||||
|
|
||||||
|
@ -233,12 +238,16 @@ var DataTableWidget = Class.extend({
|
||||||
|
|
||||||
$("#science-areas-th").html("Disciplines");
|
$("#science-areas-th").html("Disciplines");
|
||||||
me.currentSelectedFilter = SCIMAP_TYPE.DISCIPLINE;
|
me.currentSelectedFilter = SCIMAP_TYPE.DISCIPLINE;
|
||||||
me.widget.fnSettings()._iDisplayLength = 13;
|
if (me.widget) {
|
||||||
|
me.widget.fnSettings()._iDisplayLength = 13;
|
||||||
|
}
|
||||||
$("a#csv").attr("href", entityMapOfScienceDisciplineCSVURL);
|
$("a#csv").attr("href", entityMapOfScienceDisciplineCSVURL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ACTIVE_DISCIPLINE_SUBDISCIPLINE_FILTER = me.currentSelectedFilter;
|
ACTIVE_DISCIPLINE_SUBDISCIPLINE_FILTER = me.currentSelectedFilter;
|
||||||
me.widget.fnDraw();
|
if (me.widget) {
|
||||||
|
me.widget.fnDraw();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
|
@ -45,7 +45,7 @@ function setupLoadingScreen() {
|
||||||
|
|
||||||
function initMap() {
|
function initMap() {
|
||||||
var gMap = google.maps;
|
var gMap = google.maps;
|
||||||
var centerLatLng = new google.maps.LatLng(50, 0);
|
var centerLatLng = new google.maps.LatLng(55, -10);
|
||||||
|
|
||||||
var mapOptions = {
|
var mapOptions = {
|
||||||
center: centerLatLng,
|
center: centerLatLng,
|
||||||
|
|
56
productMods/js/visualization/mapofscience/Marker.js
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
/**
|
||||||
|
* Marker Object for that hold external information - data. Please refer to the
|
||||||
|
* Google.map.MakerOptions for options' details
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Marker = Class.extend({
|
||||||
|
init : function(options) {
|
||||||
|
this.options = $.extend({}, this.options, options);
|
||||||
|
this.marker = createGoogleMarker(this.options);
|
||||||
|
this.hide();
|
||||||
|
this.registerEvents();
|
||||||
|
},
|
||||||
|
options : {
|
||||||
|
value : 0,
|
||||||
|
map : null,
|
||||||
|
icon : null,
|
||||||
|
position : null,
|
||||||
|
content : null
|
||||||
|
},
|
||||||
|
addToMap : function() {
|
||||||
|
this.marker.setMap(this.options.map);
|
||||||
|
this.registerEvents();
|
||||||
|
},
|
||||||
|
removeFromMap : function() {
|
||||||
|
this.marker.setMap(null);
|
||||||
|
this.unregisterEvents();
|
||||||
|
},
|
||||||
|
show : function() {
|
||||||
|
this.marker.setVisible(true);
|
||||||
|
},
|
||||||
|
hide : function() {
|
||||||
|
this.marker.setVisible(false);
|
||||||
|
},
|
||||||
|
setIcon : function(icon) {
|
||||||
|
this.marker.setIcon(icon);
|
||||||
|
},
|
||||||
|
setZIndex: function(zIndex){
|
||||||
|
this.marker.setZIndex(zIndex);
|
||||||
|
},
|
||||||
|
setTitle : function(title) {
|
||||||
|
this.marker.title = title;
|
||||||
|
},
|
||||||
|
registerEvents : function() {
|
||||||
|
var handlers = new Array();
|
||||||
|
var marker = this.marker;
|
||||||
|
handlers.push(addClickListener(marker, function() {
|
||||||
|
updateIFrame(this.url);
|
||||||
|
}));
|
||||||
|
this.handlers = handlers;
|
||||||
|
},
|
||||||
|
unregisterEvents : function() {
|
||||||
|
removeListeners(this.handlers);
|
||||||
|
this.handlers = null;
|
||||||
|
}
|
||||||
|
});
|
|
@ -4,10 +4,8 @@
|
||||||
* markers by grouping the markers by keys.
|
* markers by grouping the markers by keys.
|
||||||
*/
|
*/
|
||||||
var MarkerManager = Class.extend({
|
var MarkerManager = Class.extend({
|
||||||
init: function(colorStrategy, sizeCoder) {
|
init: function() {
|
||||||
this.keyToMarker = {};
|
this.keyToMarker = {};
|
||||||
this.colorStrategy = colorStrategy;
|
|
||||||
this.sizeCoder = sizeCoder;
|
|
||||||
},
|
},
|
||||||
addMarker: function(key, marker) {
|
addMarker: function(key, marker) {
|
||||||
this.keyToMarker[key] = marker;
|
this.keyToMarker[key] = marker;
|
||||||
|
@ -22,6 +20,11 @@ var MarkerManager = Class.extend({
|
||||||
getMarker: function(key) {
|
getMarker: function(key) {
|
||||||
return this.keyToMarker[key];
|
return this.keyToMarker[key];
|
||||||
},
|
},
|
||||||
|
getMarkerArray: function() {
|
||||||
|
var array = [];
|
||||||
|
$.each(this.keyToMarker, function(i, e){ array.push(e); });
|
||||||
|
return array;
|
||||||
|
},
|
||||||
hasKey: function(key) {
|
hasKey: function(key) {
|
||||||
return (this.keyToMarker.hasOwnProperty(key));
|
return (this.keyToMarker.hasOwnProperty(key));
|
||||||
},
|
},
|
||||||
|
@ -36,7 +39,6 @@ var MarkerManager = Class.extend({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
addMarkersToMap: function() {
|
addMarkersToMap: function() {
|
||||||
// console.log(this.keyToMarker);
|
|
||||||
$.each(this.keyToMarker, function(i, marker) {
|
$.each(this.keyToMarker, function(i, marker) {
|
||||||
marker.addToMap();
|
marker.addToMap();
|
||||||
});
|
});
|
||||||
|
@ -49,18 +51,46 @@ var MarkerManager = Class.extend({
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Customized MarkerManager for Science map purpose. It is be an abstract class
|
* Customized Discipline labels MarkerManager for Science map purpose. It is an abstract class
|
||||||
*/
|
*/
|
||||||
ScimapMarkerManager = MarkerManager.extend({
|
var DisciplineLabelsMarkerManager = MarkerManager.extend({
|
||||||
|
init: function(map) {
|
||||||
|
this._super();
|
||||||
|
this.map = map;
|
||||||
|
this.initMarkers(map);
|
||||||
|
},
|
||||||
|
initMarkers: function(map) {
|
||||||
|
me = this;
|
||||||
|
$.each(DISCIPLINES, function(id, discipline) {
|
||||||
|
var opts = {
|
||||||
|
map: map,
|
||||||
|
position: createNoWrapLatLng(discipline.labelLatitude, discipline.labelLongitude),
|
||||||
|
icon: getDisciplineLabelImageURL(id),
|
||||||
|
clickable: false
|
||||||
|
};
|
||||||
|
me.addMarker(id, new Marker(opts));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
showMarkers: function() {
|
||||||
|
this._super();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Customized MarkerManager for Science map purpose. It is an abstract class
|
||||||
|
*/
|
||||||
|
var ScimapMarkerManager = MarkerManager.extend({
|
||||||
init: function(map, colorStrategy, sizeCoder) {
|
init: function(map, colorStrategy, sizeCoder) {
|
||||||
this._super();
|
this._super();
|
||||||
this.colorStrategy = colorStrategy;
|
this.colorStrategy = colorStrategy;
|
||||||
this.sizeCoder = sizeCoder;
|
this.sizeCoder = sizeCoder;
|
||||||
this.map = map;
|
this.map = map;
|
||||||
|
this.maxValue = 1;
|
||||||
this.layer = {};
|
this.layer = {};
|
||||||
},
|
},
|
||||||
setSizeCoder: function(sizeCoder) {
|
setSizeCoder: function(sizeCoder) {
|
||||||
this.sizeCoder = sizeCoder;
|
this.sizeCoder = sizeCoder;
|
||||||
|
this.maxValue = sizeCoder.getMaxValue();
|
||||||
},
|
},
|
||||||
createMarker: function(key, density) {
|
createMarker: function(key, density) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
@ -89,11 +119,17 @@ ScimapMarkerManager = MarkerManager.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
display: function(numberOfMarkers) {
|
display: function(numberOfMarkers) {
|
||||||
$.each(this.keyToMarker, function(i, marker) {
|
var markerArray = this.sortedMarkers;
|
||||||
if (i <= numberOfMarkers) {
|
if (!markerArray || !markerArray.length) {
|
||||||
marker.show();
|
markerArray = this.getMarkerArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
$.each(markerArray, function() {
|
||||||
|
if (numberOfMarkers > 0) {
|
||||||
|
this.show();
|
||||||
|
numberOfMarkers--;
|
||||||
} else {
|
} else {
|
||||||
marker.hide();
|
this.hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -118,6 +154,12 @@ ScimapMarkerManager = MarkerManager.extend({
|
||||||
$.each(this.keyToMarker, function(i, marker) {
|
$.each(this.keyToMarker, function(i, marker) {
|
||||||
marker.unfocus();
|
marker.unfocus();
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
sort: function() {
|
||||||
|
this.sortedMarkers = this.getMarkerArray();
|
||||||
|
this.sortedMarkers.sort(function(a, b) {
|
||||||
|
return b.getValue() -a.getValue();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -129,7 +171,16 @@ var DisciplineMarkerManager = ScimapMarkerManager.extend({
|
||||||
createMarker: function(subdisciplineKey, density) {
|
createMarker: function(subdisciplineKey, density) {
|
||||||
var me = this;
|
var me = this;
|
||||||
var key = SUBDISCIPLINES[subdisciplineKey].discipline;
|
var key = SUBDISCIPLINES[subdisciplineKey].discipline;
|
||||||
return this._super(key, density);
|
var marker = this._super(key, density);
|
||||||
|
var poly = marker.polygon;
|
||||||
|
|
||||||
|
marker.setContent(
|
||||||
|
'<div style="font-size: 80%; padding: 5px; text-align: left;"><b>'
|
||||||
|
+ poly.label +'</b><br />'
|
||||||
|
+ addCommasToNumber(poly.value.toFixed(2)) + ' of pubs.<br />'
|
||||||
|
+ (poly.value * 100 / this.maxValue).toFixed(2) + '% of activity</div>'
|
||||||
|
);
|
||||||
|
return marker;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -137,5 +188,20 @@ var SubdisciplineMarkerManager = ScimapMarkerManager.extend({
|
||||||
init: function(map, colorStrategy, sizeCoder) {
|
init: function(map, colorStrategy, sizeCoder) {
|
||||||
this._super(map, colorStrategy, sizeCoder);
|
this._super(map, colorStrategy, sizeCoder);
|
||||||
this.layer = SUBDISCIPLINES;
|
this.layer = SUBDISCIPLINES;
|
||||||
|
},
|
||||||
|
createMarker: function(subdisciplineKey, density) {
|
||||||
|
var marker = this._super(subdisciplineKey, density);
|
||||||
|
var disciplineId = SUBDISCIPLINES[subdisciplineKey].discipline;
|
||||||
|
var disciplineLabel = DISCIPLINES[disciplineId].label;
|
||||||
|
var poly = marker.polygon;
|
||||||
|
/* Override the getContent for Subdiscipline */
|
||||||
|
marker.setContent(
|
||||||
|
'<div style="font-size: 80%; padding: 5px; text-align: left;"><b>'
|
||||||
|
+ poly.label + '</b> in ' + disciplineLabel +'<br />'
|
||||||
|
+ addCommasToNumber(poly.value.toFixed(2)) + ' of pubs.<br />'
|
||||||
|
+ (poly.value * 100 / this.maxValue).toFixed(2) + '% of activity</div>'
|
||||||
|
);
|
||||||
|
|
||||||
|
return marker;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
16
productMods/js/visualization/mapofscience/NumberUtils.js
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
// Adapted from http://www.mredkj.com/javascript/numberFormat.html
|
||||||
|
// format number to a better human readable text
|
||||||
|
function addCommasToNumber(nStr) {
|
||||||
|
nStr += '';
|
||||||
|
var x = nStr.split('.');
|
||||||
|
var x1 = x[0];
|
||||||
|
var x2 = x.length > 1 ? '.' + x[1] : '';
|
||||||
|
var rgx = /(\d+)(\d{3})/;
|
||||||
|
|
||||||
|
while (rgx.test(x1)) {
|
||||||
|
x1 = x1.replace(rgx, '$1' + ',' + '$2');
|
||||||
|
}
|
||||||
|
|
||||||
|
return x1 + x2;
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
var INFO_WINDOW = createInfoWindow("", 300);
|
|
||||||
|
|
||||||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
var INFO_WINDOW = createInfoWindow("", "300");
|
||||||
|
|
||||||
var Polygon = Class.extend({
|
var Polygon = Class.extend({
|
||||||
init : function(options) {
|
init : function(options) {
|
||||||
this.options = $.extend({}, this.options, options);
|
this.options = $.extend({}, this.options, options);
|
||||||
|
@ -71,6 +71,8 @@ function degreeToRadians(degree) {
|
||||||
return degree * RADIAN_PER_DEGREE;
|
return degree * RADIAN_PER_DEGREE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var TOOLTIP = new Tooltip({ attachedToMouse: true });
|
||||||
|
|
||||||
var CirclePolygon = Polygon.extend({
|
var CirclePolygon = Polygon.extend({
|
||||||
init : function(options) {
|
init : function(options) {
|
||||||
this.options = $.extend({}, this.options, options);
|
this.options = $.extend({}, this.options, options);
|
||||||
|
@ -91,7 +93,6 @@ var CirclePolygon = Polygon.extend({
|
||||||
this.initCirclePoints();
|
this.initCirclePoints();
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(this.polygon.getPaths().getLength());
|
|
||||||
this._super();
|
this._super();
|
||||||
},
|
},
|
||||||
isPointsCreated: function() {
|
isPointsCreated: function() {
|
||||||
|
@ -105,7 +106,6 @@ var CirclePolygon = Polygon.extend({
|
||||||
var me = this;
|
var me = this;
|
||||||
var map = me.options.map;
|
var map = me.options.map;
|
||||||
var latLngArray = new google.maps.MVCArray(); // Circle's LatLngs
|
var latLngArray = new google.maps.MVCArray(); // Circle's LatLngs
|
||||||
//console.log(map.getProjection());
|
|
||||||
if (map && map.getProjection()) {
|
if (map && map.getProjection()) {
|
||||||
var projection = map.getProjection();
|
var projection = map.getProjection();
|
||||||
var centerPoint = projection.fromLatLngToPoint(me.options.center);
|
var centerPoint = projection.fromLatLngToPoint(me.options.center);
|
||||||
|
@ -132,8 +132,19 @@ var CirclePolygon = Polygon.extend({
|
||||||
},
|
},
|
||||||
registerEvents: function() {
|
registerEvents: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
var polygon = me.polygon;
|
||||||
this.registerEvent(addMapProjectionChangedListener(me.options.map, function() {
|
this.registerEvent(addMapProjectionChangedListener(me.options.map, function() {
|
||||||
me.initCirclePoints();
|
me.initCirclePoints();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
this.registerEvent(addMouseOverListener(polygon, function() {
|
||||||
|
TOOLTIP.setHtml("<b>" + this.label + "</b>");
|
||||||
|
TOOLTIP.show();
|
||||||
|
}));
|
||||||
|
|
||||||
|
this.registerEvent(addMouseOutListener(polygon, function() {
|
||||||
|
TOOLTIP.hide();
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,38 @@
|
||||||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
var DEFAULT_SLIDER_VALUE = 20;
|
|
||||||
|
|
||||||
var ScimapWidget = Class.extend({
|
var ScimapWidget = Class.extend({
|
||||||
init: function(map, sliderControl) {
|
init: function(map, sliderControl) {
|
||||||
this.activeManager = null;
|
var me = this;
|
||||||
this.isUnloaded = true;
|
me.activeManager = null;
|
||||||
this.map = map;
|
me.isUnloaded = true;
|
||||||
this.sliderControl = sliderControl;
|
me.map = map;
|
||||||
this.initView();
|
me.sliderControl = sliderControl;
|
||||||
|
me.labelsMarkerManager = new DisciplineLabelsMarkerManager(map);
|
||||||
|
me.disciplineLabelsControl = new CheckBoxPanel({
|
||||||
|
map: map,
|
||||||
|
checked: true,
|
||||||
|
text: "Show discipline labels",
|
||||||
|
click: function() {
|
||||||
|
if($(this).attr('checked')) {
|
||||||
|
me.labelsMarkerManager.showMarkers();
|
||||||
|
} else {
|
||||||
|
me.labelsMarkerManager.hideMarkers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
me.initView();
|
||||||
},
|
},
|
||||||
initView: function(){
|
initView: function(){
|
||||||
var me = this;
|
var me = this;
|
||||||
|
/* Display labels if checked */
|
||||||
|
if (me.disciplineLabelsControl.isChecked()) {
|
||||||
|
me.labelsMarkerManager.showMarkers();
|
||||||
|
}
|
||||||
me.initMarkerManagers();
|
me.initMarkerManagers();
|
||||||
me.sliderControl.setChangeEventHandler(function(event, ui) {
|
me.sliderControl.setChangeEventHandler(function(event, ui) {
|
||||||
me.updateDisplayedMarkers(ui.value);
|
me.updateDisplayedMarkers(ui.value);
|
||||||
});
|
});
|
||||||
me.show(SCIMAP_TYPE.DISCIPLINE);
|
me.show(SCIMAP_TYPE.SUBDISCIPLINE);
|
||||||
},
|
},
|
||||||
initMarkerManagers: function() {
|
initMarkerManagers: function() {
|
||||||
if (this.keyToMarkerManagers == null) {
|
if (this.keyToMarkerManagers == null) {
|
||||||
|
@ -49,6 +65,7 @@ var ScimapWidget = Class.extend({
|
||||||
me.pubsWithInvalidJournals = data.pubsWithInvalidJournals;
|
me.pubsWithInvalidJournals = data.pubsWithInvalidJournals;
|
||||||
me.pubsMapped = data.pubsMapped;
|
me.pubsMapped = data.pubsMapped;
|
||||||
|
|
||||||
|
this.isUnloaded = false;
|
||||||
$.each(this.keyToMarkerManagers, function(key, manager) {
|
$.each(this.keyToMarkerManagers, function(key, manager) {
|
||||||
// Need to create the AreaSizeCoding function
|
// Need to create the AreaSizeCoding function
|
||||||
manager.setSizeCoder(new CircleSizeCoder({
|
manager.setSizeCoder(new CircleSizeCoder({
|
||||||
|
@ -61,9 +78,10 @@ var ScimapWidget = Class.extend({
|
||||||
var marker = manager.createMarker(subdiscipline, density);
|
var marker = manager.createMarker(subdiscipline, density);
|
||||||
|
|
||||||
}); // end each subdisciplineActivity
|
}); // end each subdisciplineActivity
|
||||||
|
|
||||||
|
manager.sort();
|
||||||
}); // end each markerManagers
|
}); // end each markerManagers
|
||||||
me.updateMap();
|
me.updateMap();
|
||||||
this.isUnloaded = false;
|
|
||||||
},
|
},
|
||||||
mouseIn: function(key, childKey) {
|
mouseIn: function(key, childKey) {
|
||||||
var manager = this.getMarkerManager(key);
|
var manager = this.getMarkerManager(key);
|
||||||
|
@ -118,6 +136,7 @@ var ScimapWidget = Class.extend({
|
||||||
cleanUp: function() {
|
cleanUp: function() {
|
||||||
if (this.activeManager) {
|
if (this.activeManager) {
|
||||||
this.activeManager.removeMarkersFromMap();
|
this.activeManager.removeMarkersFromMap();
|
||||||
|
INFO_WINDOW.close();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateDisplayedMarkers: function(numberOfMarkers) {
|
updateDisplayedMarkers: function(numberOfMarkers) {
|
||||||
|
@ -130,7 +149,7 @@ var ScimapWidget = Class.extend({
|
||||||
var slider = this.sliderControl;
|
var slider = this.sliderControl;
|
||||||
slider.setMin(Math.min(1, length));
|
slider.setMin(Math.min(1, length));
|
||||||
slider.setMax(length);
|
slider.setMax(length);
|
||||||
slider.setValue(Math.min(DEFAULT_SLIDER_VALUE, length));
|
slider.setValue(length);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
changeFilter: function(filterType) {
|
changeFilter: function(filterType) {
|
||||||
|
|
|
@ -57,7 +57,7 @@ var CircleSizeCoder = Class.extend({
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
minRadius: 0.8,
|
minRadius: 0.8,
|
||||||
maxRadius: 100.0,//100.0,
|
maxRadius: 100.0,
|
||||||
scaler: new Scaler({})
|
scaler: new Scaler({})
|
||||||
},
|
},
|
||||||
getSize: function(value) {
|
getSize: function(value) {
|
||||||
|
@ -71,6 +71,9 @@ var CircleSizeCoder = Class.extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
return radius;
|
return radius;
|
||||||
|
},
|
||||||
|
getMaxValue: function() {
|
||||||
|
return this.options.scaler.options.maxValue;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
101
productMods/js/visualization/mapofscience/Tooltip.js
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
/**
|
||||||
|
* This tooltip source is modified based on the example of Google map V3. The demo html
|
||||||
|
* is at http://philmap.000space.com/gmap-api/poly-hov.html
|
||||||
|
*
|
||||||
|
* Modification:
|
||||||
|
* 1. Init container at constructor class
|
||||||
|
* 2. Add feature functions: setHtml, setWidth, setPosition
|
||||||
|
*/
|
||||||
|
var Tooltip = function(o) {
|
||||||
|
var me = this;
|
||||||
|
var id = 'tt';
|
||||||
|
var top = 3;
|
||||||
|
var left = 3;
|
||||||
|
var maxw = 300;
|
||||||
|
var speed = 10;
|
||||||
|
var fadeInTimer = 10;
|
||||||
|
var fadeOutTimer = 0;
|
||||||
|
var endalpha = 85;
|
||||||
|
var alpha = 0;
|
||||||
|
var preferredWidth;
|
||||||
|
var tt, t, c, b, h, w;
|
||||||
|
var opts = {};
|
||||||
|
var ie = document.all ? true : false;
|
||||||
|
|
||||||
|
opts = $.extend({}, opts, o);
|
||||||
|
tt = document.createElement('div');
|
||||||
|
tt.setAttribute('id', id);
|
||||||
|
t = document.createElement('div');
|
||||||
|
t.setAttribute('id', id + 'top');
|
||||||
|
c = document.createElement('div');
|
||||||
|
c.setAttribute('id', id + 'cont');
|
||||||
|
b = document.createElement('div');
|
||||||
|
b.setAttribute('id', id + 'bot');
|
||||||
|
tt.appendChild(t);
|
||||||
|
tt.appendChild(c);
|
||||||
|
tt.appendChild(b);
|
||||||
|
document.body.appendChild(tt);
|
||||||
|
tt.style.opacity = 0;
|
||||||
|
tt.style.filter = 'alpha(opacity=0)';
|
||||||
|
|
||||||
|
return {
|
||||||
|
show: function(){
|
||||||
|
document.onmousemove = this.pos;
|
||||||
|
|
||||||
|
var w = preferredWidth;
|
||||||
|
tt.style.display = 'block';
|
||||||
|
tt.style.width = w ? w + 'px' : 'auto';
|
||||||
|
if(!w && ie){
|
||||||
|
t.style.display = 'none';
|
||||||
|
b.style.display = 'none';
|
||||||
|
tt.style.width = tt.offsetWidth;
|
||||||
|
t.style.display = 'block';
|
||||||
|
b.style.display = 'block';
|
||||||
|
}
|
||||||
|
if(tt.offsetWidth > maxw) { tt.style.width = maxw + 'px' }
|
||||||
|
h = parseInt(tt.offsetHeight) + top;
|
||||||
|
clearInterval(tt.timer);
|
||||||
|
var me = this;
|
||||||
|
tt.timer = setInterval( function() { me.fade(1) }, fadeInTimer);
|
||||||
|
},
|
||||||
|
pos:function(e){
|
||||||
|
var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
|
||||||
|
var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
|
||||||
|
tt.style.top = (u - h) + 'px';
|
||||||
|
tt.style.left = (l + left) + 'px';
|
||||||
|
},
|
||||||
|
fade:function(d){
|
||||||
|
var a = alpha;
|
||||||
|
if((a != endalpha && d == 1) || (a != 0 && d == -1)){
|
||||||
|
var i = speed;
|
||||||
|
if(endalpha - a < speed && d == 1){
|
||||||
|
i = endalpha - a;
|
||||||
|
}else if(alpha < speed && d == -1){
|
||||||
|
i = a;
|
||||||
|
}
|
||||||
|
alpha = a + (i * d);
|
||||||
|
tt.style.opacity = alpha * .01;
|
||||||
|
tt.style.filter = 'alpha(opacity=' + alpha + ')';
|
||||||
|
}else{
|
||||||
|
clearInterval(tt.timer);
|
||||||
|
if(d == -1){tt.style.display = 'none'}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hide:function(){
|
||||||
|
clearInterval(tt.timer);
|
||||||
|
var me = this;
|
||||||
|
tt.timer = setInterval( function(){ me.fade(-1) }, fadeOutTimer);
|
||||||
|
},
|
||||||
|
setHtml: function(v) {
|
||||||
|
c.innerHTML = v;
|
||||||
|
},
|
||||||
|
setWidth: function(w) {
|
||||||
|
preferredWidth = w;
|
||||||
|
},
|
||||||
|
setPosition: function(x, y) {
|
||||||
|
tt.style.top = x + 'px';
|
||||||
|
tt.style.left = y + 'px';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
|
@ -35,6 +35,9 @@ var EntityVisModeController = Class.extend({
|
||||||
$(this).addClass('active-filter');
|
$(this).addClass('active-filter');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* Init default filter */
|
||||||
|
$("#" + dom.subdisciplinesFilterID).trigger('click');
|
||||||
},
|
},
|
||||||
initWidgets: function(map, sliderControl) {
|
initWidgets: function(map, sliderControl) {
|
||||||
var widgets = {};
|
var widgets = {};
|
||||||
|
|
|
@ -39,6 +39,7 @@ var scienceMapDataURL = "${entityMapOfScienceDataURL}";
|
||||||
var imageFolderPrefix = "${urls.images}/visualization/";
|
var imageFolderPrefix = "${urls.images}/visualization/";
|
||||||
var mapOfScienceImageFolderPrefix = imageFolderPrefix
|
var mapOfScienceImageFolderPrefix = imageFolderPrefix
|
||||||
+ "mapofscience/";
|
+ "mapofscience/";
|
||||||
|
var disciplineLabelImageUrlPrefix = mapOfScienceImageFolderPrefix + "labels/";
|
||||||
|
|
||||||
var entityLabel = '${entityLabel}';
|
var entityLabel = '${entityLabel}';
|
||||||
|
|
||||||
|
@ -60,11 +61,14 @@ ${scripts.add('<script type="text/javascript" src="http://maps.google.com/maps/a
|
||||||
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/jquery.notify.min.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/jquery_plugins/jquery.notify.min.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/ClassExtendUtils.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/ClassExtendUtils.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/DownloadManager.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/DownloadManager.js"></script>',
|
||||||
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/NumberUtils.js"></script>',
|
||||||
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/Tooltip.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/GMapAPI.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/GMapAPI.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/ControlPanel.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/ControlPanel.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/ColorStrategy.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/ColorStrategy.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/SizeCoding.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/SizeCoding.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/CustomScimaps.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/CustomScimaps.js"></script>',
|
||||||
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/Marker.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/Polygon.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/Polygon.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/CustomMarker.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/CustomMarker.js"></script>',
|
||||||
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/MarkerManager.js"></script>',
|
'<script type="text/javascript" src="${urls.base}/js/visualization/mapofscience/MarkerManager.js"></script>',
|
||||||
|
|
|
@ -18,10 +18,18 @@ corresponding changes in the included Templates. -->
|
||||||
<h2 id="header-entity-label" class="hide-dom-on-init"><span><a id="entityMoniker" href="${entityVivoProfileURL}">${entityLabel}</a>
|
<h2 id="header-entity-label" class="hide-dom-on-init"><span><a id="entityMoniker" href="${entityVivoProfileURL}">${entityLabel}</a>
|
||||||
<img id="incomplete-data-disclaimer" class="infoIcon" src="${urls.images}/iconInfo.png" alt="information icon" title="This information is based solely on Publications which have been loaded into the VIVO system" /></span></h2>
|
<img id="incomplete-data-disclaimer" class="infoIcon" src="${urls.images}/iconInfo.png" alt="information icon" title="This information is based solely on Publications which have been loaded into the VIVO system" /></span></h2>
|
||||||
|
|
||||||
<div id="map-of-science-info" class="hide-dom-on-init"> Explore publication activity across 554 scientific sub-disciplines
|
<div id="map-of-science-info" class="hide-dom-on-init"> Explore <span id="mapped-publications" style="font-weight: bold"></span> publications activity across 554 scientific sub-disciplines
|
||||||
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
|
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
|
||||||
alt="information icon"
|
alt="information icon"
|
||||||
title="Spiel on Discipline vs Sub-Discipline" />
|
title="VIVO's Map of Science visualization shows the publication activity of any organization, person, or university in a VIVO instance, overlaid on the map of science. This particular page shows the publication activity of ${entityLabel}.
|
||||||
|
|
||||||
|
You can use VIVO's Map of Science visualization to see where ${entityLabel} is active in the world of science, based on publications that have been loaded into this VIVO instance.
|
||||||
|
|
||||||
|
Overlaid circles are larger if ${entityLabel} has many publications in that sub-discipline, and are smaller if ${entityLabel} has fewer publications in that sub-discipline.
|
||||||
|
|
||||||
|
Circles are overlaid on the Map of Science itself, which is made of 554 interconnected sub-disciplines, shown as grey dots here. A sub-discipline is defined as a cluster of journals. The Map of Science groups over 16,000 journals into 554 sub-disciplines using similarities in their lists of references and key terms. Sub-disciplines that are especially similar to one another are interconnected, and will be closer to one another on the map.
|
||||||
|
|
||||||
|
For more information on this and other maps of science, see http://mapofscience.com or http://scimaps.org" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="left-column" class="hide-dom-on-init">
|
<div id="left-column" class="hide-dom-on-init">
|
||||||
|
@ -49,7 +57,11 @@ corresponding changes in the included Templates. -->
|
||||||
<span id="subdisciplines-filter" class="filter-option">554 Sub-Disciplines</span>
|
<span id="subdisciplines-filter" class="filter-option">554 Sub-Disciplines</span>
|
||||||
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
|
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
|
||||||
alt="information icon"
|
alt="information icon"
|
||||||
title="Spiel on Discipline vs Sub-Discipline" />
|
title="${entityLabel}'s publication activity can be categorized into 13 disciplines or 554 sub-disciplines on the map of science.
|
||||||
|
|
||||||
|
The map of science is divided into 13 disciplines, each of which has its own area on the map, as well as its own color. Each of these disciplines contains multiple sub-disciplines. You can hover over a discipline in the table below to show which overlaid circles it corresponds to on the map.
|
||||||
|
|
||||||
|
Each grey dot on the map represents one of the 554 sub-disciplines. A sub-discipline is defined as a cluster of journals. We grouped over 16,000 journals into 554 disciplines using similarities in their lists of references and key terms. Sub-disciplines that are especially similar to one another are connected by lines, and are closer to one another on the map. You can hover over a sub-discipline in the table below to show which overlaid circle it corresponds to on the map." />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="main-science-areas-table-container"></div>
|
<div id="main-science-areas-table-container"></div>
|
||||||
|
@ -61,10 +73,12 @@ corresponding changes in the included Templates. -->
|
||||||
|
|
||||||
<div id="right-column"><div id="map_area"></div>
|
<div id="right-column"><div id="map_area"></div>
|
||||||
<div id="percent-mapped-info">
|
<div id="percent-mapped-info">
|
||||||
mapped <span id="percent-mapped"></span>% of publications
|
mapped <span id="percent-mapped"></span>% of <span id="total-publications"></span> publications
|
||||||
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
|
<img class="filterInfoIcon" src="${urls.images}/iconInfo.png"
|
||||||
alt="information icon"
|
alt="information icon"
|
||||||
title="Spiel on percent mapped" /></div>
|
title="This visualization is based on the publications we were able to 'science locate' for ${entityLabel}, and therefore it may not be fully representative of the overall publication activity for ${entityLabel}.
|
||||||
|
|
||||||
|
The publication coverage of this visualization can be improved by including more publication data in the VIVO system, and by ensuring that each publication in the VIVO system is associated with a journal that the Map of Science recognizes (based on the holdings of Thomson's ISI database and Elsevier's Scopus database). Journal names containing typos or other idiosyncracies may need to be cleaned up before they are recognized. You may contact a VIVO system administrator if publication coverage is a concern." /></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|