|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8"/>
|
|
|
|
<title>Maps</title>
|
|
|
|
<link rel="stylesheet" media="all" href="../jquery-jvectormap.css"/>
|
|
|
|
<style>
|
|
|
|
ul {
|
|
|
|
padding: 0;
|
|
|
|
list-style: none;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
|
|
|
|
<script src="assets/jquery-1.8.2.js"></script>
|
|
|
|
<script src="../jquery-jvectormap.js"></script>
|
|
|
|
<script src="../jquery-mousewheel.js"></script>
|
|
|
|
|
|
|
|
<script src="../lib/jvectormap.js"></script>
|
|
|
|
|
|
|
|
<script src="../lib/abstract-element.js"></script>
|
|
|
|
<script src="../lib/abstract-canvas-element.js"></script>
|
|
|
|
<script src="../lib/abstract-shape-element.js"></script>
|
|
|
|
|
|
|
|
<script src="../lib/svg-element.js"></script>
|
|
|
|
<script src="../lib/svg-group-element.js"></script>
|
|
|
|
<script src="../lib/svg-canvas-element.js"></script>
|
|
|
|
<script src="../lib/svg-shape-element.js"></script>
|
|
|
|
<script src="../lib/svg-path-element.js"></script>
|
|
|
|
<script src="../lib/svg-circle-element.js"></script>
|
|
|
|
|
|
|
|
<script src="../lib/vml-element.js"></script>
|
|
|
|
<script src="../lib/vml-group-element.js"></script>
|
|
|
|
<script src="../lib/vml-canvas-element.js"></script>
|
|
|
|
<script src="../lib/vml-shape-element.js"></script>
|
|
|
|
<script src="../lib/vml-path-element.js"></script>
|
|
|
|
<script src="../lib/vml-circle-element.js"></script>
|
|
|
|
|
|
|
|
<script src="../lib/vector-canvas.js"></script>
|
|
|
|
<script src="../lib/simple-scale.js"></script>
|
|
|
|
<script src="../lib/ordinal-scale.js"></script>
|
|
|
|
<script src="../lib/numeric-scale.js"></script>
|
|
|
|
<script src="../lib/color-scale.js"></script>
|
|
|
|
<script src="../lib/data-series.js"></script>
|
|
|
|
<script src="../lib/proj.js"></script>
|
|
|
|
<script src="../lib/world-map.js"></script>
|
|
|
|
|
|
|
|
<script src="assets/jquery-jvectormap-us-aea-en.js"></script>
|
|
|
|
<script>
|
|
|
|
$(function(){
|
|
|
|
var markers = [
|
|
|
|
[61.18, -149.53],
|
|
|
|
[21.18, -157.49],
|
|
|
|
{latLng: [40.66, -73.56], name: 'New York City', style: {r: 8, fill: 'yellow'}},
|
|
|
|
{latLng: [41.52, -87.37], style: {fill: 'red', r: 10}}
|
|
|
|
],
|
|
|
|
values1 = [1, 2, 3, 4],
|
|
|
|
values2 = [1, 2, 3, 4];
|
|
|
|
|
|
|
|
var map = new jvm.WorldMap({
|
|
|
|
container: $('.map'),
|
|
|
|
map: 'us_aea_en',
|
|
|
|
markers: markers,
|
|
|
|
series: {
|
|
|
|
markers: [{
|
|
|
|
attribute: 'fill',
|
|
|
|
scale: ['#C8EEFF', '#0071A4'],
|
|
|
|
normalizeFunction: 'polynomial',
|
|
|
|
values: values1
|
|
|
|
},{
|
|
|
|
attribute: 'r',
|
|
|
|
scale: [5, 20],
|
|
|
|
normalizeFunction: 'polynomial',
|
|
|
|
values: values2
|
|
|
|
}],
|
|
|
|
regions: [{
|
|
|
|
scale: {
|
|
|
|
red: '#ff0000',
|
|
|
|
blue: '#00ff00'
|
|
|
|
},
|
|
|
|
attribute: 'fill',
|
|
|
|
normalizeFunction: 'polynomial',
|
|
|
|
values: {
|
|
|
|
"US-KS": 'red',
|
|
|
|
"US-MO": 'red',
|
|
|
|
"US-IA": 'blue',
|
|
|
|
"US-NE": 'blue'
|
|
|
|
}
|
|
|
|
},{
|
|
|
|
values: {
|
|
|
|
"US-NY": 'blue',
|
|
|
|
"US-FL": 'blue'
|
|
|
|
},
|
|
|
|
attribute: 'fill'
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
regionsSelectable: true,
|
|
|
|
markersSelectable: true,
|
|
|
|
markersSelectableOne: true,
|
|
|
|
selectedRegions: JSON.parse( window.localStorage.getItem('jvectormap-selected-regions') || '[]' ),
|
|
|
|
selectedMarkers: JSON.parse( window.localStorage.getItem('jvectormap-selected-markers') || '[]' ),
|
|
|
|
|
|
|
|
onMarkerLabelShow: function(event, label, index){
|
|
|
|
label.html(label.html()+' (modified marker)');
|
|
|
|
},
|
|
|
|
onMarkerOver: function(event, index){
|
|
|
|
console.log('marker-over', index);
|
|
|
|
},
|
|
|
|
onMarkerOut: function(event, index){
|
|
|
|
console.log('marker-out', index);
|
|
|
|
},
|
|
|
|
onMarkerClick: function(event, index){
|
|
|
|
console.log('marker-click', index);
|
|
|
|
},
|
|
|
|
onMarkerSelected: function(event, index, isSelected, selectedMarkers){
|
|
|
|
console.log('marker-select', index, isSelected, selectedMarkers);
|
|
|
|
if (window.localStorage) {
|
|
|
|
window.localStorage.setItem(
|
|
|
|
'jvectormap-selected-markers',
|
|
|
|
JSON.stringify(selectedMarkers)
|
|
|
|
);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
onRegionLabelShow: function(event, label, code){
|
|
|
|
label.html(label.html()+' (modified)');
|
|
|
|
},
|
|
|
|
onRegionOver: function(event, code){
|
|
|
|
console.log('region-over', code, map.getRegionName(code));
|
|
|
|
},
|
|
|
|
onRegionOut: function(event, code){
|
|
|
|
console.log('region-out', code);
|
|
|
|
},
|
|
|
|
onRegionClick: function(event, code){
|
|
|
|
console.log('region-click', code);
|
|
|
|
},
|
|
|
|
onRegionSelected: function(event, code, isSelected, selectedRegions){
|
|
|
|
console.log('region-select', code, isSelected, selectedRegions);
|
|
|
|
if (window.localStorage) {
|
|
|
|
window.localStorage.setItem(
|
|
|
|
'jvectormap-selected-regions',
|
|
|
|
JSON.stringify(selectedRegions)
|
|
|
|
);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
onViewportChange: function(e, scale, transX, transY){
|
|
|
|
console.log('viewportChange', scale, transX, transY);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
$('.list-markers :checkbox').change(function(){
|
|
|
|
var index = $(this).closest('li').attr('data-marker-index');
|
|
|
|
|
|
|
|
if ($(this).prop('checked')) {
|
|
|
|
map.addMarker( index, markers[index], [values1[index], values2[index]] );
|
|
|
|
} else {
|
|
|
|
map.removeMarkers( [index] );
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('.button-add-all').click(function(){
|
|
|
|
$('.list-markers :checkbox').prop('checked', true);
|
|
|
|
map.addMarkers(markers, [values1, values2]);
|
|
|
|
});
|
|
|
|
$('.button-remove-all').click(function(){
|
|
|
|
$('.list-markers :checkbox').prop('checked', false);
|
|
|
|
map.removeAllMarkers();
|
|
|
|
});
|
|
|
|
$('.button-clear-selected-regions').click(function(){
|
|
|
|
map.clearSelectedRegions();
|
|
|
|
});
|
|
|
|
$('.button-clear-selected-markers').click(function(){
|
|
|
|
map.clearSelectedMarkers();
|
|
|
|
});
|
|
|
|
$('.button-remove-map').click(function(){
|
|
|
|
map.remove();
|
|
|
|
});
|
|
|
|
$('.button-change-values').click(function(){
|
|
|
|
map.series.regions[1].clear();
|
|
|
|
map.series.regions[1].setValues({
|
|
|
|
"US-TX": "black",
|
|
|
|
"US-CA": "black"
|
|
|
|
});
|
|
|
|
});
|
|
|
|
$('.button-reset-map').click(function(){
|
|
|
|
map.reset();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="map" style="width: 800px; height: 500px"></div>
|
|
|
|
<ul class="list-markers">
|
|
|
|
<li data-marker-index="0"><label><input checked type="checkbox"/> Marker 1</label></li>
|
|
|
|
<li data-marker-index="1"><label><input checked type="checkbox"/> Marker 2</label></li>
|
|
|
|
<li data-marker-index="2"><label><input checked type="checkbox"/> Marker 3</label></li>
|
|
|
|
<li data-marker-index="3"><label><input checked type="checkbox"/> Marker 4</label></li>
|
|
|
|
</ul>
|
|
|
|
<input type="button" value="Add all" class="button-add-all"/>
|
|
|
|
<input type="button" value="Remove all" class="button-remove-all"/>
|
|
|
|
|
|
|
|
<input type="button" value="Clear selected regions" class="button-clear-selected-regions"/>
|
|
|
|
<input type="button" value="Clear selected markers" class="button-clear-selected-markers"/>
|
|
|
|
|
|
|
|
<input type="button" value="Remove map" class="button-remove-map"/>
|
|
|
|
|
|
|
|
<input type="button" value="Change values" class="button-change-values"/>
|
|
|
|
|
|
|
|
<input type="button" value="Reset map" class="button-reset-map"/>
|
|
|
|
</body>
|
|
|
|
</html>
|