Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 634a78a655 | |||
| 824cbbb1cd | |||
| 8180dc9528 | |||
| 9f82f96b3c | |||
| cfb541a0a2 | |||
| 02e161e5c4 | |||
| 8a87d76ecf | |||
| 740d5ccfab | |||
| 64c363d041 | |||
| 3992a63fc0 | |||
| a02060ab06 | |||
| f43cfe3d30 | |||
| 524e318359 | |||
| 82d62d7c4e | |||
| 3d7b5824b6 | |||
| 1b97ca6412 | |||
| b909081afd | |||
| 578668c10b | |||
| d6cfadb37a | |||
| f83ef8d3af | |||
| 26ed9882ce |
@@ -1,302 +0,0 @@
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#footer {
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
margin-left: -234px;
|
||||
z-index: 1;
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
#banner {
|
||||
width: 468px;
|
||||
height: 60px;
|
||||
margin-left: 50%;
|
||||
background: rgba(30, 115, 190, 1);
|
||||
}
|
||||
|
||||
#shade {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0%;
|
||||
left: 0%;
|
||||
z-index: 1001;
|
||||
background: rgb(25, 25, 25);
|
||||
background: rgba(25, 25, 25, 0.5);
|
||||
}
|
||||
#lightbox {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 10%;
|
||||
left: 15%;
|
||||
min-width: 580px;
|
||||
width: 60%;
|
||||
height: 70%;
|
||||
padding: 16px;
|
||||
border: 16px solid rgb(214, 162, 65);
|
||||
background-color: white;
|
||||
z-index: 1002;
|
||||
overflow: auto;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
#closeButton {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin: -20px -16px 0px 0px;
|
||||
float: right;
|
||||
background: red;
|
||||
color: white;
|
||||
text-align: center;
|
||||
font: bold 2em sans-serif;
|
||||
cursor: pointer;
|
||||
}
|
||||
#subtitle {
|
||||
width: 180px;
|
||||
margin: -25px 0px 0px 410px;
|
||||
padding: 10px 0px;
|
||||
background: red;
|
||||
color: white;
|
||||
font-size: 1.2em;
|
||||
text-align: center;
|
||||
transform: rotate(-7deg);
|
||||
-webkit-transform: rotate(-7deg);
|
||||
-o-transform: rotate(-7deg);
|
||||
-moz-transform: rotate(-7deg);
|
||||
}
|
||||
#header,
|
||||
#menuButton,
|
||||
label.handheldMenu,
|
||||
#handheldToggles,
|
||||
#handheldCloseButton {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#page,
|
||||
#content,
|
||||
#map_canvas {
|
||||
height: 100%;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
}
|
||||
#filter {
|
||||
position: fixed;
|
||||
top: 30px;
|
||||
bottom: 125px;
|
||||
right: 5px;
|
||||
z-index: 1;
|
||||
width: 200px;
|
||||
overflow: hidden;
|
||||
background: rgba(214, 162, 65, 0.9);
|
||||
font-family: Arial;
|
||||
text-shadow: 0px 0px;
|
||||
}
|
||||
#toggles {
|
||||
position: fixed;
|
||||
top: 225px;
|
||||
bottom: 125px;
|
||||
width: 200px;
|
||||
overflow-y: auto;
|
||||
z-index: -1;
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
#infoLink {
|
||||
width: 30px;
|
||||
height: 24px;
|
||||
float: right;
|
||||
margin: 5px 5px 0px 0px;
|
||||
cursor: pointer;
|
||||
background-image: url(https://chart.googleapis.com/chart?chst=d_simple_text_icon_left&chld=|14|000|info|24|f00|FFF);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
input.ui-slider-input {
|
||||
display: none !important;
|
||||
}
|
||||
#epGroup {
|
||||
display: none;
|
||||
}
|
||||
#slideUp {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
float: right;
|
||||
margin: 10px 0px 0px 0px;
|
||||
cursor: pointer;
|
||||
background-image: url(arrow-right.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
#slideDown {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
float: left;
|
||||
margin: 10px 0px 0px 0px;
|
||||
cursor: pointer;
|
||||
background-image: url(arrow-left.png);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
#chapTitle,
|
||||
#epTitle {
|
||||
height: 25px;
|
||||
font-size: 0.75em;
|
||||
margin: 12px 0px 0px 12px;
|
||||
}
|
||||
#filter a,
|
||||
#filter a:visited {
|
||||
color: inherit;
|
||||
font-weight: normal;
|
||||
}
|
||||
div.ui-slider {
|
||||
margin-top: 0px;
|
||||
}
|
||||
div.ui-slider-track {
|
||||
margin: 0px 15px;
|
||||
}
|
||||
|
||||
#sliderType div.ui-controlgroup-controls {
|
||||
width: 100%;
|
||||
}
|
||||
#sliderType div.ui-radio {
|
||||
width: 50%;
|
||||
} /* 33% soon */
|
||||
div.ui-radio span.ui-btn-inner {
|
||||
padding: 5px 0px !important;
|
||||
}
|
||||
#filter label,
|
||||
span.ui-btn-text {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
form.ui-listview-filter {
|
||||
width: 190px;
|
||||
margin: 0px 5px;
|
||||
}
|
||||
form.ui-listview-filter input {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
ul#townSelector {
|
||||
width: 130px;
|
||||
margin: 0px 45px;
|
||||
}
|
||||
|
||||
#legend {
|
||||
display: none;
|
||||
font-size: 0.75em;
|
||||
}
|
||||
#legend tr td {
|
||||
min-width: 16px;
|
||||
}
|
||||
#gift td:first-child {
|
||||
background-color: #000000;
|
||||
}
|
||||
#north td:first-child {
|
||||
background-color: #808080;
|
||||
}
|
||||
#rivers td:first-child {
|
||||
background-color: #caffff;
|
||||
}
|
||||
#vale td:first-child {
|
||||
background-color: #0368bc;
|
||||
}
|
||||
#islands td:first-child {
|
||||
background-color: #fffe8b;
|
||||
}
|
||||
#west td:first-child {
|
||||
background-color: #ffa4a4;
|
||||
}
|
||||
#crown td:first-child {
|
||||
background-color: #feac77;
|
||||
}
|
||||
#reach td:first-child {
|
||||
background-color: #c8ff75;
|
||||
}
|
||||
#storm td:first-child {
|
||||
background-color: #ffffca;
|
||||
}
|
||||
#dorne td:first-child {
|
||||
background-color: #ffe2b7;
|
||||
}
|
||||
|
||||
#textToggles {
|
||||
margin-top: 0px;
|
||||
margin-bottom: -10px;
|
||||
text-align: center;
|
||||
}
|
||||
#textToggles span {
|
||||
font-size: 0.6em;
|
||||
color: blue;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
#showMarkerOnly {
|
||||
display: none;
|
||||
}
|
||||
#filter ul li {
|
||||
list-style: none;
|
||||
margin-left: -40px;
|
||||
}
|
||||
#characters-novellas {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.aegonListItem {
|
||||
display: none;
|
||||
}
|
||||
.icon {
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
background-size: 16px 16px;
|
||||
repeat: none;
|
||||
}
|
||||
.stark {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/5/51/House_Stark.PNG/50px-House_Stark.PNG');
|
||||
}
|
||||
.nightswatch {
|
||||
background-image: url('https://upload.wikimedia.org/wikipedia/commons/f/f3/Black_flag_waving.svg');
|
||||
}
|
||||
.targaryen {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/4/43/House_Targaryen.PNG/92px-House_Targaryen.PNG');
|
||||
}
|
||||
.lannister {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/8/88/House_Lannister.png/50px-House_Lannister.png');
|
||||
}
|
||||
.baratheon {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/d/d1/House_Baratheon.PNG/50px-House_Baratheon.PNG');
|
||||
}
|
||||
.baratheonokl {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/5/5d/Joffrey_sigil_coat.png/120px-Joffrey_sigil_coat.png');
|
||||
}
|
||||
.baratheonod {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/2/2e/Stannis_sigil_coat.png/60px-Stannis_sigil_coat.png');
|
||||
}
|
||||
.greyjoy {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/f/f3/Greyjoy_coat_sigil.png/120px-Greyjoy_coat_sigil.png');
|
||||
}
|
||||
.tarth {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/f/f3/House_Tarth.PNG/40px-House_Tarth.PNG');
|
||||
}
|
||||
.seaworth {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/9/99/Seaworth.png/90px-Seaworth.png');
|
||||
}
|
||||
.tarly {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/d/d8/Tarly.png/100px-Tarly.png');
|
||||
}
|
||||
.martell {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/b/ba/House_Martell.PNG/92px-House_Martell.PNG');
|
||||
}
|
||||
.baelish {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/6/69/Baelish%28Harrenhal%29CoA.png/50px-Baelish%28Harrenhal%29CoA.png');
|
||||
}
|
||||
.duncan {
|
||||
background-image: url('https://awoiaf.westeros.org/images/thumb/e/e4/Dunk.png/50px-Dunk.png');
|
||||
}
|
||||
@@ -1,519 +0,0 @@
|
||||
//Utility function for referencing latitude & longitude in the locations list
|
||||
function checkLocKey(locationKey, lat, lng) {
|
||||
if (locations[locationKey]) {
|
||||
var loc = locations[locationKey];
|
||||
if (Math.abs(loc.lat) < 84.7 && Math.abs(loc.lng) <= 176)
|
||||
return [loc.lat, loc.lng];
|
||||
}
|
||||
if (locationKey != '')
|
||||
console.log(
|
||||
'Key ' +
|
||||
locationKey +
|
||||
' was not found in the locations list (' +
|
||||
lat +
|
||||
', ' +
|
||||
lng +
|
||||
').'
|
||||
);
|
||||
if (typeof lat != 'undefined' && typeof lng != 'undefined')
|
||||
if (Math.abs(lat) < 84.7 && Math.abs(lng) <= 176) return [lat, lng];
|
||||
console.log(
|
||||
'Backup coordinates ' + lat + ' ' + lng + ' are not within map bounds.'
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
//Read the state of the control keys
|
||||
ctrlPressed = false;
|
||||
document.onkeydown = function (event) {
|
||||
ctrlPressed = event.ctrlKey;
|
||||
};
|
||||
document.onkeyup = function (event) {
|
||||
ctrlPressed = false;
|
||||
};
|
||||
|
||||
//Utility function to check the sliders & checkboxes to display the correct coats of arms
|
||||
function updateNobilityDisplay() {
|
||||
var showGreat = document.getElementById('toggle_regions').checked;
|
||||
var showMinor = document.getElementById('toggle_nobility').checked;
|
||||
var chapNum = $('#chapSlider').val();
|
||||
var epNum = $('#epSlider').val();
|
||||
var byChapter = document.getElementById('radio_chapters').checked;
|
||||
|
||||
for (i in nobility) {
|
||||
var n = nobility[i];
|
||||
var inTimeframe = byChapter
|
||||
? n.chapters[0] <= chapNum && chapNum <= n.chapters[1]
|
||||
: n.episodes[0] <= epNum && epNum <= n.episodes[1];
|
||||
if (inTimeframe && (showMinor || (n.isGreat && showGreat)))
|
||||
n.setVisible(true);
|
||||
else n.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
//Utility function to check the sliders & checkboxes to display the characters
|
||||
function updatePathDisplay(sliderType, index) {
|
||||
if (typeof sliderType != 'string') {
|
||||
sliderType = $('#sliderType input').val(); //This doesn't work!!!!
|
||||
index = sliderType == 'C' ? $('#chapSlider').val() : $('#epSlider').val();
|
||||
}
|
||||
for (character in paths)
|
||||
if (document.getElementById('toggle_' + character).checked)
|
||||
displayCharcater(character, sliderType, index);
|
||||
|
||||
//Show or hide Aegon in the character list
|
||||
if (sliderType == 'C' && $('#chapSlider').val() >= 289)
|
||||
$('.aegonListItem').show();
|
||||
else $('.aegonListItem').hide();
|
||||
}
|
||||
|
||||
//Display or hide the path of a single character
|
||||
function displayCharcater(character, sliderType, index) {
|
||||
if (sliderType == 'hide') {
|
||||
for (i in paths[character]) paths[character][i].setVisible(false);
|
||||
return false;
|
||||
}
|
||||
var currentPosition = null;
|
||||
for (i in paths[character]) {
|
||||
var overlay = paths[character][i];
|
||||
if (
|
||||
((sliderType == 'C' &&
|
||||
overlay.chapters[0] <= index &&
|
||||
index <= overlay.chapters[1]) ||
|
||||
(sliderType == 'E' &&
|
||||
overlay.episodes[0] <= index &&
|
||||
index <= overlay.episodes[1])) &&
|
||||
(!$('#showMarkerOnly').prop('checked') ||
|
||||
typeof overlay.getPath != 'function')
|
||||
) {
|
||||
overlay.setVisible(true);
|
||||
currentPosition = overlay.position;
|
||||
} else overlay.setVisible(false);
|
||||
}
|
||||
return currentPosition;
|
||||
}
|
||||
|
||||
function sliderIncrement(i) {
|
||||
var currentSlider = document.getElementById('radio_chapters').checked
|
||||
? $('#chapSlider')
|
||||
: $('#epSlider');
|
||||
var currentValue = parseInt(currentSlider.val(), 10);
|
||||
currentSlider.val(currentValue + i).slider('refresh');
|
||||
if (document.getElementById('radio_chapters').checked) {
|
||||
var chapter = chapters[currentValue + i];
|
||||
$('#chapTitle').html(
|
||||
"<a target='_blank' href='" +
|
||||
chapter['url'] +
|
||||
"'>" +
|
||||
chapter['title'] +
|
||||
'</a>'
|
||||
);
|
||||
updatePathDisplay('C', currentValue + i);
|
||||
ga('send', 'event', 'controls', 'increment', 'chapter', currentValue + i);
|
||||
} else {
|
||||
var episode = episodes[currentValue + i];
|
||||
$('#epTitle').html(
|
||||
"<a target='_blank' href='" +
|
||||
episode['url'] +
|
||||
"'>" +
|
||||
episode['title'] +
|
||||
'</a>'
|
||||
);
|
||||
updatePathDisplay('E', currentValue + i);
|
||||
ga('send', 'event', 'controls', 'increment', 'episode', currentValue + i);
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
//Tooltip
|
||||
/*
|
||||
$('#filter').qtip({
|
||||
content: {
|
||||
text: "Move the slider to the last chapter you've read or the last episode you've seen. Any details past that will be hidden on this page. Clicking links may lead to spoilers on other sites."
|
||||
},
|
||||
position: {
|
||||
my: 'right center', // Position my top left...
|
||||
at: 'left center', // at the bottom right of...
|
||||
target: $('#filter h4') // my target
|
||||
},
|
||||
style: {
|
||||
tip: {corner: 'leftMiddle'}
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
$('#filter').qtip({
|
||||
content: {
|
||||
text:
|
||||
"Move the slider to the last chapter you've read or the last episode you've seen. Any details past that will be hidden on this page. Clicking links may lead to spoilers on other sites.",
|
||||
},
|
||||
overwrite: false,
|
||||
position: {
|
||||
at: 'left center',
|
||||
my: 'right center',
|
||||
target: $('#filter h4'),
|
||||
viewport: $(window),
|
||||
},
|
||||
style: {
|
||||
classes: 'qtip-dark qtip-rounded qtip-cluetip',
|
||||
},
|
||||
});
|
||||
|
||||
$('#infoLink').click(function () {
|
||||
$('#shade, #lightbox').show();
|
||||
ga('send', 'event', 'navigation', 'view', 'lightbox');
|
||||
});
|
||||
$('#closeButton').click(function () {
|
||||
$('#shade, #lightbox').hide();
|
||||
ga('send', 'event', 'navigation', 'close', 'lightbox');
|
||||
});
|
||||
|
||||
$('#chapTitle').html(
|
||||
"<a target='_blank' href='" +
|
||||
chapters[0]['url'] +
|
||||
"'>" +
|
||||
chapters[0]['title'] +
|
||||
'</a>'
|
||||
);
|
||||
$('#chapSlider')
|
||||
.change(function () {
|
||||
ga('send', 'event', 'controls', 'slide', 'chapter', $(this).val());
|
||||
var chapter = chapters[$(this).val()];
|
||||
$('#chapTitle').html(
|
||||
"<a target='_blank' href='" +
|
||||
chapter['url'] +
|
||||
"'>" +
|
||||
chapter['title'] +
|
||||
'</a>'
|
||||
);
|
||||
var showGreat = document.getElementById('toggle_regions').checked;
|
||||
var showMinor = document.getElementById('toggle_nobility').checked;
|
||||
if (showGreat || showMinor) updateNobilityDisplay();
|
||||
updatePathDisplay('C', $(this).val());
|
||||
})
|
||||
.attr('max', chapters.length - 1)
|
||||
.slider('refresh');
|
||||
|
||||
$('#epTitle').html(
|
||||
"<a target='_blank' href='" +
|
||||
episodes[0]['url'] +
|
||||
"'>" +
|
||||
episodes[0]['title'] +
|
||||
'</a>'
|
||||
);
|
||||
$('#epSlider')
|
||||
.change(function () {
|
||||
ga('send', 'event', 'controls', 'slide', 'episode', $(this).val());
|
||||
var episode = episodes[$(this).val()];
|
||||
$('#epTitle').html(
|
||||
"<a target='_blank' href='" +
|
||||
episode['url'] +
|
||||
"'>" +
|
||||
episode['title'] +
|
||||
'</a>'
|
||||
);
|
||||
var showGreat = document.getElementById('toggle_regions').checked;
|
||||
var showMinor = document.getElementById('toggle_nobility').checked;
|
||||
if (showGreat || showMinor) updateNobilityDisplay();
|
||||
updatePathDisplay('E', $(this).val());
|
||||
})
|
||||
.attr('max', episodes.length - 1)
|
||||
.slider('refresh');
|
||||
|
||||
timeout = null;
|
||||
$('#slideUp').click(function () {
|
||||
sliderIncrement(1);
|
||||
});
|
||||
$('#slideDown').click(function () {
|
||||
sliderIncrement(-1);
|
||||
});
|
||||
$('#slideUp').mousedown(function () {
|
||||
timeout = setInterval(function () {
|
||||
sliderIncrement(1);
|
||||
}, 100);
|
||||
return false;
|
||||
});
|
||||
$('#slideDown').mousedown(function () {
|
||||
timeout = setInterval(function () {
|
||||
sliderIncrement(-1);
|
||||
}, 100);
|
||||
return false;
|
||||
});
|
||||
$(document).mouseup(function () {
|
||||
clearInterval(timeout);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#sliderType input').change(function () {
|
||||
if ($(this).val() == 'C') {
|
||||
$('#chapGroup').show();
|
||||
$('#epGroup').hide();
|
||||
updatePathDisplay('C', $('#chapSlider').val());
|
||||
ga('send', 'event', 'controls', 'switchSlider', 'chapter');
|
||||
} else {
|
||||
$('#chapGroup').hide();
|
||||
$('#epGroup').show();
|
||||
$('#aegonListItem').hide();
|
||||
updatePathDisplay('E', $('#epSlider').val());
|
||||
ga('send', 'event', 'controls', 'switchSlider', 'episode');
|
||||
}
|
||||
updateNobilityDisplay();
|
||||
});
|
||||
|
||||
$('#toggle_nobility').change(function () {
|
||||
updateNobilityDisplay();
|
||||
ga('send', 'event', 'controls', 'toggle', 'nobility');
|
||||
});
|
||||
|
||||
$('#toggle_regions').change(function () {
|
||||
updateNobilityDisplay();
|
||||
ga('send', 'event', 'controls', 'toggle', 'regions');
|
||||
if (this.checked) {
|
||||
$('#legend').show();
|
||||
for (i in regions) regions[i].setVisible(true);
|
||||
} else {
|
||||
$('#legend').hide();
|
||||
for (i in regions) regions[i].setVisible(false);
|
||||
}
|
||||
});
|
||||
|
||||
//Add click event handlers to the "links" above the character list
|
||||
$('#allCharacters').click(function () {
|
||||
ga('send', 'event', 'controls', 'toggle', 'allCharacters');
|
||||
if ($('.pathToggle:checked').size() == $('.pathToggle').size()) {
|
||||
$('.pathToggle')
|
||||
.prop('checked', false)
|
||||
.each(function () {
|
||||
var character = this.id.substr(7, 99);
|
||||
displayCharcater(character, 'hide');
|
||||
});
|
||||
$('#allCharacters').text('select all');
|
||||
} else {
|
||||
var chapNum = $('#chapSlider').val();
|
||||
var epNum = $('#epSlider').val();
|
||||
var byChapter = document.getElementById('radio_chapters').checked;
|
||||
$('.pathToggle')
|
||||
.prop('checked', true)
|
||||
.each(function () {
|
||||
var character = this.id.substr(7, 99);
|
||||
if (byChapter) displayCharcater(character, 'C', chapNum);
|
||||
else displayCharcater(character, 'E', epNum);
|
||||
});
|
||||
$('#allCharacters').text('hide all');
|
||||
}
|
||||
});
|
||||
$('#pathDisplay').click(function () {
|
||||
ga('send', 'event', 'controls', 'toggle', 'pathDisplay');
|
||||
if (!$('#showMarkerOnly').prop('checked')) {
|
||||
$('#showMarkerOnly').prop('checked', true);
|
||||
$('#pathDisplay').text('show full path');
|
||||
updatePathDisplay();
|
||||
} else {
|
||||
$('#showMarkerOnly').prop('checked', false);
|
||||
$('#pathDisplay').text('current locations only');
|
||||
updatePathDisplay();
|
||||
}
|
||||
});
|
||||
$('#showMarkerOnly').prop('checked', false); //Initialization
|
||||
|
||||
//Add behaviors for charchter path checkboxes
|
||||
$('.pathToggle').change(function () {
|
||||
ga(
|
||||
'send',
|
||||
'event',
|
||||
'controls',
|
||||
'toggle',
|
||||
'character',
|
||||
$(this).parent().index()
|
||||
);
|
||||
var character = this.id.substr(7, 99);
|
||||
var chapNum = $('#chapSlider').val();
|
||||
var epNum = $('#epSlider').val();
|
||||
var byChapter = document.getElementById('radio_chapters').checked;
|
||||
if (!this.checked) {
|
||||
displayCharcater(character, 'hide');
|
||||
$('#allCharacters').text('select all');
|
||||
} else {
|
||||
var currentPosition = byChapter
|
||||
? displayCharcater(character, 'C', chapNum)
|
||||
: displayCharcater(character, 'E', epNum);
|
||||
map.setCenter(currentPosition);
|
||||
console.log('Map recentered at ' + currentPosition);
|
||||
}
|
||||
});
|
||||
|
||||
//Define the base layers
|
||||
var labelsMapType = new google.maps.ImageMapType({
|
||||
getTileUrl: function (coord, zoom) {
|
||||
if (isOutsideTileRange(coord, zoom)) return null;
|
||||
return 'fsm/' + getTileCode(coord, zoom) + '.jpg';
|
||||
},
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
maxZoom: 5,
|
||||
minZoom: 1,
|
||||
radius: 1738000,
|
||||
name: 'Labels',
|
||||
});
|
||||
|
||||
var nolabelMapType = new google.maps.ImageMapType({
|
||||
getTileUrl: function (coord, zoom) {
|
||||
if (isOutsideTileRange(coord, zoom)) return null;
|
||||
return 'nat/' + getTileCode(coord, zoom) + '.jpg';
|
||||
},
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
maxZoom: 5,
|
||||
minZoom: 1,
|
||||
radius: 1738000,
|
||||
name: 'No Labels',
|
||||
});
|
||||
|
||||
//Check URL for center point
|
||||
//#@100,-80.3 or #@Winterfell
|
||||
var urlCoords = window.location.href.match(
|
||||
/#@(\-*\d+\.*\d*),\s*(\-*\d+\.*\d*)/
|
||||
);
|
||||
if (urlCoords == null) urlCoords = ['', 0, -105];
|
||||
var urlLocation = window.location.href.match(/#@([^&]+)/);
|
||||
urlLocation = urlLocation != null ? urlLocation[1] : '';
|
||||
var checkedCoords = checkLocKey(urlLocation, urlCoords[1], urlCoords[2]);
|
||||
var center = !checkedCoords
|
||||
? new google.maps.LatLng(0, -105)
|
||||
: new google.maps.LatLng(checkedCoords[0], checkedCoords[1]);
|
||||
var isLargeScreen = $(window).height() > 500;
|
||||
|
||||
var map = new google.maps.Map(document.getElementById('map_canvas'), {
|
||||
center: center,
|
||||
zoom: 4,
|
||||
streetViewControl: false,
|
||||
overviewMapControl: true,
|
||||
overviewMapControlOptions: { opened: isLargeScreen },
|
||||
mapTypeControlOptions: { mapTypeIds: ['Labels', 'No Labels'] },
|
||||
});
|
||||
|
||||
//Add Map Types
|
||||
map.mapTypes.set('Labels', labelsMapType);
|
||||
map.mapTypes.set('No Labels', nolabelMapType);
|
||||
map.setMapTypeId('Labels');
|
||||
|
||||
//Add overlay data to the map (required ASoIaF-overlays.js)
|
||||
alphaLocations = [];
|
||||
for (key in locations) {
|
||||
markLocation(map, key, locations[key]);
|
||||
alphaLocations.push(key);
|
||||
}
|
||||
alphaLocations.sort();
|
||||
for (i in regions) regions[i] = createPolygon(map, regions[i]);
|
||||
for (i in nobility) {
|
||||
if (typeof nobility[i].seatKey == 'string') {
|
||||
locations[nobility[i].seatKey].house = nobility[i].wikiKey
|
||||
.replace(/House\_/gi, '')
|
||||
.replace(/\_/gi, ' ')
|
||||
.replace(/\%27/gi, "'");
|
||||
locations[nobility[i].seatKey].img = nobility[i].img;
|
||||
}
|
||||
nobility[i] = markNobility(map, nobility[i]);
|
||||
}
|
||||
for (character in paths)
|
||||
for (i in paths[character]) {
|
||||
paths[character][i] = markPathSegment(map, paths[character][i]);
|
||||
$('#toggle_' + character).removeAttr('disabled');
|
||||
}
|
||||
|
||||
//Fill the townSelector list
|
||||
locations['Winterfell'].house = 'Stark';
|
||||
locations['Winterfell'].img =
|
||||
'https://awoiaf.westeros.org/images/thumb/5/51/House_Stark.PNG/90px-House_Stark.PNG';
|
||||
for (i in alphaLocations) {
|
||||
var name = alphaLocations[i].replace(/\_/gi, ' ').replace(/\%27/gi, "'");
|
||||
var house =
|
||||
typeof locations[alphaLocations[i]].house == 'string'
|
||||
? ' ' + locations[alphaLocations[i]].house
|
||||
: '';
|
||||
$('#townSelector').append(
|
||||
'<li data-filtertext="' +
|
||||
name +
|
||||
house +
|
||||
'" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-icon="arrow-r" data-iconpos="right" data-theme="c" class="ui-btn ui-btn-up-c ui-btn-icon-right ui-li-has-arrow ui-li ui-screen-hidden"><div class="ui-btn-inner ui-li"><div class="ui-btn-text"><a id="link' +
|
||||
alphaLocations[i] +
|
||||
'" href="#@' +
|
||||
alphaLocations[i] +
|
||||
'" class="ui-link-inherit">' +
|
||||
name +
|
||||
'</a></div><span class="ui-icon ui-icon-arrow-r ui-icon-shadow"> </span></div></li>'
|
||||
);
|
||||
}
|
||||
$('#townSelector').listview();
|
||||
$('.ui-li a, #lightboxLink, h4 a').click(function () {
|
||||
var key = $(this).attr('href').substring(2, 99);
|
||||
var center = new google.maps.LatLng(locations[key].lat, locations[key].lng);
|
||||
var house = '';
|
||||
var arms = '';
|
||||
if (typeof locations[key].house == 'string') {
|
||||
house = '<br/>House: ' + locations[key].house;
|
||||
arms =
|
||||
'<img src="' +
|
||||
locations[key].img +
|
||||
'" style="float:left;width:30px;margin-right:3px;">';
|
||||
}
|
||||
map.panTo(center);
|
||||
new google.maps.InfoWindow({
|
||||
content: arms + key.replace(/\_/gi, ' ').replace(/\%27/gi, "'") + house,
|
||||
position: center,
|
||||
}).open(map);
|
||||
$('input[data-type="search"]').val('');
|
||||
$('input[data-type="search"]').trigger('keyup');
|
||||
console.log('#townSelector click event triggered: ' + key);
|
||||
});
|
||||
|
||||
//Show an InfoBox if the map is centered on a specific town
|
||||
if (urlLocation != '') {
|
||||
var house = '';
|
||||
var arms = '';
|
||||
if (typeof locations[urlLocation].house == 'string') {
|
||||
var house = '<br/>House: ' + locations[urlLocation].house;
|
||||
var arms =
|
||||
'<img src="' +
|
||||
locations[urlLocation].img +
|
||||
'" style="float:left;width:30px;margin-right:3px;">';
|
||||
}
|
||||
new google.maps.InfoWindow({
|
||||
content:
|
||||
arms + urlLocation.replace(/\_/gi, ' ').replace(/\%27/gi, "'") + house,
|
||||
position: center,
|
||||
}).open(map);
|
||||
}
|
||||
|
||||
//Give initial focus to the slider (so arrow keys change the chapter)
|
||||
$('#chapSlider .ui-slider-handle').focus();
|
||||
|
||||
google.maps.event.addListener(map, 'click', function (event) {
|
||||
if (ctrlPressed) {
|
||||
ga('send', 'event', 'controls', 'url', 'clickToCenter');
|
||||
window.location = '#@' + event.latLng.toString().replace(/\(|\)|\s/g, '');
|
||||
map.panTo(event.latLng);
|
||||
} else {
|
||||
//Uncomment this line to find the coordinates of locations on the map
|
||||
//new google.maps.InfoWindow({position:event.latLng, content:Math.round(event.latLng.lat()*10000)/10000+","+Math.round(event.latLng.lng()*10000)/10000 }).open(map);
|
||||
}
|
||||
});
|
||||
|
||||
//Mobile Interface
|
||||
$('#menuButton, #returnToMap, .ui-li a, #lightboxLink').click(function () {
|
||||
$('#map_canvas, #menuButton, #filter').toggle();
|
||||
ga('send', 'event', 'navigation', 'toggle', 'mobileMenu');
|
||||
});
|
||||
$('#showCharacterPaths, #closeCharList').click(function () {
|
||||
$('#handheldToggles, #filter').toggle();
|
||||
ga('send', 'event', 'navigation', 'toggle', 'mobileCharacters');
|
||||
});
|
||||
$('#aboutThisSite, #handheldCloseButton').click(function () {
|
||||
$('#lightbox, #filter').toggle();
|
||||
ga('send', 'event', 'navigation', 'toggle', 'mobileAbout');
|
||||
});
|
||||
$('#htRegions, #htNobility, #handheldToggles label')
|
||||
.click(function () {
|
||||
$(this).find('span.ui-icon').toggle();
|
||||
})
|
||||
.find('span.ui-icon')
|
||||
.hide();
|
||||
}); //jQuery ready function
|
||||
@@ -1,139 +0,0 @@
|
||||
#toggles,
|
||||
#infoLink,
|
||||
#closeButton {
|
||||
display: none;
|
||||
}
|
||||
#menuButton {
|
||||
display: block;
|
||||
z-index: 10;
|
||||
width: 29px;
|
||||
height: 29px;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
background-image: url(menu.png);
|
||||
background-repeat: no-repeat;
|
||||
cursor: pointer;
|
||||
}
|
||||
#filter {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.qtip {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 0px;
|
||||
}
|
||||
#slideDown {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: url(arrow-left-32.png);
|
||||
background-size: 20px 20px;
|
||||
}
|
||||
#slideUp {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: url(arrow-right-32.png);
|
||||
background-size: 20px 20px;
|
||||
}
|
||||
#chapTitle,
|
||||
#epTitle {
|
||||
height: 20px;
|
||||
margin-left: 40px;
|
||||
font-size: 1.2em !important;
|
||||
}
|
||||
|
||||
div.ui-slider {
|
||||
margin: 5%;
|
||||
width: 90%;
|
||||
}
|
||||
span.ui-btn-inner {
|
||||
padding: 10px 0px;
|
||||
}
|
||||
#filter label,
|
||||
span.ui-btn-text {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
label.handheldMenu {
|
||||
display: block;
|
||||
}
|
||||
|
||||
form.ui-listview-filter {
|
||||
width: 100%;
|
||||
margin: 0px;
|
||||
}
|
||||
form.ui-listview-filter input {
|
||||
font-size: 1em;
|
||||
}
|
||||
ul#townSelector {
|
||||
width: 75%;
|
||||
margin: 0px 45px;
|
||||
}
|
||||
|
||||
#handheldToggles {
|
||||
display: none;
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
background: rgba(214, 162, 65, 0.9);
|
||||
font-family: Arial;
|
||||
}
|
||||
#handheldToggles ul {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
padding: 0px;
|
||||
}
|
||||
#handheldToggles li {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#lightbox {
|
||||
position: absolute;
|
||||
height: auto;
|
||||
width: 95%;
|
||||
min-width: 0px;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
border: 0px;
|
||||
}
|
||||
h1 {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
#subtitle {
|
||||
display: inline;
|
||||
width: auto;
|
||||
margin: auto;
|
||||
padding: 3px;
|
||||
}
|
||||
#handheldCloseButton {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#footer {
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
position: fixed;
|
||||
bottom: 15px;
|
||||
margin-left: -117px;
|
||||
z-index: 1;
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
#banner {
|
||||
width: 234px;
|
||||
height: 30px;
|
||||
margin-left: 50%;
|
||||
background: rgba(30, 115, 190, 1);
|
||||
}
|
||||
#banner img {
|
||||
width: 234px;
|
||||
}
|
||||
@@ -1,349 +0,0 @@
|
||||
//Tile Handling
|
||||
function getTileCode(a, b) {
|
||||
//converts tile x,y into keyhole string
|
||||
var c = Math.pow(2, b);
|
||||
var d = a.x;
|
||||
var e = a.y;
|
||||
var f = 't';
|
||||
for (var g = 0; g < b; g++) {
|
||||
c = c / 2;
|
||||
if (e < c) {
|
||||
if (d < c) {
|
||||
f += 'q';
|
||||
} else {
|
||||
f += 'r';
|
||||
d -= c;
|
||||
}
|
||||
} else {
|
||||
if (d < c) {
|
||||
f += 't';
|
||||
e -= c;
|
||||
} else {
|
||||
f += 's';
|
||||
d -= c;
|
||||
e -= c;
|
||||
}
|
||||
}
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
||||
//Tile Handling
|
||||
function isOutsideTileRange(coord, zoom) {
|
||||
var tileRange = 1 << zoom;
|
||||
if (coord.x < 0 || coord.x >= tileRange) return true;
|
||||
if (coord.y < 0 || coord.y >= tileRange) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
//Transparent markers placed on top of each city, town, castle, & ruin
|
||||
function markLocation(map, key, locationOptions) {
|
||||
//Sample input-> They_Lay_With_Lions: {lat:23.4027, lng:-126.2548, title:"23: Inn (They Lay with Lions)", url:"https://awoiaf.westeros.org/index.php/A_Storm_of_Swords-Chapter_1"},
|
||||
if (
|
||||
typeof locationOptions.lat != 'number' ||
|
||||
typeof locationOptions.lng != 'number'
|
||||
) {
|
||||
console.log(
|
||||
'Location ' + key + ' was missing either the lat or lng attribute.'
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
var title =
|
||||
typeof locationOptions.title != 'undefined' ? locationOptions.title : '';
|
||||
var url =
|
||||
typeof locationOptions.url != 'undefined'
|
||||
? locationOptions.url
|
||||
: 'https://awoiaf.westeros.org/index.php/' + key;
|
||||
var marker = new google.maps.Marker({
|
||||
position: new google.maps.LatLng(locationOptions.lat, locationOptions.lng),
|
||||
title: title,
|
||||
icon: { path: google.maps.SymbolPath.CIRCLE, strokeOpacity: 0, scale: 3 },
|
||||
map: map,
|
||||
});
|
||||
google.maps.event.addListener(marker, 'click', function (event) {
|
||||
if (ctrlPressed) window.location = '#@' + key;
|
||||
else window.open(url, '_blank');
|
||||
});
|
||||
return marker;
|
||||
}
|
||||
|
||||
//Colored shapes matching the borders of the 9 constituencies of Westeros
|
||||
function createPolygon(map, regionOptions) {
|
||||
//Sample input-> {coords:giftCoords, color:"#000000", key:"Gift"} (giftCoords is an array of google.maps.LatLng objects)
|
||||
if (typeof regionOptions.key != 'string')
|
||||
return console.log('Region was missing a key attribute.');
|
||||
if (typeof regionOptions.color != 'string')
|
||||
return console.log(
|
||||
'Region ' + regionOptions.key + ' was missing a color attribute.'
|
||||
);
|
||||
if (
|
||||
typeof regionOptions.coords != 'object' ||
|
||||
regionOptions.coords.length < 3
|
||||
)
|
||||
return console.log(
|
||||
'Region ' + regionOptions.key + ' was missing a coords attribute.'
|
||||
);
|
||||
|
||||
var url = 'https://awoiaf.westeros.org/index.php/' + regionOptions.key;
|
||||
var polygon = new google.maps.Polygon({
|
||||
paths: regionOptions.coords,
|
||||
fillColor: regionOptions.color,
|
||||
fillOpacity: 0.7,
|
||||
strokeWeight: 0,
|
||||
visible: false,
|
||||
map: map,
|
||||
});
|
||||
google.maps.event.addListener(polygon, 'click', function (event) {
|
||||
window.open(url, '_blank');
|
||||
});
|
||||
return polygon;
|
||||
}
|
||||
|
||||
//Coats of arms for every known noble family (some locations were guessed)
|
||||
function markNobility(map, nobilityOptions) {
|
||||
//Sample input-> {wikiKey:"House_Bolton", seatKey:"Dreadfort", imgRatio:(120/102), img:"https://awoiaf.westeros.org/images/thumb/7/76/Bolton.png/102px-Bolton.png", isGreat:true, chapters:[196,999]} (seatKey may be replaced with lat & lng)
|
||||
if (typeof nobilityOptions.img != 'string')
|
||||
return console.log(
|
||||
nobilityOptions.wikiKey +
|
||||
' in the nobility list was missing an img attribute.'
|
||||
);
|
||||
|
||||
if (typeof nobilityOptions.seatKey == 'string')
|
||||
var coords = checkLocKey(nobilityOptions.seatKey);
|
||||
else {
|
||||
if (
|
||||
typeof nobilityOptions.lat == 'number' &&
|
||||
typeof nobilityOptions.lng == 'number'
|
||||
)
|
||||
var coords = checkLocKey('', nobilityOptions.lat, nobilityOptions.lng);
|
||||
else return false;
|
||||
}
|
||||
if (!coords) return false;
|
||||
|
||||
var title =
|
||||
typeof nobilityOptions.wikiKey == 'string'
|
||||
? decodeURI(nobilityOptions.wikiKey).replace(/_/g, ' ')
|
||||
: 'No name listed';
|
||||
if (typeof nobilityOptions.clue == 'string') {
|
||||
if (nobilityOptions.clue == 'mountain clan')
|
||||
title = title.replace(/House/, 'Clan');
|
||||
else title += ' (somewhere in ' + nobilityOptions.clue + ')';
|
||||
}
|
||||
var isGreat =
|
||||
typeof nobilityOptions.isGreat != 'undefined'
|
||||
? nobilityOptions.isGreat
|
||||
: false;
|
||||
var imgRatio =
|
||||
typeof nobilityOptions.imgRatio == 'number'
|
||||
? nobilityOptions.imgRatio
|
||||
: 4 / 3;
|
||||
var imgHeight = isGreat ? 60 : 30;
|
||||
var anchorPoint = $.isArray(nobilityOptions.anchor)
|
||||
? new google.maps.Point(
|
||||
nobilityOptions.anchor[0],
|
||||
nobilityOptions.anchor[1]
|
||||
)
|
||||
: new google.maps.Point(imgHeight / imgRatio / 2, imgHeight / 2);
|
||||
var icon = new google.maps.MarkerImage(
|
||||
nobilityOptions.img,
|
||||
null,
|
||||
null,
|
||||
anchorPoint,
|
||||
new google.maps.Size(imgHeight / imgRatio, imgHeight)
|
||||
);
|
||||
var marker = new google.maps.Marker({
|
||||
position: new google.maps.LatLng(coords[0], coords[1]),
|
||||
title: title,
|
||||
icon: icon,
|
||||
visible: false,
|
||||
map: map,
|
||||
});
|
||||
if (typeof nobilityOptions.wikiKey == 'string')
|
||||
google.maps.event.addListener(marker, 'click', function (event) {
|
||||
window.open(
|
||||
'https://awoiaf.westeros.org/index.php/' + nobilityOptions.wikiKey,
|
||||
'_blank'
|
||||
);
|
||||
});
|
||||
marker['isGreat'] = isGreat;
|
||||
marker['chapters'] =
|
||||
typeof nobilityOptions.chapters == 'object'
|
||||
? nobilityOptions.chapters
|
||||
: [0, 999];
|
||||
marker['episodes'] =
|
||||
typeof nobilityOptions.episodes == 'object'
|
||||
? nobilityOptions.episodes
|
||||
: [0, 999];
|
||||
return marker;
|
||||
}
|
||||
|
||||
//Teardrop markers & lines marking the path of each major character
|
||||
function markPathSegment(map, overlayOptions) {
|
||||
if (typeof overlayOptions.icon == 'string') {
|
||||
switch (overlayOptions.icon) {
|
||||
case 'skull':
|
||||
var icon = 'skull.png';
|
||||
break;
|
||||
case 'lost':
|
||||
var icon = 'question-mark.gif';
|
||||
break;
|
||||
default:
|
||||
var icon =
|
||||
'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin' +
|
||||
overlayOptions.icon; //or d_map_pin_letter_withshadow
|
||||
}
|
||||
|
||||
switch (overlayOptions.icon.substring(0, 3)) {
|
||||
case '_sl':
|
||||
icon = { url: icon, anchor: new google.maps.Point(23, 33) };
|
||||
break;
|
||||
case '_sr':
|
||||
icon = { url: icon, anchor: new google.maps.Point(0, 33) };
|
||||
break;
|
||||
}
|
||||
|
||||
if (typeof overlayOptions.key == 'string') {
|
||||
//Sample input-> {icon:"greyC", chapters:[0,17], episodes:[0,1], key:"Winterfell"}
|
||||
checkResults = checkLocKey(overlayOptions.key);
|
||||
if (!checkResults)
|
||||
return console.log(
|
||||
'Item ' +
|
||||
overlayOptions.key +
|
||||
' in the character path list does not match a known location.'
|
||||
);
|
||||
|
||||
var overlay = new google.maps.Marker({
|
||||
position: new google.maps.LatLng(checkResults[0], checkResults[1]),
|
||||
icon: icon,
|
||||
visible: false,
|
||||
map: map,
|
||||
});
|
||||
} else {
|
||||
//Sample input-> {icon:"greyE", chapters:[15,19], episodes:[1,1], coord:[26.4312,-114.1406]}
|
||||
if (typeof overlayOptions.coord != 'object')
|
||||
return console.log(
|
||||
'One item in the character path list is missing a coord attribute.'
|
||||
);
|
||||
if (overlayOptions.coord.length != 2)
|
||||
return console.log(
|
||||
'One item in the character path list has an inappropriate coord attribute: ' +
|
||||
overlayOptions.coord
|
||||
);
|
||||
if (!checkLocKey('', overlayOptions.coord[0], overlayOptions.coord[1]))
|
||||
return console.log(
|
||||
'One item in the character path list has coordinates outside the edges of the map: ' +
|
||||
overlayOptions.coord
|
||||
);
|
||||
|
||||
var overlay = new google.maps.Marker({
|
||||
position: new google.maps.LatLng(
|
||||
overlayOptions.coord[0],
|
||||
overlayOptions.coord[1]
|
||||
),
|
||||
icon: icon,
|
||||
visible: false,
|
||||
map: map,
|
||||
});
|
||||
}
|
||||
} //icons
|
||||
|
||||
if (typeof overlayOptions.line == 'string') {
|
||||
//Sample input-> {line:"#808080", chapters:[20], episodes:2, path:[[26.4312,-114.1406], "Darry", [16.0669,-109.5263],"Hayford","King%27s_Landing"]}
|
||||
if (typeof overlayOptions.line != 'string')
|
||||
return console.log(
|
||||
'One item in the character path list has neither a icon nor line attribute.'
|
||||
);
|
||||
if (typeof overlayOptions.path != 'object')
|
||||
return console.log(
|
||||
'One item in the character path list is missing a path attribute.'
|
||||
);
|
||||
|
||||
//Parse the array of coordinates in the path attribute
|
||||
var path = [];
|
||||
var checkResults = [];
|
||||
for (i in overlayOptions.path) {
|
||||
if (typeof overlayOptions.path[i] == 'string') {
|
||||
checkResults = checkLocKey(overlayOptions.path[i]);
|
||||
if (!checkResults) continue;
|
||||
path.push(new google.maps.LatLng(checkResults[0], checkResults[1]));
|
||||
}
|
||||
if (typeof overlayOptions.path[i] == 'object') {
|
||||
if (overlayOptions.path[i].length != 2) continue;
|
||||
if (
|
||||
!checkLocKey('', overlayOptions.path[i][0], overlayOptions.path[i][1])
|
||||
)
|
||||
continue;
|
||||
path.push(
|
||||
new google.maps.LatLng(
|
||||
overlayOptions.path[i][0],
|
||||
overlayOptions.path[i][1]
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
var overlay = new google.maps.Polyline({
|
||||
path: path,
|
||||
strokeColor: overlayOptions.line,
|
||||
strokeOpacity: 1.0,
|
||||
strokeWeight: 8,
|
||||
visible: false,
|
||||
map: map,
|
||||
});
|
||||
|
||||
//TEMPORARY
|
||||
//google.maps.event.addListener(overlay, 'click', function(event) {
|
||||
// new google.maps.InfoWindow({position:event.latLng, content:Math.round(event.latLng.lat()*10000)/10000+","+Math.round(event.latLng.lng()*10000)/10000 }).open(map);
|
||||
//});
|
||||
} //lines
|
||||
|
||||
if (typeof overlayOptions.arrow == 'string') {
|
||||
//Sample input-> {arrow:"#808080", chapters:59, coord:[42.0329, -125.5078], heading:210}
|
||||
if (typeof overlayOptions.coord != 'object')
|
||||
return console.log(
|
||||
'One arrow in the character path list is missing a coord attribute.'
|
||||
);
|
||||
if (overlayOptions.coord.length != 2)
|
||||
return console.log(
|
||||
'One arrow in the character path list has an inappropriate coord attribute: ' +
|
||||
overlayOptions.coord
|
||||
);
|
||||
if (typeof overlayOptions.heading != 'number')
|
||||
return console.log(
|
||||
'One arrow in the character path list is missing a heading attribute.'
|
||||
);
|
||||
|
||||
var overlay = new ArrowOverlay(
|
||||
map,
|
||||
new google.maps.LatLng(overlayOptions.coord[0], overlayOptions.coord[1]),
|
||||
overlayOptions.heading,
|
||||
overlayOptions.arrow,
|
||||
1
|
||||
);
|
||||
} //arrows
|
||||
|
||||
overlay['chapters'] = [999, 999];
|
||||
if (typeof overlayOptions.chapters == 'number')
|
||||
overlay.chapters[0] = overlayOptions.chapters;
|
||||
if (typeof overlayOptions.chapters == 'object') {
|
||||
if (overlayOptions.chapters.length == 2)
|
||||
if (typeof overlayOptions.chapters[1] == 'number')
|
||||
overlay.chapters[1] = overlayOptions.chapters[1];
|
||||
if (typeof overlayOptions.chapters[0] == 'number')
|
||||
overlay.chapters[0] = overlayOptions.chapters[0];
|
||||
}
|
||||
|
||||
overlay['episodes'] = [99, 99];
|
||||
if (typeof overlayOptions.episodes == 'number')
|
||||
overlay.episodes[0] = overlayOptions.episodes;
|
||||
if (typeof overlayOptions.episodes == 'object') {
|
||||
if (overlayOptions.episodes.length == 2)
|
||||
if (typeof overlayOptions.episodes[1] == 'number')
|
||||
overlay.episodes[1] = overlayOptions.episodes[1];
|
||||
if (typeof overlayOptions.episodes[0] == 'number')
|
||||
overlay.episodes[0] = overlayOptions.episodes[0];
|
||||
}
|
||||
|
||||
return overlay;
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
## About
|
||||
|
||||
The novel series by George R.R. Martin, "[A Song of Ice and Fire](http://www.georgerrmartin.com/bibliography.html)" covers a massive world and dozens of characters. As I was reading the books, I found it difficult to keep track of the characters' whereabouts and how close one place was to another. Each book included small maps in the front pages, but I knew there should be an easier way.
|
||||
|
||||
There were several maps available on the Internet, but all static images. [One](http://www.sermountaingoat.co.uk/map) was large enough to be a good option for a new feature in the Google Maps API custom tiles using [ImageMapType](https://developers.google.com/maps/documentation/javascript/maptypes#ImageMapTypes). I cut the original image into tiles, and had a map that could be panned and zoomed. On top of that base layer, I added markers and polygons that made the map clickable and displayed additional information. Next, I plotted where each major character traveled on the map and associated each step with a specific point in the story.
|
||||
|
||||
The slider in the top-right of the website lets the user select how much of the books they have read (or how much of the [TV show](http://www.hbo.com/game-of-thrones) they have seen). As the slider is moved, the character paths are updated so that the user sees what has already happened, but is protected from plot details they have not yet reached.
|
||||
|
||||
After a 2014 feature in The Guardian, the site went viral, reaching more than 9.5 million sessions by mid-2016.
|
||||
|
||||
## Press and Other Discussions
|
||||
|
||||
- Google Maps Mania -
|
||||
[2012](http://googlemapsmania.blogspot.hk/2012/12/a-game-of-thrones-on-google-maps.html),
|
||||
[2014](http://googlemapsmania.blogspot.hk/2014/04/a-game-of-thrones-mapped.html)
|
||||
- Reddit.com -
|
||||
[2012](https://www.reddit.com/r/asoiaf/comments/14w7my/spoilers_all_a_map_that_only_shows_the_spoilers/),
|
||||
[2013](https://www.reddit.com/r/gameofthrones/comments/1fejbk/spoilers_season_13_daenerys_journey/),
|
||||
[2014](https://www.reddit.com/r/books/comments/239nx0/just_found_this_interactive_map_that_shows_the/),
|
||||
[2015](https://www.reddit.com/r/asoiaf/comments/3cpw69/no_spoilers_just_started_reading_the_books_any/),
|
||||
[2016](https://www.reddit.com/r/InternetIsBeautiful/comments/4r94cr/game_of_thrones_map/)
|
||||
- [Los Siete Reinos (Spanish) - January 15,
|
||||
2013](http://lossietereinos.com/mapa-interactivo-de-los-viajes-de-cada-uno-de-los-personajes/)
|
||||
- [JoeMonster.org (Polish) - April 17,
|
||||
2013](http://joemonster.org/link/45791/Interaktywna_mapa_z_Gry_o_Tron)
|
||||
- [Tech Gear (Greek) - June 8,
|
||||
2013](http://www.techgear.gr/interactive-game-of-thrones-map-70672/)
|
||||
- [Komsomolskaya Pravda (Russian) - April 15,
|
||||
2014](http://www.kp.ru/daily/26219/3103386/)
|
||||
- [The Guardian - April 15,
|
||||
2014](https://www.theguardian.com/tv-and-radio/tvandradioblog/2014/apr/15/game-of-thrones-interactive-map-google)
|
||||
- [The Onion AV Club - April 21,
|
||||
2014](http://www.avclub.com/article/interactive-game-thrones-map-has-everything-203658)
|
||||
- [CNET.com - April 21,
|
||||
2014](http://www.cnet.com/news/google-maps-meets-game-of-thrones-in-interactive-westeros-map/)
|
||||
- [Gizmodo - April 21,
|
||||
2014](http://gizmodo.com/explore-the-world-of-game-of-thrones-as-if-it-were-on-g-1565480639)
|
||||
- [Tom's Guide (French) - April 22,
|
||||
2014](http://www.tomsguide.fr/actualite/carte-game-of-thrones,41151.html)
|
||||
- [El Confidencial (Spanish) - April 22,
|
||||
2014](http://www.elconfidencial.com/tecnologia/2014-04-22/este-mapa-interactivo-permite-recorrer-el-mundo-de-juego-de-tronos_119215/)
|
||||
- [News.com.au - April 22,
|
||||
2014](http://www.news.com.au/technology/fans-build-game-of-thrones-world-on-google-maps/story-e6frfrnr-1226892475343)
|
||||
- [Haaretz (Hebrew) - April 22,
|
||||
2014](http://www.haaretz.co.il/captain/net/1.2301517)
|
||||
- [Geekologie - April 22,
|
||||
2014](http://geekologie.com/2014/04/impressive-game-of-thrones-interactive-m.php)
|
||||
- [TN - April 22,
|
||||
2014](http://tn.com.ar/tecno/recomendados/un-mapa-interactivo-para-recorrer-el-mundo-de-game-of-thrones_493769)
|
||||
- [Nerdist - April 22,
|
||||
2014](http://nerdist.com/this-fan-made-interactive-game-of-thrones-map-is-super-helpful-awesome/)
|
||||
- [Slate.fr (French) - April 23,
|
||||
2014](http://www.slate.fr/life/86289/carte-interactive-game-of-thrones-localisation-parcours-personnages)
|
||||
- [People - April 23,
|
||||
2014](http://www.people.com/article/game-of-thrones-westeros-interactive-map)
|
||||
- [Maxim (Czech) - April 23,
|
||||
2014](http://www.maxim.cz/mixer/film/skvele-uz-jste-videli-interaktivni-mapu-hry-o-truny)
|
||||
- [MarketWatch: The Margin - April 23,
|
||||
2014](http://blogs.marketwatch.com/themargin/2014/04/23/game-of-thrones-meets-google-in-interactive-map-of-westeros/)
|
||||
- [The Daily Mail - April 23,
|
||||
2014](http://www.dailymail.co.uk/sciencetech/article-2611168/Google-Game-Thrones-View-Interactive-map-reveals-fantasy-world-unprecedented-helps-avoid-spoilers.html)
|
||||
- Buzzfeed -
|
||||
[2014](https://www.buzzfeed.com/josephbernstein/finally-the-interactive-map-game-of-thrones-deserves),
|
||||
[2015](https://www.buzzfeed.com/clairedelouraille/where-in-the-world-is-arya-stark)
|
||||
|
||||
- [Olhar Digital (Portuguese) - April 24,
|
||||
2014](http://olhardigital.uol.com.br/noticia/game-of-thrones-ganha-mapa-no-estilo-google-maps/41602)
|
||||
- [The Escapist - April 24,
|
||||
2014](http://www.escapistmagazine.com/news/view/133945-Track-Game-of-Thrones-Characters-Paths-with-this-Interactive-Map)
|
||||
- [Game of Thrones BR (Portuguese) - April 29,
|
||||
2014](http://www.gameofthronesbr.com/2014/04/mapa-interativo-de-game-of-thrones.html)
|
||||
- [Internazionale (Italian) - April 30,
|
||||
2014](http://www.internazionale.it/opinione/2014/04/30/la-mappa-di-game-of-thrones)
|
||||
- [DNA India - May 3,
|
||||
2014](http://www.dnaindia.com/entertainment/report-game-of-thrones-interactive-map-allows-you-to-explore-the-seven-kingdoms-1984730)
|
||||
- [der Standard (German) - May 4,
|
||||
2014](http://derstandard.at/1397521436850/Interaktive-Google-Map-fuer-Game-of-Thrones)
|
||||
- [Focus (German) - May 5,
|
||||
2014](http://www.focus.de/kultur/kino_tv/game-of-thrones-george-r-r-martin-westeros-hbo-sky-interaktive-karte-zeigt-die-welt-von-game-of-thrones_id_3819866.html)
|
||||
- [Esquire - April 14,
|
||||
2016](http://www.esquire.com/entertainment/tv/news/a43936/game-of-thrones-360-intro-video/)
|
||||
- [The Verge - June 28,
|
||||
2016](http://www.theverge.com/2016/6/28/12047644/game-of-thrones-maps-season-six-travel-plot-holes-time-warps)
|
||||
- [Lifehacker - July 3,
|
||||
2016](http://lifehacker.com/get-your-game-of-thrones-fix-with-this-interactive-spo-1782986360)
|
||||
- [The Next Web - July 4,
|
||||
2016](http://thenextweb.com/shareables/2016/07/04/discover-game-thrones-universe-handy-interactive-map/)
|
||||
- [Polygon - July 4,
|
||||
2016](http://www.polygon.com/2016/7/4/12093570/game-of-thrones-map-westeros)
|
||||
- [Wired (Italian) - July 5,
|
||||
2016](http://www.wired.it/internet/web/2016/07/05/mappa-interattiva-game-of-thrones/)
|
||||
- [BoingBoing.net - July 5,
|
||||
2016](http://boingboing.net/2016/07/05/interactive-map-of-game-of-thr.html)
|
||||
- [Origo (Hungarian) - July 18,
|
||||
2016](http://www.origo.hu/teve/20140422-parades-interaktiv-terkep-a-tronok-harcahoz.html)
|
||||
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 303 B |
|
Before Width: | Height: | Size: 198 B |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
@@ -1,315 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Connections Between the Novels of "A Song of Ice and Fire" and HBO's "Game of Thrones"</title>
|
||||
<meta name="description" content="An intercative timeline of each chapter and epsisode that shows where the plot fits into each telling of the story and which characters appear in each version" />
|
||||
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
|
||||
<script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="ASoIaF-timelines.js"></script>
|
||||
<style>
|
||||
|
||||
#episodes td.highlight {background-color:#B0C4DE;}
|
||||
|
||||
body {font-family:sans-serif; overflow-x:hidden}
|
||||
.roundTop {border-top-right-radius:10px; -webkit-border-top-right-radius:10px; border-top-left-radius:10px; -webkit-border-top-left-radius:10px;}
|
||||
.roundBottom {border-bottom-right-radius:10px; -webkit-border-bottom-right-radius:10px; border-bottom-left-radius:10px; -webkit-border-bottom-left-radius:10px;}
|
||||
#focusImg {float:left; height:200px; min-width:150px; margin:0px 10px 10px 0px; background-image:url('characters.jpg'); background-position:"0px 0px"}
|
||||
#maps img {position:absolute; top:5px; right:5px;}
|
||||
#title, #more {margin-left:120px; margin-right:90px;}
|
||||
#title {padding-bottom:5px; font-weight:bold; font-size:1.1em;}
|
||||
#share {position:absolute; top:170px; right:110px;}
|
||||
#share a {display:inline-block; width:30px; height:30px; margin:3px;}
|
||||
#share iframe {width:80px; height:20px; border:0px;}
|
||||
#info {display:none !important; background-image:url('https://chart.googleapis.com/chart?chst=d_simple_text_icon_left&chld=|14|000|info|24|f00|FFF');}
|
||||
#data {background-image:url('data.png');}
|
||||
#link {display:none !important; background-image:url('link.png');}
|
||||
#facebook {background-image:url('like.png');}
|
||||
|
||||
#episodes, #chapters, #characters {clear:left; margin-top:10px; padding:5px; background:#bbb; font-weight:bold;}
|
||||
#characters span, #episodes select, #chapters select {float:right; font-size:0.9em; font-weight:normal;}
|
||||
#spoilerControlReadout {display:none; position:absolute; left:10px; right:10px; top:10px; height:30px; padding: 80px; background-color:pink; font-weight:bold; font-size:1.4em;}
|
||||
|
||||
table {width: 100%; background:white; font-weight:normal; border-spacing:0;}
|
||||
|
||||
#episodes ul, #chapters ul, #characters ul {height:100px; padding:0; margin:5px; list-style-type:none;}
|
||||
#episodes ul li, #chapters ul li {height:100px; float:left; margin:0px; padding:0px; background:white;}
|
||||
#episodes ul li:hover, #chapters ul li:hover,
|
||||
#episodes ul li.highlight, #chapters ul li.highlight {background:#55a; cursor:pointer;}
|
||||
|
||||
#episodes ul li {width:3.32%;}
|
||||
#episodes ul li:nth-child(11),
|
||||
#episodes ul li:nth-child(21),
|
||||
#chapters ul li:nth-child(74),
|
||||
#chapters ul li:nth-child(144),
|
||||
#chapters ul li:nth-child(226),
|
||||
#chapters ul li:nth-child(272) {border-left:thin solid black;}
|
||||
|
||||
#griff {display:none;}
|
||||
#characters ul {height:130px; background-color:inherit;}
|
||||
#characters ul ul.column {float:left; margin:0; background-color:white;}
|
||||
#characters li {height:20px; border:thin solid black; width:180px; padding-left:25px;
|
||||
background-size:20px 20px; background-repeat:no-repeat; -khtml-opacity:.50; -moz-opacity:.50; -ms-filter:"alpha(opacity=50)"; filter:alpha(opacity=50); filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.5); opacity:.50; }
|
||||
#characters li:hover, #characters li.highlight {cursor:pointer; -khtml-opacity:1; -moz-opacity:1; -ms-filter:"alpha(opacity=100)"; filter:alpha(opacity=100); filter: progid:DXImageTransform.Microsoft.Alpha(opacity=1); opacity:1; }
|
||||
|
||||
.spoilerBlock {position:absolute; background-image:url('steel-dark.jpg'); width:110%; height:100px; margin:-105px 5px 5px 5px ; cursor:e-resize; color:white;}
|
||||
.spoilerBlock h2, .spoilerBlock p {margin:5px 25px;}
|
||||
.spoilerBlock h2 span {font-size:0.4em; font-style:italic;}
|
||||
.spoilerBlock .handle {position:absolute; top:0px; width:20px; height:100%; background-color:#333;}
|
||||
|
||||
.stark {background-image:url('https://awoiaf.westeros.org/images/thumb/5/51/House_Stark.PNG/90px-House_Stark.PNG')}
|
||||
.stark:hover, .stark.highlight {background-color:#808080;}
|
||||
#daenerys {background-image:url('https://awoiaf.westeros.org/images/thumb/4/43/House_Targaryen.PNG/92px-House_Targaryen.PNG')}
|
||||
#daenerys:hover, #daenerys.highlight {background-color:#333; color:white;}
|
||||
.lannister {background-image:url('https://awoiaf.westeros.org/images/thumb/8/88/House_Lannister.png/102px-House_Lannister.png')}
|
||||
.lannister:hover, .lannister.highlight {background-color:#ffa4a4;}
|
||||
.baratheonokl {background-image:url('https://awoiaf.westeros.org/images/thumb/5/5d/Joffrey_sigil_coat.png/120px-Joffrey_sigil_coat.png')}
|
||||
.baratheonokl:hover, .baratheonokl.highlight {background-color:#DAA520;}
|
||||
.baratheon {background-image:url('https://awoiaf.westeros.org/images/thumb/d/d1/House_Baratheon.PNG/104px-House_Baratheon.PNG')}
|
||||
.baratheon:hover, .baratheon.highlight {background-color:#DAA520;}
|
||||
#stannis {background-image:url('https://awoiaf.westeros.org/images/thumb/6/61/Baratheon_DS.png/102px-Baratheon_DS.png')}
|
||||
#stannis:hover, #stannis.highlight {background-color:#DAA520;}
|
||||
.greyjoy {background-image:url('https://awoiaf.westeros.org/images/thumb/f/f3/Greyjoy_coat_sigil.png/120px-Greyjoy_coat_sigil.png')}
|
||||
.greyjoy:hover, .greyjoy.highlight {background-color:#fffe8b;}
|
||||
#brienne {background-image:url('https://awoiaf.westeros.org/images/thumb/f/f3/House_Tarth.PNG/120px-House_Tarth.PNG')}
|
||||
#brienne:hover, #brienne.highlight {background-color:#FF00FF;}
|
||||
#davos {background-image:url('https://awoiaf.westeros.org/images/thumb/9/99/Seaworth.png/90px-Seaworth.png')}
|
||||
#davos:hover, #davos.highlight {background-color:#AAAAAA;}
|
||||
#samwell {background-image:url('https://awoiaf.westeros.org/images/thumb/d/d8/Tarly.png/100px-Tarly.png')}
|
||||
#samwell:hover, #samwell.highlight {background-color:#3CB371;}
|
||||
#petyr {background-image:url('https://awoiaf.westeros.org/images/thumb/1/13/House_Baelish.PNG/50px-House_Baelish.PNG')}
|
||||
#petyr:hover, #petyr.highlight {background-color:#3CB371;}
|
||||
#jorah {background-image:url('https://awoiaf.westeros.org/images/thumb/2/2d/House_Mormont.png/40px-House_Mormont.png')}
|
||||
#jorah:hover, #jorah.highlight {background-color:#3CB371;}
|
||||
#barristan {background-image:url('https://awoiaf.westeros.org/images/thumb/6/61/Selmy.png/50px-Selmy.png')}
|
||||
#barristan:hover, #barristan.highlight {background-color:#9a471f;}
|
||||
#lysa {background-image:url('https://awoiaf.westeros.org/images/thumb/b/be/House_Arryn.PNG/50px-House_Arryn.PNG')}
|
||||
#lysa:hover, #lysa.highlight {background-color:#0368bc;}
|
||||
#griff {background-image:url('https://awoiaf.westeros.org/images/thumb/0/07/House_Connington.png/50px-House_Connington.png')}
|
||||
#griff:hover, #griff.highlight {background-color:#980030; color:white;}
|
||||
|
||||
#other:hover, #other.highlight {background-color:black; color:white;}
|
||||
</style>
|
||||
<script>
|
||||
var totalPages = 3967;
|
||||
var characterRowCount = 6;
|
||||
var wikiURLs = {
|
||||
awoiaf: "https://awoiaf.westeros.org/index.php/",
|
||||
toth: "https://towerofthehand.com/books/",
|
||||
tothTV: "https://towerofthehand.com/gameofthrones/",
|
||||
wikia: "https://gameofthrones.wikia.com/wiki/",
|
||||
wiki: "https://en.wikipedia.org/wiki/",
|
||||
imdb: "https://www.imdb.com/title/",
|
||||
ign: "https://www.ign.com/wikis/game-of-thrones/",
|
||||
hbo: "https://www.hbo.com/#/game-of-thrones/episodes/",
|
||||
};
|
||||
var hboPosters = [
|
||||
"https://awoiaf.westeros.org/images/thumb/2/2c/Season_1_Poster.jpg/250px-Season_1_Poster.jpg",
|
||||
"https://awoiaf.westeros.org/images/thumb/3/3a/Season_2_Poster.jpg/250px-Season_2_Poster.jpg",
|
||||
"https://www.westeros.org/GoT/Graphics/Gallery/GameOfThrones_S3_Poster-Jaime_01.jpg"
|
||||
];
|
||||
|
||||
function removePX(string){
|
||||
var match = /(\d+)px/.exec(string);
|
||||
return parseInt(match[1]);
|
||||
}
|
||||
|
||||
$(function(){
|
||||
$("#focusImg").animate({"background-position-x":"-10000px"}, 100000, "linear");
|
||||
|
||||
$("#episodes ul").html(Array(episodes.length+1).join("<li></li>"));
|
||||
for (e in episodes) {
|
||||
$("#episodes ul li").eq(e).hover(function(){
|
||||
$("li").removeClass("highlight");
|
||||
$(this).addClass("highlight");
|
||||
$("#title").text(episodes[$(this).index()]["title"]);
|
||||
$("#more").text("Air date: "+episodes[$(this).index()]["date"]);
|
||||
$("#focusImg").attr("src", hboPosters[parseInt(episodes[$(this).index()]["title"].substring(1,2))-1] ).css("background","white").stop();
|
||||
//Update Link URL
|
||||
$("#maps img").hide();
|
||||
for (i in episodes[$(this).index()]["regions"]) $("#"+episodes[$(this).index()]["regions"][i]).show();
|
||||
for (i in episodes[$(this).index()]["appearing"]) $("#"+episodes[$(this).index()]["appearing"][i]).addClass("highlight");
|
||||
for (i in episodes[$(this).index()]["chapters"]) $("#chapters ul li").eq(episodes[$(this).index()]["chapters"][i]).addClass("highlight");
|
||||
})
|
||||
.click(function(){
|
||||
var wikiChoice = $("#episodeLinks").val();
|
||||
window.open(wikiURLs[wikiChoice] + episodes[$(this).index()][wikiChoice], '_blank');
|
||||
});;
|
||||
}
|
||||
|
||||
$("#chapters ul").html(Array(chapters.length+1).join("<li></li>"));
|
||||
for (c in chapters) {
|
||||
var percentWidth = (99.7*chapters[c].pages/totalPages)+"%";
|
||||
$("#chapters ul li").eq(c).css("width",percentWidth)
|
||||
.hover(
|
||||
function(){
|
||||
$("li").removeClass("highlight");
|
||||
$(this).addClass("highlight");
|
||||
$("#title").text(chapters[$(this).index()]["title"]);
|
||||
var maplink = "https://quartermaester.info/#l=" + chapters[$(this).index()]["setting"].replace(/\s/g,"_").replace(/\'/g,"%27");
|
||||
$("#more").html("Setting: <a href='"+maplink+"'>"+chapters[$(this).index()]["setting"]+"</a><br/>Pages: "+chapters[$(this).index()]["pages"]);
|
||||
$("#focusImg").attr("src", books[chapters[$(this).index()].book].thumbURL).css("background","white").stop();
|
||||
//Update Link URL
|
||||
$("#maps img").hide();
|
||||
$("#"+chapters[$(this).index()].region).show();
|
||||
for (i in chapters[$(this).index()]["episodes"]) $("#episodes ul li").eq(chapters[$(this).index()]["episodes"][i]).addClass("highlight");
|
||||
if ($("#pov").is(':checked'))
|
||||
{
|
||||
//Highlight only POV character
|
||||
$("#"+chapters[$(this).index()]["pov"]).addClass("highlight");
|
||||
}else{
|
||||
//Highlight all appearing characters
|
||||
for (i in chapters[$(this).index()]["appearing"]) {
|
||||
$("#"+chapters[$(this).index()]["appearing"][i]).addClass("highlight");
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
.click(function(){
|
||||
var wikiChoice = $("#chapterLinks").val();
|
||||
window.open(wikiURLs[wikiChoice] + chapters[$(this).index()][wikiChoice], '_blank');
|
||||
});
|
||||
}
|
||||
|
||||
var characterLookup = {};
|
||||
for (var i=0; i<characters.length; i+=characterRowCount) {
|
||||
var nextHTML = '<ul class="column">';
|
||||
for (var j=0; j<characterRowCount && i+j<characters.length; j++) {
|
||||
characterLookup[characters[i+j].id] = characters[i+j];
|
||||
nextHTML += '<li id="'+ characters[i+j].id + '" class="' + characters[i+j].house + '">'+ characters[i+j].name + '</li>';
|
||||
}
|
||||
$("#characterList").append(nextHTML+'</ul>');
|
||||
}
|
||||
|
||||
$("#characterList li").hover(
|
||||
function(){
|
||||
$("li").removeClass("highlight");
|
||||
$(this).addClass("highlight");
|
||||
$("#title").text(characterLookup[$(this).attr("id")].name);
|
||||
$("#more").html("Home: <a href='https://quartermaester.info/#l="+houses[characterLookup[$(this).attr("id")].house].map+"'>"+houses[characterLookup[$(this).attr("id")].house].seat+"</a>");
|
||||
$("#focusImg").attr("src", houses[characterLookup[$(this).attr("id")].house].armsURL).css("background","white").stop();
|
||||
//Update Link URL
|
||||
$("#maps img").hide();
|
||||
$("#"+houses[characterLookup[$(this).attr("id")].house].region).show();
|
||||
if ($("#pov").is(':checked'))
|
||||
{
|
||||
//Highlight only chapters written from this characters point of view
|
||||
for (i in characterLookup[$(this).attr("id")].pov) $("#chapters ul li").eq(characterLookup[$(this).attr("id")].pov[i] ).addClass("highlight");
|
||||
}else{
|
||||
//Highlight all episodes & chapters in which this character appears
|
||||
for (i in characterLookup[$(this).attr("id")].episodes) $("#episodes ul li").eq(characterLookup[$(this).attr("id")].episodes[i]).addClass("highlight");
|
||||
for (i in characterLookup[$(this).attr("id")].chapters) $("#chapters ul li").eq(characterLookup[$(this).attr("id")].chapters[i]).addClass("highlight");
|
||||
}
|
||||
}
|
||||
)
|
||||
.click(function(){
|
||||
var wikiChoice = $("#chapterLinks").val();
|
||||
window.open(wikiURLs[wikiChoice] + characterLookup[$(this).attr("id")][wikiChoice], '_blank');
|
||||
});
|
||||
|
||||
|
||||
var setSliderContainment = function(){
|
||||
//If slider has been moved by the user, shift it to its new position
|
||||
maxSlide = removePX($("#episodes ul").css("width"))+10;
|
||||
return $(".spoilerBlock").draggable({ axis: "x", scroll: false, containment: [13,0,maxSlide,0],
|
||||
start:function(event,ui){ $("#spoilerControlReadout").fadeIn() },
|
||||
stop :function(event,ui){ $("#spoilerControlReadout").fadeOut() }
|
||||
});
|
||||
};
|
||||
setSliderContainment().css({left:maxSlide+"px"}).animate({left:"13px"}, 500)
|
||||
.on("drag",function(event,ui){
|
||||
var slider = $(this).parent().attr("id");
|
||||
if (removePX($(this).css("left"))>18) {
|
||||
$(this).hide();
|
||||
i = $(document.elementFromPoint(removePX($(this).css("left"))+3,
|
||||
(slider=="episodes" ? 250:400)
|
||||
)).index();
|
||||
$(this).show();
|
||||
$("#spoilerControlReadout").text("Hide everything after "+
|
||||
(slider=="episodes" ? episodes[i].title : chapters[i].book.toUpperCase() + ": " + chapters[i].title)
|
||||
);
|
||||
if (slider=="chapters") {
|
||||
if(i>=289) $("#griff").show();
|
||||
else $("#griff").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
.on("stop",function(event,ui){
|
||||
//Update link URL
|
||||
});
|
||||
$(window).resize(setSliderContainment);
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="details">
|
||||
<img id="focusImg" />
|
||||
<div id="maps">
|
||||
<img id="beyond" src="regions/beyond.png" />
|
||||
<img id="crownlands" src="regions/crownlands.png" />
|
||||
<img id="dorne" src="regions/dorne.png" />
|
||||
<img id="iron" src="regions/iron.png" />
|
||||
<img id="north" src="regions/north.png" />
|
||||
<img id="reach" src="regions/reach.png" />
|
||||
<img id="riverlands" src="regions/riverlands.png" />
|
||||
<img id="stormlands" src="regions/stormlands.png" />
|
||||
<img id="vale" src="regions/vale.png" />
|
||||
<img id="west" src="regions/west.png" />
|
||||
</div>
|
||||
<div id="title">Plot, Setting, & Character Connections Between the Novels of "A Song of Ice and Fire" and HBO's "Game of Thrones"</div>
|
||||
<div id="more">The areas below list each of the episodes in HBO's <i>Game of Thrones</i>, each chapter in George R.R. Martin's novel series <i>A Song of Ice and Fire</i> and each of the major characters. Hovering over any of these three areas will highlight an individual episode, chapter, or character and show how they connect to the other two lists. Hovering over an episode will show the chapters that were used as source material and the characters that appeared in that episode. Hovering over a chapter will show the episode(s) which include events from that chapter and the characters that appeared. If you check the box in the lower-right, only the "point-of-view" character will be shown. Hovering over a character will display the episodes and chapters in which they appear (again, the POV checkbox will limit this feature).<br/> Before anything can be seen, you'll need to move the spoiler controls out of the way. These are useful if you have not yet seen all the TV shows or read all the books. Simply slide them as far as you've read and you won't be able to see any spoilers.</div>
|
||||
<div id="spoilerControlReadout" class="roundTop roundBottom"></div>
|
||||
<div id="share">
|
||||
<a id="info" href="#" title="Learn about this page"></a>
|
||||
<a id="data" href="https://docs.google.com/spreadsheet/ccc?key=0Ap4uvl_LaJsmdDBaRjBIWU5nMmltZUwtaHY4emkwaUE&usp=sharing" title="See all the connections in a spreadsheet"></a>
|
||||
<a id="link" href="https://quartermaester.info/connections" title="Link to the current view"></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="episodes" class="roundTop">
|
||||
TV Episodes
|
||||
<select id="episodeLinks"/>
|
||||
<option value="awoiaf">Open links in Westeros.org</option>
|
||||
<option value="tothTV">Open links in TowerOfTheHand.com</option>
|
||||
<option value="wikia" >Open links in Wikia.com</option>
|
||||
<option value="wiki" >Open links in Wikipedia.org</option>
|
||||
<option value="imdb" >Open links in IMDB.com</option>
|
||||
<option value="ign" >Open links in IGN.com</option>
|
||||
<option value="hbo" >Open links in HBO.com</option>
|
||||
</select>
|
||||
<ul></ul>
|
||||
<div class="spoilerBlock">
|
||||
<h2>TV Spoilers Control Slider <span class="small">Drag me to the right!</span></h2>
|
||||
<div class="handle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="chapters" class="roundTop">
|
||||
Book Chapters
|
||||
<select id="chapterLinks"/>
|
||||
<option value="awoiaf">Open links in Westeros.org</option>
|
||||
<option value="toth" >Open links in TowerOfTheHand.com</option>
|
||||
</select>
|
||||
<ul></ul>
|
||||
<div class="spoilerBlock">
|
||||
<h2>Book Spoilers Control Slider <span class="small">Drag me to the right!</span></h2>
|
||||
<div class="handle"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="characters" class="roundTop">
|
||||
Characters
|
||||
<span><input id="pov" type="checkbox"/>Show POV Only</span>
|
||||
<ul id="characterList"></ul>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-36764950-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 78 KiB |
@@ -0,0 +1,70 @@
|
||||
.ats-switch {
|
||||
border: 1px solid;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
line-height: 8px;
|
||||
min-width: 100px;
|
||||
}
|
||||
.ats-switch.disabled {
|
||||
opacity: 0.5;
|
||||
filter: alpha(opacity=50);
|
||||
cursor: default !important;
|
||||
}
|
||||
.ats-switch.disabled .switch-left,
|
||||
.ats-switch.disabled .switch-right,
|
||||
.ats-switch.disabled .knob {
|
||||
cursor: default !important;
|
||||
}
|
||||
.ats-switch span {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
height: 100%;
|
||||
line-height: 20px;
|
||||
padding: 4px;
|
||||
text-align: center;
|
||||
width: 33%;
|
||||
white-space: nowrap;
|
||||
box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
.ats-switch > div {
|
||||
position: relative;
|
||||
width: 150%;
|
||||
}
|
||||
.ats-switch .knob {
|
||||
background: red;
|
||||
border-left: 1px solid #ccc;
|
||||
border-right: 1px solid #ccc;
|
||||
background-color: #f5f5f5;
|
||||
width: 34%;
|
||||
z-index: 100;
|
||||
}
|
||||
.ats-switch .switch-on {
|
||||
left: 0%;
|
||||
}
|
||||
.ats-switch .switch-off {
|
||||
left: -50%;
|
||||
}
|
||||
.ats-switch .swtich-left,
|
||||
.ats-switch .switch-right {
|
||||
z-index: 1;
|
||||
}
|
||||
.ats-switch .switch-left {
|
||||
color: #fff;
|
||||
background: #005fcc;
|
||||
}
|
||||
.ats-switch .switch-right {
|
||||
color: #333;
|
||||
background: #f0f0f0;
|
||||
}
|
||||
.ats-switch .switch-animate {
|
||||
transition: left 0.5s;
|
||||
-o-transition: left 0.5s;
|
||||
-moz-transition: left 0.5s;
|
||||
-webkit-transition: left 0.5s;
|
||||
}
|
||||
@@ -0,0 +1,292 @@
|
||||
html, body, ui-gmap-google-map, .angular-google-map, .angular-google-map-container {
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {width: 6px; height: 4px; background: transparent; }
|
||||
::-webkit-scrollbar-thumb { background-color: #f0f0f0; -webkit-border-radius: 1ex; }
|
||||
|
||||
#navigation {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#navigation .list-group {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#navigation .list-group .list-group-item {
|
||||
border-radius: 0 !important;
|
||||
background-color: black;
|
||||
color: #aaa;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#navigation .list-group .list-group-item:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#navigation .list-group .list-group-item:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#navigation .list-group .list-group-item.highlight {
|
||||
background-color: rgb(191, 70, 39);
|
||||
color: white;
|
||||
}
|
||||
|
||||
#navigation .list-group .list-group-item.hlborder {
|
||||
border-right: 2px rgb(191, 70, 39);
|
||||
}
|
||||
|
||||
#side {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 44px;
|
||||
background-color: rgb(191, 70, 39);
|
||||
color: white;
|
||||
padding: 2px 8px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
#side.wider {
|
||||
width: 600px;
|
||||
max-width: calc(100% - 44px);
|
||||
}
|
||||
|
||||
#slider-readout {
|
||||
padding: 6px 0;
|
||||
font-size: 1.2em;
|
||||
line-height: 1.2em;
|
||||
margin: 2px;
|
||||
width: 280px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#side h1,
|
||||
#legend h1 {
|
||||
font-family: 'Cutive', serif;
|
||||
font-size: 1.5em;
|
||||
line-height: 1.5em;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#side h1 .glyphicon-remove {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.list-group {
|
||||
margin: 10px 2px 2px 2px;
|
||||
}
|
||||
|
||||
.list-group a:hover,
|
||||
.list-group button:hover {
|
||||
color: black !important;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#navigation .list-group button:hover {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.list-group-item img {
|
||||
height: 20px;
|
||||
margin-left: -5px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.list-group-item a {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
#side .list-group-item .ats-switch {
|
||||
margin: -5px -10px 0 0;
|
||||
}
|
||||
|
||||
#side .list-group-item .ats-switch span.knob {
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
||||
#slider h1 span {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*#slider-control {
|
||||
margin-left: 30px;
|
||||
}*/
|
||||
|
||||
#slider-control {
|
||||
width: 280px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#slider-control .btn-group {
|
||||
width: 280px;
|
||||
}
|
||||
|
||||
#slider-control .btn-group-2 .btn {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
#slider-control .btn-group-5 .btn {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
#slider-control .rzslider {
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
#slider-control .rzslider .rz-pointer {
|
||||
background-color: #286090;
|
||||
}
|
||||
|
||||
#slider-control .rzslider .rz-pointer.rz-active:after {
|
||||
background: rgb(191, 70, 39);
|
||||
}
|
||||
|
||||
#slider-control .rzslider .rz-pointer:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#slider-control .rz-bubble {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#slider-control .rz-bar-wrapper {
|
||||
padding-top: 8px;
|
||||
}
|
||||
|
||||
#slider-control .rz-bar {
|
||||
height: 20px;
|
||||
width: 248px;
|
||||
margin: 0 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#slider-control .rz-bar span {
|
||||
position: relative;
|
||||
width: 16.66666%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#slider-control .rz-bar span.odd {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
#slider-control .rzslider:nth-child(3) .rz-bar {
|
||||
font-size: 0.65em;
|
||||
}
|
||||
|
||||
#slider-control .rzslider:nth-child(3) .rz-bar span {
|
||||
height: 20px;
|
||||
padding-top: 6px;
|
||||
}
|
||||
|
||||
#slider-control .rzslider:nth-child(3) .rz-bar span:nth-child(1) {width: 21%}
|
||||
#slider-control .rzslider:nth-child(3) .rz-bar span:nth-child(2) {width: 20%}
|
||||
#slider-control .rzslider:nth-child(3) .rz-bar span:nth-child(3) {width: 24%}
|
||||
#slider-control .rzslider:nth-child(3) .rz-bar span:nth-child(4) {width: 13%}
|
||||
#slider-control .rzslider:nth-child(3) .rz-bar span:nth-child(5) {width: 21%}
|
||||
|
||||
|
||||
#characters .list-group {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#characters li a.hasimg {
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
#characters li a.noimg {
|
||||
margin-left: 22px;
|
||||
}
|
||||
|
||||
#search .input-group {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#search .list-group .list-group-item span {
|
||||
width: 200px;
|
||||
vertical-align: middle;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#about, #edit {
|
||||
height: 500px;
|
||||
padding-right: 5px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
#about p,
|
||||
#about ul {
|
||||
color: black;
|
||||
background-color: #ddd;
|
||||
padding: 10px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#about h1 {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#about h1:first-child {
|
||||
margin-top: inherit;
|
||||
}
|
||||
|
||||
#about ul {
|
||||
list-style-type: circle;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#edit table {
|
||||
background-color: white;
|
||||
color: black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
#edit td {
|
||||
border: 1px solid black;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
#legend {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
background-color: rgb(191, 70, 39);
|
||||
color: white;
|
||||
padding: 2px 8px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.legend-color {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#legend .list-group {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
#legend .list-group-item {
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
#legend .list-group a:hover,
|
||||
#side .list-group a:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
key,title,name,house,color,firstChapter,lastChapter,firstEpisode,lastEpisode
|
||||
Robert_Baratheon,King,Robert Baratheon,House_Baratheon,#F3CD18,AGOT-0,AGOT-46,S1E01,S1E06
|
||||
Jeor_Mormont,Lord Commander,Jeor Mormont,Night%27s_Watch,#000000,AGOT-0,ASOS-33,S1E01,S3E03
|
||||
Free_folk,,Free Folk,Free_folk,#3F7AE4,AGOT-0,ASOS-72,S1E01,S4E08
|
||||
Joffrey_Baratheon,King,Joffrey Baratheon,House_Baratheon_of_King%27s_Landing,#FF2700,AGOT-47,ASOS-59,S1E07,S4E01
|
||||
Stannis_Baratheon,King,Stannis Baratheon,House_Baratheon_of_Dragonstone,#C68D14,AGOT-47,TWOW-???,S1E07,S6E10
|
||||
Renly_Baratheon,King,Renly Baratheon,House_Baratheon,#C6A714,AGOT-69,ACOK-44,S1E10,S6E10
|
||||
Robb_Stark,King,Robb Stark,House_Stark,#606060,AGOT-71,ASOS-50,,
|
||||
Balon_Greyjoy,King,Balon Greyjoy,House_Greyjoy,#C67400,ACOK-46,ASOS-44,,
|
||||
Night%27s_Watch,Leaderless,Night's Watch,Night%27s_Watch,#000000,ASOS-33,ASOS-78,,
|
||||
Jon_Snow,Lord Commander,Jon Snow,Night%27s_Watch,#000000,ASOS-79,ADWD-68,,
|
||||
Tommen_Baratheon,King,Tommen Baratheon,House_Baratheon_of_King%27s_Landing,#FF2700,ASOS-60,TWOW-???,,
|
||||
Daenerys_Targaryen,Queen,Daenerys Targaryen,House_Targaryen,#000000,ASOS-71,TWOW-???,,
|
||||
Kingsmoot,Awaiting,Kingsmoot,House_Greyjoy,#C67400,ASOS-45,AFFC-18,,
|
||||
Euron_Greyjoy,King,Euron Greyjoy,House_Greyjoy,#C67400,AFFC-19,TWOW-???,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar)-6,King,Aegon Targaryen,House_Targaryen,#000000,ADWD-61,TWOW-???,,
|
||||
Night%27s_Watch,Leaderless,Night's Watch,Night%27s_Watch,#000000,ADWD-69,TWOW-???,,
|
||||
Cersei_Lannister,Queen,Cersei Lannister,House_Lannister,#B80000,,,,
|
||||
|
@@ -0,0 +1,8 @@
|
||||
abbreviation,title,published,chapters,precedingChapters,pages,width,awoiaf,wikipedia
|
||||
AGOT,A Game of Thrones,1996,73,0,694,21%,A_Game_of_Thrones,A_Game_of_Thrones
|
||||
ACOK,A Clash of Kings,1998,70,73,768,20%,A_Clash_of_Kings,A_Clash_of_Kings
|
||||
ASOS,A Storm of Swords,2000,82,143,973,24%,A_Storm_of_Swords,A_Storm_of_Swords
|
||||
AFFC,A Feast for Crows,2005,46,225,976,13%,A_Feast_for_Crows,A_Feast_for_Crows
|
||||
ADWD,A Dance with Dragons,2011,73,271,1040,21%,A_Dance_with_Dragons,A_Dance_with_Dragons
|
||||
TWOW,The Winds of Winter,TBD,,,,,The_Winds_of_Winter,The_Winds_of_Winter
|
||||
ADOS,A Dream of Spring,TBD,,,,,A_Dream_of_Spring,
|
||||
|
@@ -0,0 +1,180 @@
|
||||
name,latitude,longitude
|
||||
Gift,76.17449795,-99.53613281
|
||||
Gift,74.36667479,-96.87011719
|
||||
Gift,74.62510096,-125.0830078
|
||||
Gift,76.36226182,-117.6855469
|
||||
Gift,76.59854507,-112.3828125
|
||||
The_North,74.36667479,-96.87011719
|
||||
The_North,74.62510096,-125.0830078
|
||||
The_North,74.05579888,-140.2880859
|
||||
The_North,71.20191973,-153.8232422
|
||||
The_North,64.86760782,-151.7138672
|
||||
The_North,65.92855384,-158.1298828
|
||||
The_North,59.73425345,-162.3486328
|
||||
The_North,53.8784404,-153.4716797
|
||||
The_North,46.34692761,-161.0302734
|
||||
The_North,43.61221677,-158.1298828
|
||||
The_North,45.61403741,-144.5947266
|
||||
The_North,40.68063803,-136.3330078
|
||||
The_North,43.73935208,-119.8974609
|
||||
The_North,53.8784404,-113.3056641
|
||||
The_North,50.81981826,-111.1962891
|
||||
The_North,52.24125615,-100.1220703
|
||||
The_North,58.28639548,-96.60644531
|
||||
The_North,57.35023748,-84.47753906
|
||||
The_North,59.62332522,-90.234375
|
||||
The_North,65.71255746,-93.88183594
|
||||
The_North,67.50856836,-82.98339844
|
||||
The_North,71.34301347,-80.30273438
|
||||
The_North,72.90672343,-82.58789063
|
||||
The_North,76.47577254,-78.046875
|
||||
The_North,77.76758238,-80.94726563
|
||||
The_North,78.59529919,-88.06640625
|
||||
The_North,77.7861905,-91.66992188
|
||||
The_North,75.58493741,-90.43945313
|
||||
The_North,74.18805166,-87.01171875
|
||||
The_North,73.35305494,-95.94726563
|
||||
Riverlands,40.68063803,-136.3330078
|
||||
Riverlands,43.73935208,-119.8974609
|
||||
Riverlands,43.03677586,-117.7001953
|
||||
Riverlands,36.98500309,-119.4580078
|
||||
Riverlands,23.84564989,-109.7900391
|
||||
Riverlands,21.41216223,-104.3408203
|
||||
Riverlands,17.76961225,-100.6933594
|
||||
Riverlands,13.62463344,-108.9550781
|
||||
Riverlands,2.240639609,-112.1191406
|
||||
Riverlands,6.271618064,-125.4345703
|
||||
Riverlands,11.13528708,-135.7177734
|
||||
Riverlands,16.9307051,-136.4208984
|
||||
Riverlands,27.56672143,-134.1357422
|
||||
Riverlands,31.46615372,-129.0380859
|
||||
Riverlands,35.06597314,-130.6201172
|
||||
Riverlands,32.65787574,-137.5634766
|
||||
Riverlands,35.99578539,-139.0576172
|
||||
Riverlands,38.30718056,-133.9599609
|
||||
Vale_of_Arryn,43.03677586,-117.7001953
|
||||
Vale_of_Arryn,36.98500309,-119.4580078
|
||||
Vale_of_Arryn,23.84564989,-109.7900391
|
||||
Vale_of_Arryn,21.41216223,-104.3408203
|
||||
Vale_of_Arryn,19.02057711,-101.7480469
|
||||
Vale_of_Arryn,20.38582538,-92.56347656
|
||||
Vale_of_Arryn,30.10711789,-78.58886719
|
||||
Vale_of_Arryn,32.54681317,-77.84179688
|
||||
Vale_of_Arryn,32.69486598,-87.20214844
|
||||
Vale_of_Arryn,36.38591277,-80.52246094
|
||||
Vale_of_Arryn,43.35713822,-80.7421875
|
||||
Vale_of_Arryn,48.92249926,-83.33496094
|
||||
Vale_of_Arryn,49.6391772,-106.7138672
|
||||
Vale_of_Arryn,48.34164617,-110.5371094
|
||||
Iron_Islands,29.80251791,-143.1884766
|
||||
Iron_Islands,33.46810796,-144.6826172
|
||||
Iron_Islands,35.53222623,-147.7587891
|
||||
Iron_Islands,35.38904997,-150.6591797
|
||||
Iron_Islands,33.32134853,-157.8662109
|
||||
Iron_Islands,29.68805275,-157.9101563
|
||||
Iron_Islands,26.62781823,-155.4492188
|
||||
Iron_Islands,26.90247689,-149.8242188
|
||||
Westerlands,6.271618064,-125.4345703
|
||||
Westerlands,11.13528708,-135.7177734
|
||||
Westerlands,16.9307051,-136.4208984
|
||||
Westerlands,27.56672143,-134.1357422
|
||||
Westerlands,26.15543797,-147.3632813
|
||||
Westerlands,24.046464,-148.3300781
|
||||
Westerlands,22.39071392,-146.3525391
|
||||
Westerlands,16.46769475,-152.6806641
|
||||
Westerlands,5.834616166,-159.0966797
|
||||
Westerlands,6.184246161,-152.3291016
|
||||
Westerlands,-4.696879027,-155.9326172
|
||||
Westerlands,-7.580327791,-155.8007813
|
||||
Westerlands,-6.140554782,-144.9902344
|
||||
Westerlands,-4.521666343,-139.2773438
|
||||
Westerlands,-3.688855143,-127.8955078
|
||||
Crownlands,17.76961225,-100.6933594
|
||||
Crownlands,13.62463344,-108.9550781
|
||||
Crownlands,2.240639609,-112.1191406
|
||||
Crownlands,-4.346411275,-104.4287109
|
||||
Crownlands,-3.864254616,-89.31152344
|
||||
Crownlands,5.222246513,-84.91699219
|
||||
Crownlands,9.145486056,-87.37792969
|
||||
Crownlands,13.45373721,-83.42285156
|
||||
Crownlands,19.68397024,-81.31347656
|
||||
Crownlands,25.12539261,-82.45605469
|
||||
Crownlands,18.02052766,-93.09082031
|
||||
Crownlands,18.93746443,-97.66113281
|
||||
The_Reach,-7.580327791,-155.8007813
|
||||
The_Reach,-6.140554782,-144.9902344
|
||||
The_Reach,-4.521666343,-139.2773438
|
||||
The_Reach,-3.688855143,-127.8955078
|
||||
The_Reach,6.271618064,-125.4345703
|
||||
The_Reach,2.240639609,-112.1191406
|
||||
The_Reach,-4.346411275,-104.4287109
|
||||
The_Reach,-9.188870084,-110.3613281
|
||||
The_Reach,-18.93746443,-109.7900391
|
||||
The_Reach,-24.20688962,-128.1152344
|
||||
The_Reach,-27.99440141,-130.1367188
|
||||
The_Reach,-32.47269502,-138.3984375
|
||||
The_Reach,-41.86956083,-140.4638672
|
||||
The_Reach,-44.96479793,-140.4638672
|
||||
The_Reach,-47.12995076,-148.4619141
|
||||
The_Reach,-50.42951795,-156.6357422
|
||||
The_Reach,-48.3708477,-159.0087891
|
||||
The_Reach,-44.93369639,-158.8769531
|
||||
The_Reach,-37.99616268,-150.6591797
|
||||
The_Reach,-39.87601942,-155.1855469
|
||||
The_Reach,-38.65119833,-157.9980469
|
||||
The_Reach,-34.27083595,-159.0966797
|
||||
The_Reach,-28.69058765,-155.2294922
|
||||
The_Reach,-28.61345942,-152.9003906
|
||||
The_Reach,-20.67390526,-152.3291016
|
||||
The_Reach,-18.0623123,-149.6484375
|
||||
The_Reach,-16.63619188,-153.0761719
|
||||
The_Reach,-10.83330598,-156.1083984
|
||||
Stormlands,-4.346411275,-104.4287109
|
||||
Stormlands,-4.346411275,-104.4287109
|
||||
Stormlands,-9.188870084,-110.3613281
|
||||
Stormlands,-18.93746443,-109.7900391
|
||||
Stormlands,-24.20688962,-128.1152344
|
||||
Stormlands,-27.99440141,-130.1367188
|
||||
Stormlands,-30.14512718,-127.5878906
|
||||
Stormlands,-27.05912578,-111.8115234
|
||||
Stormlands,-29.03696065,-107.5927734
|
||||
Stormlands,-28.65203063,-93.88183594
|
||||
Stormlands,-30.75127778,-91.46484375
|
||||
Stormlands,-28.80617351,-82.10449219
|
||||
Stormlands,-21.12549764,-79.73144531
|
||||
Stormlands,-19.97334879,-82.1484375
|
||||
Stormlands,-19.43551434,-94.36523438
|
||||
Stormlands,-17.39257927,-94.54101563
|
||||
Stormlands,-16.97274102,-90.05859375
|
||||
Stormlands,-12.94032213,-88.4765625
|
||||
Stormlands,-9.838979376,-89.97070313
|
||||
Stormlands,-10.27168123,-84.9609375
|
||||
Stormlands,-13.53920067,-84.609375
|
||||
Stormlands,-15.58071074,-83.203125
|
||||
Stormlands,-15.83453574,-80.78613281
|
||||
Stormlands,-12.42584778,-79.37988281
|
||||
Stormlands,-9.492408154,-81.48925781
|
||||
Stormlands,-7.188100871,-84.91699219
|
||||
Stormlands,-4.390228926,-83.95019531
|
||||
Stormlands,-2.679686616,-87.90527344
|
||||
Stormlands,-3.864254616,-89.31152344
|
||||
Dorne,-44.96479793,-140.4638672
|
||||
Dorne,-41.86956083,-140.4638672
|
||||
Dorne,-32.47269502,-138.3984375
|
||||
Dorne,-27.99440141,-130.1367188
|
||||
Dorne,-30.14512718,-127.5878906
|
||||
Dorne,-27.05912578,-111.8115234
|
||||
Dorne,-29.03696065,-107.5927734
|
||||
Dorne,-36.27970721,-114.6240234
|
||||
Dorne,-36.73888412,-106.7578125
|
||||
Dorne,-34.84987503,-104.9121094
|
||||
Dorne,-36.98500309,-104.6923828
|
||||
Dorne,-38.78834536,-90.89355469
|
||||
Dorne,-35.63944107,-83.73046875
|
||||
Dorne,-35.3532161,-81.40136719
|
||||
Dorne,-37.82280243,-78.94042969
|
||||
Dorne,-41.4756602,-80.390625
|
||||
Dorne,-47.5468716,-89.44335938
|
||||
Dorne,-49.95121991,-134.1796875
|
||||
Dorne,-48.2831929,-137.6513672
|
||||
Dorne,-44.02442152,-138.0908203
|
||||
|
@@ -0,0 +1,346 @@
|
||||
book,chapter,title,awoiaf
|
||||
0,0,Prologue,A_Game_of_Thrones-Prologue
|
||||
0,1,Bran I,A_Game_of_Thrones-Chapter_1
|
||||
0,2,Catelyn I,A_Game_of_Thrones-Chapter_2
|
||||
0,3,Daenerys I,A_Game_of_Thrones-Chapter_3
|
||||
0,4,Eddard I,A_Game_of_Thrones-Chapter_4
|
||||
0,5,Jon I,A_Game_of_Thrones-Chapter_5
|
||||
0,6,Catelyn II,A_Game_of_Thrones-Chapter_6
|
||||
0,7,Arya I,A_Game_of_Thrones-Chapter_7
|
||||
0,8,Bran II,A_Game_of_Thrones-Chapter_8
|
||||
0,9,Tyrion I,A_Game_of_Thrones-Chapter_9
|
||||
0,10,Jon II,A_Game_of_Thrones-Chapter_10
|
||||
0,11,Daenerys II,A_Game_of_Thrones-Chapter_11
|
||||
0,12,Eddard II,A_Game_of_Thrones-Chapter_12
|
||||
0,13,Tyrion II,A_Game_of_Thrones-Chapter_13
|
||||
0,14,Catelyn III,A_Game_of_Thrones-Chapter_14
|
||||
0,15,Sansa I,A_Game_of_Thrones-Chapter_15
|
||||
0,16,Eddard III,A_Game_of_Thrones-Chapter_16
|
||||
0,17,Bran III,A_Game_of_Thrones-Chapter_17
|
||||
0,18,Catelyn IV,A_Game_of_Thrones-Chapter_18
|
||||
0,19,Jon III,A_Game_of_Thrones-Chapter_19
|
||||
0,20,Eddard IV,A_Game_of_Thrones-Chapter_20
|
||||
0,21,Tyrion III,A_Game_of_Thrones-Chapter_21
|
||||
0,22,Arya II,A_Game_of_Thrones-Chapter_22
|
||||
0,23,Daenerys III,A_Game_of_Thrones-Chapter_23
|
||||
0,24,Bran IV,A_Game_of_Thrones-Chapter_24
|
||||
0,25,Eddard V,A_Game_of_Thrones-Chapter_25
|
||||
0,26,Jon IV,A_Game_of_Thrones-Chapter_26
|
||||
0,27,Eddard VI,A_Game_of_Thrones-Chapter_27
|
||||
0,28,Catelyn V,A_Game_of_Thrones-Chapter_28
|
||||
0,29,Sansa II,A_Game_of_Thrones-Chapter_29
|
||||
0,30,Eddard VII,A_Game_of_Thrones-Chapter_30
|
||||
0,31,Tyrion IV,A_Game_of_Thrones-Chapter_31
|
||||
0,32,Arya III,A_Game_of_Thrones-Chapter_32
|
||||
0,33,Eddard VIII,A_Game_of_Thrones-Chapter_33
|
||||
0,34,Catelyn VI,A_Game_of_Thrones-Chapter_34
|
||||
0,35,Eddard IX,A_Game_of_Thrones-Chapter_35
|
||||
0,36,Daenerys IV,A_Game_of_Thrones-Chapter_36
|
||||
0,37,Bran V,A_Game_of_Thrones-Chapter_37
|
||||
0,38,Tyrion V,A_Game_of_Thrones-Chapter_38
|
||||
0,39,Eddard X,A_Game_of_Thrones-Chapter_39
|
||||
0,40,Catelyn VII,A_Game_of_Thrones-Chapter_40
|
||||
0,41,Jon V,A_Game_of_Thrones-Chapter_41
|
||||
0,42,Tyrion VI,A_Game_of_Thrones-Chapter_42
|
||||
0,43,Eddard XI,A_Game_of_Thrones-Chapter_43
|
||||
0,44,Sansa III,A_Game_of_Thrones-Chapter_44
|
||||
0,45,Eddard XII,A_Game_of_Thrones-Chapter_45
|
||||
0,46,Daenerys V,A_Game_of_Thrones-Chapter_46
|
||||
0,47,Eddard XIII,A_Game_of_Thrones-Chapter_47
|
||||
0,48,Jon VI,A_Game_of_Thrones-Chapter_48
|
||||
0,49,Eddard XIV,A_Game_of_Thrones-Chapter_49
|
||||
0,50,Arya IV,A_Game_of_Thrones-Chapter_50
|
||||
0,51,Sansa IV,A_Game_of_Thrones-Chapter_51
|
||||
0,52,Jon VII,A_Game_of_Thrones-Chapter_52
|
||||
0,53,Bran VI,A_Game_of_Thrones-Chapter_53
|
||||
0,54,Daenerys VI,A_Game_of_Thrones-Chapter_54
|
||||
0,55,Catelyn VIII,A_Game_of_Thrones-Chapter_55
|
||||
0,56,Tyrion VII,A_Game_of_Thrones-Chapter_56
|
||||
0,57,Sansa V,A_Game_of_Thrones-Chapter_57
|
||||
0,58,Eddard XV,A_Game_of_Thrones-Chapter_58
|
||||
0,59,Catelyn IX,A_Game_of_Thrones-Chapter_59
|
||||
0,60,Jon VIII,A_Game_of_Thrones-Chapter_60
|
||||
0,61,Daenerys VII,A_Game_of_Thrones-Chapter_61
|
||||
0,62,Tyrion VIII,A_Game_of_Thrones-Chapter_62
|
||||
0,63,Catelyn X,A_Game_of_Thrones-Chapter_63
|
||||
0,64,Daenerys VIII,A_Game_of_Thrones-Chapter_64
|
||||
0,65,Arya V,A_Game_of_Thrones-Chapter_65
|
||||
0,66,Bran VII,A_Game_of_Thrones-Chapter_66
|
||||
0,67,Sansa VI,A_Game_of_Thrones-Chapter_67
|
||||
0,68,Daenerys IX,A_Game_of_Thrones-Chapter_68
|
||||
0,69,Tyrion IX,A_Game_of_Thrones-Chapter_69
|
||||
0,70,Jon IX,A_Game_of_Thrones-Chapter_70
|
||||
0,71,Catelyn XI,A_Game_of_Thrones-Chapter_71
|
||||
0,72,Daenerys X,A_Game_of_Thrones-Chapter_71
|
||||
1,0,Prologue,A_Clash_of_Kings-Prologue
|
||||
1,1,Arya I,A_Clash_of_Kings-Chapter_1
|
||||
1,2,Sansa I,A_Clash_of_Kings-Chapter_2
|
||||
1,3,Tyrion I,A_Clash_of_Kings-Chapter_3
|
||||
1,4,Bran I,A_Clash_of_Kings-Chapter_4
|
||||
1,5,Arya II,A_Clash_of_Kings-Chapter_5
|
||||
1,6,Jon I,A_Clash_of_Kings-Chapter_6
|
||||
1,7,Catelyn I,A_Clash_of_Kings-Chapter_7
|
||||
1,8,Tyrion II,A_Clash_of_Kings-Chapter_8
|
||||
1,9,Arya III,A_Clash_of_Kings-Chapter_9
|
||||
1,10,Davos I,A_Clash_of_Kings-Chapter_10
|
||||
1,11,Theon I,A_Clash_of_Kings-Chapter_11
|
||||
1,12,Daenerys I,A_Clash_of_Kings-Chapter_12
|
||||
1,13,Jon II,A_Clash_of_Kings-Chapter_13
|
||||
1,14,Arya IV,A_Clash_of_Kings-Chapter_14
|
||||
1,15,Tyrion III,A_Clash_of_Kings-Chapter_15
|
||||
1,16,Bran II,A_Clash_of_Kings-Chapter_16
|
||||
1,17,Tyrion IV,A_Clash_of_Kings-Chapter_17
|
||||
1,18,Sansa II,A_Clash_of_Kings-Chapter_18
|
||||
1,19,Arya V,A_Clash_of_Kings-Chapter_19
|
||||
1,20,Tyrion V,A_Clash_of_Kings-Chapter_20
|
||||
1,21,Bran III,A_Clash_of_Kings-Chapter_21
|
||||
1,22,Catelyn II,A_Clash_of_Kings-Chapter_22
|
||||
1,23,Jon III,A_Clash_of_Kings-Chapter_23
|
||||
1,24,Theon II,A_Clash_of_Kings-Chapter_24
|
||||
1,25,Tyrion VI,A_Clash_of_Kings-Chapter_25
|
||||
1,26,Arya VI,A_Clash_of_Kings-Chapter_26
|
||||
1,27,Daenerys II,A_Clash_of_Kings-Chapter_27
|
||||
1,28,Bran IV,A_Clash_of_Kings-Chapter_28
|
||||
1,29,Tyrion VII,A_Clash_of_Kings-Chapter_29
|
||||
1,30,Arya VII,A_Clash_of_Kings-Chapter_30
|
||||
1,31,Catelyn III,A_Clash_of_Kings-Chapter_31
|
||||
1,32,Sansa III,A_Clash_of_Kings-Chapter_32
|
||||
1,33,Catelyn IV,A_Clash_of_Kings-Chapter_33
|
||||
1,34,Jon IV,A_Clash_of_Kings-Chapter_34
|
||||
1,35,Bran V,A_Clash_of_Kings-Chapter_35
|
||||
1,36,Tyrion VIII,A_Clash_of_Kings-Chapter_36
|
||||
1,37,Theon III,A_Clash_of_Kings-Chapter_37
|
||||
1,38,Arya VIII,A_Clash_of_Kings-Chapter_38
|
||||
1,39,Catelyn V,A_Clash_of_Kings-Chapter_39
|
||||
1,40,Daenerys III,A_Clash_of_Kings-Chapter_40
|
||||
1,41,Tyrion IX,A_Clash_of_Kings-Chapter_41
|
||||
1,42,Davos II,A_Clash_of_Kings-Chapter_42
|
||||
1,43,Jon V,A_Clash_of_Kings-Chapter_43
|
||||
1,44,Tyrion X,A_Clash_of_Kings-Chapter_44
|
||||
1,45,Catelyn VI,A_Clash_of_Kings-Chapter_45
|
||||
1,46,Bran VI,A_Clash_of_Kings-Chapter_46
|
||||
1,47,Arya IX,A_Clash_of_Kings-Chapter_47
|
||||
1,48,Daenerys IV,A_Clash_of_Kings-Chapter_48
|
||||
1,49,Tyrion XI,A_Clash_of_Kings-Chapter_49
|
||||
1,50,Theon IV,A_Clash_of_Kings-Chapter_50
|
||||
1,51,Jon VI,A_Clash_of_Kings-Chapter_51
|
||||
1,52,Sansa IV,A_Clash_of_Kings-Chapter_52
|
||||
1,53,Jon VII,A_Clash_of_Kings-Chapter_53
|
||||
1,54,Tyrion XII,A_Clash_of_Kings-Chapter_54
|
||||
1,55,Catelyn VII,A_Clash_of_Kings-Chapter_55
|
||||
1,56,Theon V,A_Clash_of_Kings-Chapter_56
|
||||
1,57,Sansa V,A_Clash_of_Kings-Chapter_57
|
||||
1,58,Davos III,A_Clash_of_Kings-Chapter_58
|
||||
1,59,Tyrion XIII,A_Clash_of_Kings-Chapter_59
|
||||
1,60,Sansa VI,A_Clash_of_Kings-Chapter_60
|
||||
1,61,Tyrion XIV,A_Clash_of_Kings-Chapter_61
|
||||
1,62,Sansa VII,A_Clash_of_Kings-Chapter_62
|
||||
1,63,Daenerys V,A_Clash_of_Kings-Chapter_63
|
||||
1,64,Arya X,A_Clash_of_Kings-Chapter_64
|
||||
1,65,Sansa VIII,A_Clash_of_Kings-Chapter_65
|
||||
1,66,Theon VI,A_Clash_of_Kings-Chapter_66
|
||||
1,67,Tyrion XV,A_Clash_of_Kings-Chapter_67
|
||||
1,68,Jon VIII,A_Clash_of_Kings-Chapter_68
|
||||
1,69,Bran VII,A_Clash_of_Kings-Chapter_69
|
||||
2,0,Prologue,A_Storm_of_Swords-Prologue
|
||||
2,1,Jaime I,A_Storm_of_Swords-Chapter_1
|
||||
2,2,Catelyn I,A_Storm_of_Swords-Chapter_2
|
||||
2,3,Arya I,A_Storm_of_Swords-Chapter_3
|
||||
2,4,Tyrion I,A_Storm_of_Swords-Chapter_4
|
||||
2,5,Davos I,A_Storm_of_Swords-Chapter_5
|
||||
2,6,Sansa I,A_Storm_of_Swords-Chapter_6
|
||||
2,7,Jon I,A_Storm_of_Swords-Chapter_7
|
||||
2,8,Daenerys I,A_Storm_of_Swords-Chapter_8
|
||||
2,9,Bran I,A_Storm_of_Swords-Chapter_9
|
||||
2,10,Davos II,A_Storm_of_Swords-Chapter_10
|
||||
2,11,Jaime II,A_Storm_of_Swords-Chapter_11
|
||||
2,12,Tyrion II,A_Storm_of_Swords-Chapter_12
|
||||
2,13,Arya II,A_Storm_of_Swords-Chapter_13
|
||||
2,14,Catelyn II,A_Storm_of_Swords-Chapter_14
|
||||
2,15,Jon II,A_Storm_of_Swords-Chapter_15
|
||||
2,16,Sansa II,A_Storm_of_Swords-Chapter_16
|
||||
2,17,Arya III,A_Storm_of_Swords-Chapter_17
|
||||
2,18,Samwell I,A_Storm_of_Swords-Chapter_18
|
||||
2,19,Tyrion III,A_Storm_of_Swords-Chapter_19
|
||||
2,20,Catelyn III,A_Storm_of_Swords-Chapter_20
|
||||
2,21,Jaime III,A_Storm_of_Swords-Chapter_21
|
||||
2,22,Arya IV,A_Storm_of_Swords-Chapter_22
|
||||
2,23,Daenerys II,A_Storm_of_Swords-Chapter_23
|
||||
2,24,Bran II,A_Storm_of_Swords-Chapter_24
|
||||
2,25,Davos III,A_Storm_of_Swords-Chapter_25
|
||||
2,26,Jon III,A_Storm_of_Swords-Chapter_26
|
||||
2,27,Daenerys III,A_Storm_of_Swords-Chapter_27
|
||||
2,28,Sansa III,A_Storm_of_Swords-Chapter_28
|
||||
2,29,Arya V,A_Storm_of_Swords-Chapter_29
|
||||
2,30,Jon IV,A_Storm_of_Swords-Chapter_30
|
||||
2,31,Jaime IV,A_Storm_of_Swords-Chapter_31
|
||||
2,32,Tyrion IV,A_Storm_of_Swords-Chapter_32
|
||||
2,33,Samwell II,A_Storm_of_Swords-Chapter_33
|
||||
2,34,Arya VI,A_Storm_of_Swords-Chapter_34
|
||||
2,35,Catelyn IV,A_Storm_of_Swords-Chapter_35
|
||||
2,36,Davos IV,A_Storm_of_Swords-Chapter_36
|
||||
2,37,Jaime V,A_Storm_of_Swords-Chapter_37
|
||||
2,38,Tyrion V,A_Storm_of_Swords-Chapter_38
|
||||
2,39,Arya VII,A_Storm_of_Swords-Chapter_39
|
||||
2,40,Bran III,A_Storm_of_Swords-Chapter_40
|
||||
2,41,Jon V,A_Storm_of_Swords-Chapter_41
|
||||
2,42,Daenerys IV,A_Storm_of_Swords-Chapter_42
|
||||
2,43,Arya VIII,A_Storm_of_Swords-Chapter_43
|
||||
2,44,Jaime VI,A_Storm_of_Swords-Chapter_44
|
||||
2,45,Catelyn V,A_Storm_of_Swords-Chapter_45
|
||||
2,46,Samwell III,A_Storm_of_Swords-Chapter_46
|
||||
2,47,Arya IX,A_Storm_of_Swords-Chapter_47
|
||||
2,48,Jon VI,A_Storm_of_Swords-Chapter_48
|
||||
2,49,Catelyn VI,A_Storm_of_Swords-Chapter_49
|
||||
2,50,Arya X,A_Storm_of_Swords-Chapter_50
|
||||
2,51,Catelyn VII,A_Storm_of_Swords-Chapter_51
|
||||
2,52,Arya XI,A_Storm_of_Swords-Chapter_52
|
||||
2,53,Tyrion VI,A_Storm_of_Swords-Chapter_53
|
||||
2,54,Davos V,A_Storm_of_Swords-Chapter_54
|
||||
2,55,Jon VII,A_Storm_of_Swords-Chapter_55
|
||||
2,56,Bran IV,A_Storm_of_Swords-Chapter_56
|
||||
2,57,Daenerys V,A_Storm_of_Swords-Chapter_57
|
||||
2,58,Tyrion VII,A_Storm_of_Swords-Chapter_58
|
||||
2,59,Sansa IV,A_Storm_of_Swords-Chapter_59
|
||||
2,60,Tyrion VIII,A_Storm_of_Swords-Chapter_60
|
||||
2,61,Sansa V,A_Storm_of_Swords-Chapter_61
|
||||
2,62,Jaime VII,A_Storm_of_Swords-Chapter_62
|
||||
2,63,Davos VI,A_Storm_of_Swords-Chapter_63
|
||||
2,64,Jon VIII,A_Storm_of_Swords-Chapter_64
|
||||
2,65,Arya XII,A_Storm_of_Swords-Chapter_65
|
||||
2,66,Tyrion IX,A_Storm_of_Swords-Chapter_66
|
||||
2,67,Jaime VIII,A_Storm_of_Swords-Chapter_67
|
||||
2,68,Sansa VI,A_Storm_of_Swords-Chapter_68
|
||||
2,69,Jon IX,A_Storm_of_Swords-Chapter_69
|
||||
2,70,Tyrion X,A_Storm_of_Swords-Chapter_70
|
||||
2,71,Daenerys VI,A_Storm_of_Swords-Chapter_71
|
||||
2,72,Jaime IX,A_Storm_of_Swords-Chapter_72
|
||||
2,73,Jon X,A_Storm_of_Swords-Chapter_73
|
||||
2,74,Arya XIII,A_Storm_of_Swords-Chapter_74
|
||||
2,75,Samwell IV,A_Storm_of_Swords-Chapter_75
|
||||
2,76,Jon XI,A_Storm_of_Swords-Chapter_76
|
||||
2,77,Tyrion XI,A_Storm_of_Swords-Chapter_77
|
||||
2,78,Samwell V,A_Storm_of_Swords-Chapter_78
|
||||
2,79,Jon XII,A_Storm_of_Swords-Chapter_79
|
||||
2,80,Sansa VII,A_Storm_of_Swords-Chapter_80
|
||||
2,81,Epilogue,A_Storm_of_Swords-Epilogue
|
||||
3,0,Prologue,A_Feast_for_Crows-Prologue
|
||||
3,1,The Prophet,A_Feast_for_Crows-Chapter_1
|
||||
3,2,The Captain Of Guards,A_Feast_for_Crows-Chapter_2
|
||||
3,3,Cersei I,A_Feast_for_Crows-Chapter_3
|
||||
3,4,Brienne I,A_Feast_for_Crows-Chapter_4
|
||||
3,5,Samwell I,A_Feast_for_Crows-Chapter_5
|
||||
3,6,Arya I,A_Feast_for_Crows-Chapter_6
|
||||
3,7,Cersei II,A_Feast_for_Crows-Chapter_7
|
||||
3,8,Jaime I,A_Feast_for_Crows-Chapter_8
|
||||
3,9,Brienne II,A_Feast_for_Crows-Chapter_9
|
||||
3,10,Sansa I,A_Feast_for_Crows-Chapter_10
|
||||
3,11,Kraken's Daughter,A_Feast_for_Crows-Chapter_11
|
||||
3,12,Cersei III,A_Feast_for_Crows-Chapter_12
|
||||
3,13,The Soiled Knight,A_Feast_for_Crows-Chapter_13
|
||||
3,14,Brienne III,A_Feast_for_Crows-Chapter_14
|
||||
3,15,Samwell II,A_Feast_for_Crows-Chapter_15
|
||||
3,16,Jaime II,A_Feast_for_Crows-Chapter_16
|
||||
3,17,Cersei IV,A_Feast_for_Crows-Chapter_17
|
||||
3,18,The Iron Captain,A_Feast_for_Crows-Chapter_18
|
||||
3,19,The Drowned Man,A_Feast_for_Crows-Chapter_19
|
||||
3,20,Brienne IV,A_Feast_for_Crows-Chapter_20
|
||||
3,21,The Queenmaker,A_Feast_for_Crows-Chapter_21
|
||||
3,22,Arya II,A_Feast_for_Crows-Chapter_22
|
||||
3,23,Alayne I,A_Feast_for_Crows-Chapter_23
|
||||
3,24,Cersei V,A_Feast_for_Crows-Chapter_24
|
||||
3,25,Brienne V,A_Feast_for_Crows-Chapter_25
|
||||
3,26,Samwell III,A_Feast_for_Crows-Chapter_26
|
||||
3,27,Jaime III,A_Feast_for_Crows-Chapter_27
|
||||
3,28,Cersei VI,A_Feast_for_Crows-Chapter_28
|
||||
3,29,The Reaver,A_Feast_for_Crows-Chapter_29
|
||||
3,30,Jaime IV,A_Feast_for_Crows-Chapter_30
|
||||
3,31,Brienne VI,A_Feast_for_Crows-Chapter_31
|
||||
3,32,Cersei VII,A_Feast_for_Crows-Chapter_32
|
||||
3,33,Jaime V,A_Feast_for_Crows-Chapter_33
|
||||
3,34,Cat Of The Canals,A_Feast_for_Crows-Chapter_34
|
||||
3,35,Samwell IV,A_Feast_for_Crows-Chapter_35
|
||||
3,36,Cersei VIII,A_Feast_for_Crows-Chapter_36
|
||||
3,37,Brienne VII,A_Feast_for_Crows-Chapter_37
|
||||
3,38,Jaime VI,A_Feast_for_Crows-Chapter_38
|
||||
3,39,Cersei IX,A_Feast_for_Crows-Chapter_39
|
||||
3,40,Princess in the Tower,A_Feast_for_Crows-Chapter_40
|
||||
3,41,Alayne II,A_Feast_for_Crows-Chapter_41
|
||||
3,42,Brienne VIII,A_Feast_for_Crows-Chapter_42
|
||||
3,43,Cersei X,A_Feast_for_Crows-Chapter_43
|
||||
3,44,Jaime VII,A_Feast_for_Crows-Chapter_44
|
||||
3,45,Samwell V,A_Feast_for_Crows-Chapter_45
|
||||
4,0,Prologue,Prologue_(A_Dance_with_Dragons)
|
||||
4,1,Tyrion I,Tyrion_I_(A_Dance_with_Dragons)
|
||||
4,2,Daenerys I,Daenerys_I_(A_Dance_with_Dragons)
|
||||
4,3,Jon I,Jon_I_(A_Dance_with_Dragons)
|
||||
4,4,Bran I,Bran_I_(A_Dance_with_Dragons)
|
||||
4,5,Tyrion II,Tyrion_II_(A_Dance_with_Dragons)
|
||||
4,6,The Merchant's Man,The_Merchant%27s_Man_(A_Dance_with_Dragons)
|
||||
4,7,Jon II,Jon_II_(A_Dance_with_Dragons)
|
||||
4,8,Tyrion III,Tyrion_III_(A_Dance_with_Dragons)
|
||||
4,9,Davos I,Davos_I_(A_Dance_with_Dragons)
|
||||
4,10,Jon III,Jon_III_(A_Dance_with_Dragons)
|
||||
4,11,Daenerys II,Daenerys_II_(A_Dance_with_Dragons)
|
||||
4,12,Reek I,Reek_I_(A_Dance_with_Dragons)
|
||||
4,13,Bran II,Bran_II_(A_Dance_with_Dragons)
|
||||
4,14,Tyrion IV,Tyrion_IV_(A_Dance_with_Dragons)
|
||||
4,15,Davos II,Davos_II_(A_Dance_with_Dragons)
|
||||
4,16,Daenerys III,Daenerys_III_(A_Dance_with_Dragons)
|
||||
4,17,Jon IV,Jon_IV_(A_Dance_with_Dragons)
|
||||
4,18,Tyrion V,Tyrion_V_(A_Dance_with_Dragons)
|
||||
4,19,Davos III,Davos_III_(A_Dance_with_Dragons)
|
||||
4,20,Reek II,Reek_II_(A_Dance_with_Dragons)
|
||||
4,21,Jon V,Jon_V_(A_Dance_with_Dragons)
|
||||
4,22,Tyrion VI,Tyrion_VI_(A_Dance_with_Dragons)
|
||||
4,23,Daenerys IV,Daenerys_IV_(A_Dance_with_Dragons)
|
||||
4,24,The Lost Lord,The_Lost_Lord_(A_Dance_with_Dragons)
|
||||
4,25,The Windblown,The_Windblown_(A_Dance_with_Dragons)
|
||||
4,26,The Wayward Bride,The_Wayward_Bride_(A_Dance_with_Dragons)
|
||||
4,27,Tyrion VII,Tyrion_VII_(A_Dance_with_Dragons)
|
||||
4,28,Jon VI,Jon_VI_(A_Dance_with_Dragons)
|
||||
4,29,Davos IV,Davos_IV_(A_Dance_with_Dragons)
|
||||
4,30,Daenerys V,Daenerys_V_(A_Dance_with_Dragons)
|
||||
4,31,Melisandre I,Melisandre_I_(A_Dance_with_Dragons)
|
||||
4,32,Reek III,Reek_III_(A_Dance_with_Dragons)
|
||||
4,33,Tyrion VIII,Tyrion_VIII_(A_Dance_with_Dragons)
|
||||
4,34,Bran III,Bran_III_(A_Dance_with_Dragons)
|
||||
4,35,Jon VII,Jon_VII_(A_Dance_with_Dragons)
|
||||
4,36,Daenerys VI,Daenerys_VI_(A_Dance_with_Dragons)
|
||||
4,37,Prince of Winterfell,The_Prince_of_Winterfell_(A_Dance_with_Dragons)
|
||||
4,38,The Watcher,The_Watcher_(A_Dance_with_Dragons)
|
||||
4,39,Jon VIII,Jon_VIII_(A_Dance_with_Dragons)
|
||||
4,40,Tyrion IX,Tyrion_IX_(A_Dance_with_Dragons)
|
||||
4,41,The Turncloak,The_Turncloak_(A_Dance_with_Dragons)
|
||||
4,42,The King's Prize,The_King's_Prize_(A_Dance_with_Dragons)
|
||||
4,43,Daenerys VII,Daenerys_VII_(A_Dance_with_Dragons)
|
||||
4,44,Jon IX,Jon_IX_(A_Dance_with_Dragons)
|
||||
4,45,The Blind Girl,The_Blind_Girl_(A_Dance_with_Dragons)
|
||||
4,46,A Ghost In Winterfell,A_Ghost_in_Winterfell_(A_Dance_with_Dragons)
|
||||
4,47,Tyrion X,Tyrion_X_(A_Dance_with_Dragons)
|
||||
4,48,Jaime I,Jaime_I_(A_Dance_with_Dragons)
|
||||
4,49,Jon X,Jon_X_(A_Dance_with_Dragons)
|
||||
4,50,Daenerys VIII,Daenerys_VIII_(A_Dance_with_Dragons)
|
||||
4,51,Theon I,Theon_I_(A_Dance_with_Dragons)
|
||||
4,52,Daenerys IX,Daenerys_IX_(A_Dance_with_Dragons)
|
||||
4,53,Jon XI,Jon_XI_(A_Dance_with_Dragons)
|
||||
4,54,Cersei I,Cersei_I_(A_Dance_with_Dragons)
|
||||
4,55,The Queensguard,The_Queensguard_(A_Dance_with_Dragons)
|
||||
4,56,The Iron Suitor,The_Iron_Suitor_(A_Dance_with_Dragons)
|
||||
4,57,Tyrion XI,Tyrion_XI_(A_Dance_with_Dragons)
|
||||
4,58,Jon XII,Jon_XII_(A_Dance_with_Dragons)
|
||||
4,59,Discarded Knight,The_Discarded_Knight_(A_Dance_with_Dragons)
|
||||
4,60,The Spurned Suitor,The_Spurned_Suitor_(A_Dance_with_Dragons)
|
||||
4,61,The Griffin Reborn,The_Griffin_Reborn_(A_Dance_with_Dragons)
|
||||
4,62,The Sacrifice,The_Sacrifice_(A_Dance_with_Dragons)
|
||||
4,63,Victarion I,Victarion_I_(A_Dance_with_Dragons)
|
||||
4,64,The Ugly Little Girl,The_Ugly_Little_Girl_(A_Dance_with_Dragons)
|
||||
4,65,Cersei II,Cersei_II_(A_Dance_with_Dragons)
|
||||
4,66,Tyrion XII,Tyrion_XII_(A_Dance_with_Dragons)
|
||||
4,67,The Kingbreaker,The_Kingbreaker_(A_Dance_with_Dragons)
|
||||
4,68,The Dragontamer,The_Dragontamer_(A_Dance_with_Dragons)
|
||||
4,69,Jon XIII,Jon_XIII_(A_Dance_with_Dragons)
|
||||
4,70,The Queen's Hand,The_Queen%27s_Hand_(A_Dance_with_Dragons)
|
||||
4,71,Daenerys X,Daenerys_X_(A_Dance_with_Dragons)
|
||||
4,72,Epilogue,Epilogue_(A_Dance_with_Dragons)
|
||||
5,999,WOW-?: Theon I,Theon_I_(The_Winds_of_Winter)
|
||||
|
@@ -0,0 +1,59 @@
|
||||
key,name,letter,markerColor,letterColor,house,firstChapter,firstEpisode
|
||||
Eddard_Stark,Eddard Stark,E,#505050,#FFFFFF,House_Stark,,
|
||||
Catelyn_Stark,Catelyn Stark,C,#635C77,#FFFFFF,House_Stark,,
|
||||
Robb_Stark,Robb Stark,R,#606060,#FFFFFF,House_Stark,,
|
||||
Sansa_Stark,Sansa Stark,S,#707070,#FFFFFF,House_Stark,,
|
||||
Bran_Stark,Bran Stark,B,#808080,#FFFFFF,House_Stark,,
|
||||
Arya_Stark,Arya Stark,A,#909090,#FFFFFF,House_Stark,,
|
||||
Rickon_Stark,Rickon Stark,r,#A0A0A0,#FFFFFF,House_Stark,,
|
||||
Benjen_Stark,Benjen Stark,U,#B0B0B0,#FFFFFF,House_Stark,,
|
||||
Jon_Snow,Jon Snow,J,#837171,#FFFFFF,House_Stark,,
|
||||
Viserys_Targaryen,Viserys Targaryen,V,#000000,#FF0000,House_Targaryen,,
|
||||
Daenerys_Targaryen,Daenerys Targaryen,D,#000000,#FF0000,House_Targaryen,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar),Aegon Targaryen,A,#000000,#FF0000,House_Targaryen,ADWD-18,never
|
||||
Drogon,Drogon,d,#000000,#FF0000,,AGOT-72,S1E10
|
||||
Rhaegal,Rhaegal,r,#000000,#FF0000,,AGOT-72,S1E10
|
||||
Viserion,Viserion,v,#000000,#FF0000,,AGOT-72,S1E10
|
||||
Tywin_Lannister,Tywin Lannister,T,#FF0000,#FFFF00,House_Lannister,,
|
||||
Jaime_Lannister,Jaime Lannister,J,#D80000,#FFFF00,House_Lannister,,
|
||||
Cersei_Lannister,Cersei Lannister,C,#B80000,#FFFF00,House_Lannister,,
|
||||
Tyrion_Lannister,Tyrion Lannister,T,#A00000,#FFFF00,House_Lannister,,
|
||||
Lancel_Lannister,Lancel Lannister,L,#900000,#FFFF00,House_Lannister,,
|
||||
Joffrey_Baratheon,Joffrey Baratheon,j,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,,
|
||||
Myrcella_Baratheon,Myrcella Baratheon,m,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,,
|
||||
Tommen_Baratheon,Tommen Baratheon,t,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,,
|
||||
Robert_Baratheon,Robert Baratheon,R,#F3CD18,#000000,House_Baratheon,,
|
||||
Stannis_Baratheon,Stannis Baratheon,S,#C68D14,#000000,House_Baratheon_of_Dragonstone,,
|
||||
Renly_Baratheon,Renly Baratheon,r,#C6A714,#000000,House_Baratheon,,
|
||||
Loras_Tyrell,Loras Tyrell,L,#006600,#FFFF00,House_Tyrell,,
|
||||
Margaery_Tyrell,Margaery Tyrell,M,#027C02,#FFFF00,House_Tyrell,,
|
||||
Olenna_Tyrell,Olenna Tyrell,O,#0D8F0D,#FFFF00,House_Tyrell,,
|
||||
Balon_Greyjoy,Balon Greyjoy,B,#FF9700,#000000,House_Greyjoy,,
|
||||
Theon_Greyjoy,Theon Greyjoy,T,#FF9700,#000000,House_Greyjoy,,
|
||||
Asha_Greyjoy,Yara/Asha Greyjoy,Y,#E68801,#000000,House_Greyjoy,,
|
||||
Euron_Greyjoy,Euron Greyjoy,E,#C67400,#000000,House_Greyjoy,,
|
||||
Victarion_Greyjoy,Victarion Greyjoy,V,#D78004,#000000,House_Greyjoy,,
|
||||
Brienne_of_Tarth,Brienne of Tarth,B,#FF00FF,#FFFFFF,House_Tarth,,
|
||||
Davos,Davos Seaworth,D,#505050,#FFFFFF,House_Seaworth,,
|
||||
Samwell_Tarly,Samwell Tarly,S,#006300,#000000,House_Tarly,,
|
||||
Barristan_Selmy,Barristan Selmy,B,#A55D34,#FCFC06,House_Selmy,,
|
||||
Petyr_Baelish,Petyr Baelish,P,#006300,#FFFFFF,House_Baelish,,
|
||||
Jeor_Mormont,Jeor Mormont,J,#66C366,#000000,House_Mormont,,
|
||||
Jorah_Mormont,Jorah Mormont,J,#66C366,#000000,House_Mormont,,
|
||||
Quentyn_Martell,Quentyn Martell,Q,#AD011B,#000000,House_Martell,,
|
||||
Arianne_Martell,Arianne Martell,A,#AD011B,#000000,House_Martell,0,never
|
||||
Oberyn_Martell,Oberyn Martell,O,#96051A,#000000,House_Martell,,
|
||||
Ellaria_Sand,Ellaria Sand,E,#942938,#000000,House_Martell,,
|
||||
Sandor_Clegane,Sandor Clegane,S,#FCFF00,#2D2D2D,House_Clegane,,
|
||||
Gregor_Clegane,Gregor Clegane,G,#EAED00,#2D2D2D,House_Clegane,,
|
||||
Roose_Bolton,Roose Bolton,R,#E24334,#000000,House_Bolton,,
|
||||
Ramsay_Snow,Ramsay Snow,r,#CA4133,#000000,House_Bolton,,
|
||||
Gendry,Gendry,G,#FFD200,#000000,,,
|
||||
Bronn,Bronn,B,#742296,#FFFFFF,,,
|
||||
Melisandre,Melisandre,M,#FF0000,#FFFFFF,,,
|
||||
Varys,Varys,V,#9D0083,#000000,,,
|
||||
Qyburn,Qyburn,Q,#A639D3,#FFFFFF,,,
|
||||
Osha,Osha,O,#0043BD,#FFFFFF,,,
|
||||
Mance_Rayder,Mance Rayder,M,#3F7AE4,#FFFFFF,,,
|
||||
Ygritte,Ygritte,Y,#4485FC,#FFFFFF,,,
|
||||
Tormund,Tormund,T,#3B6FCF,#FFFFFF,,,
|
||||
|
@@ -0,0 +1,61 @@
|
||||
season,episode,title,awoiaf,wikipedia
|
||||
1,1,Winter Is Coming,Winter_Is_Coming,
|
||||
1,2,The Kingsroad,The_Kingsroad,
|
||||
1,3,Lord Snow,Lord_Snow,
|
||||
1,4,Cripplesˌ Bastardsˌ & Broken Things,"Cripples,_Bastards,_and_Broken_Things",
|
||||
1,5,The Wolf and the Lion,The_Wolf_and_the_Lion,
|
||||
1,6,A Golden Crown,A_Golden_Crown,
|
||||
1,7,You Win or You Die,You_Win_or_You_Die,
|
||||
1,8,The Pointy End,The_Pointy_End,
|
||||
1,9,Baelor,Baelor_(TV),
|
||||
1,10,Fire and Blood,Fire_and_Blood_(Game_of_Thrones),
|
||||
2,1,The North Remembers,The_North_Remembers_(TV),
|
||||
2,2,The Night Lands,The_Night_Lands_(TV),
|
||||
2,3,What Is Dead May Never Die,What_Is_Dead_May_Never_Die_(TV),
|
||||
2,4,Garden of Bones,Garden_of_Bones_(TV),
|
||||
2,5,The Ghost of Harrenhal,The_Ghost_of_Harrenhal_(TV),
|
||||
2,6,The Old Gods and the New,The_Old_Gods_and_the_New_(TV),
|
||||
2,7,A Man Without Honor,A_Man_Without_Honor_(TV),
|
||||
2,8,The Prince of Winterfell,The_Prince_of_Winterfell_(TV),
|
||||
2,9,Blackwater,Blackwater_(TV),
|
||||
2,10,Valar Morghulis,Valar_Morghulis_(TV),
|
||||
3,1,Valar Dohaeris,Valar_Dohaeris_(TV),
|
||||
3,2,Dark Wingsˌ Dark Words,"Dark_Wings,_Dark_Words",
|
||||
3,3,Walk of Punishment,Walk_of_Punishment,
|
||||
3,4,And Now His Watch is Ended,And_Now_His_Watch_Is_Ended,
|
||||
3,5,Kissed by Fire,Kissed_by_Fire,
|
||||
3,6,The Climb,The_Climb,
|
||||
3,7,The Bear and the Maiden Fair,The_Bear_and_the_Maiden_Fair_(TV),
|
||||
3,8,Second Sons,Second_Sons_(TV),
|
||||
3,9,The Rains of Castamere,The_Rains_of_Castamere_(TV),
|
||||
3,10,Mhysa,Mhysa_(TV),
|
||||
4,1,Two Swords,Two_Swords,
|
||||
4,2,The Lion and the Rose,The_Lion_and_the_Rose,
|
||||
4,3,Breaker of Chains,Breaker_of_Chains,
|
||||
4,4,Oathkeeper,Oathkeeper_(TV),
|
||||
4,5,First of His Name,First_of_His_Name,
|
||||
4,6,The Laws of Gods and Men,The_Laws_of_Gods_and_Men,
|
||||
4,7,Mockingbird,Mockingbird_(TV),Mockingbird_(Game_of_Thrones)
|
||||
4,8,The Mountain and the Viper,The_Mountain_and_the_Viper,The_Mountain_and_the_Viper
|
||||
4,9,The Watchers on the Wall,The_Watchers_on_the_Wall,The_Watchers_on_the_Wall
|
||||
4,10,The Children,The_Children,The_Children_(Game_of_Thrones)
|
||||
5,1,The Wars to Come,The_Wars_to_Come,The_Wars_to_Come
|
||||
5,2,The House of Black and White,The_House_of_Black_and_White,The_House_of_Black_and_White
|
||||
5,3,High Sparrow,High_Sparrow_(TV),High_Sparrow
|
||||
5,4,The Sons of the Harpy,Sons_of_the_Harpy_(TV),Sons_of_the_Harpy
|
||||
5,5,Kill the Boy,Kill_the_Boy,Kill_the_Boy
|
||||
5,6,Unbowedˌ Unbentˌ Unbroken,"Unbowed,_Unbent,_Unbroken","Unbowed,_Unbent,_Unbroken"
|
||||
5,7,The Gift,The_Gift,The_Gift_(Game_of_Thrones)
|
||||
5,8,Hardhome,Hardhome_(TV),Hardhome
|
||||
5,9,The Dance of Dragons,The_Dance_of_Dragons,The_Dance_of_Dragons
|
||||
5,10,Mother's Mercy,Mother%27s_Mercy,Mother%27s_Mercy
|
||||
6,1,The Red Woman,The_Red_Woman,The_Red_Woman
|
||||
6,2,Home,Home,Home_(Game_of_Thrones)
|
||||
6,3,Oathbreaker,,Oathbreaker_(Game_of_Thrones)
|
||||
6,4,Book of the Stranger,,Book_of_the_Stranger
|
||||
6,5,The Door,,The_Door_(Game_of_Thrones)
|
||||
6,6,Blood of My Blood,,Blood_of_My_Blood
|
||||
6,7,The Broken Man,,The_Broken_Man
|
||||
6,8,No One,,No_One_(Game_of_Thrones)
|
||||
6,9,Battle of the Bastards,,Battle_of_the_Bastards
|
||||
6,10,The Winds of Winter,,The_Winds_of_Winter_(Game_of_Thrones)
|
||||
|
@@ -0,0 +1,276 @@
|
||||
wikiKey,seatKey,lat,lng,img,clue,isGreat,firstChapter,lastChapter,firstEpisode,lastEpisode
|
||||
Free_folk,,77.989,-124.1895,http://vignette2.wikia.nocookie.net/gameofthrones/images/c/c5/Free-Folk-Main-Shield.PNG/revision/latest/scale-to-width-down/50?cb=20160811070628,gathering in the Skirling Pass,FALSE,107,999,14,39
|
||||
Night%27s_Watch,Castle_Black,,,http://awoiaf.westeros.org/images/thumb/4/47/Minigdn.png/109px-Minigdn.png,,TRUE,,,,
|
||||
House_Stark,Winterfell,,,http://awoiaf.westeros.org/images/thumb/5/51/House_Stark.PNG/90px-House_Stark.PNG,,TRUE,0,118,0,14
|
||||
House_Greyjoy,Winterfell,,,http://awoiaf.westeros.org/images/thumb/f/f3/Greyjoy_coat_sigil.png/120px-Greyjoy_coat_sigil.png,,TRUE,119,138,15,18
|
||||
House_Bolton,Dreadfort,,,http://awoiaf.westeros.org/images/thumb/7/76/Bolton.png/50px-Bolton.png,,FALSE,0,195,0,18
|
||||
House_Bolton,Dreadfort,,,http://awoiaf.westeros.org/images/thumb/7/76/Bolton.png/50px-Bolton.png,,TRUE,196,307,19,41
|
||||
House_Bolton,Winterfell,,,http://awoiaf.westeros.org/images/thumb/7/76/Bolton.png/50px-Bolton.png,,TRUE,308,999,42,57
|
||||
House_Bolton,Dreadfort,,,http://awoiaf.westeros.org/images/thumb/7/76/Bolton.png/50px-Bolton.png,,FALSE,308,999,42,99
|
||||
House_Stark,Winterfell,,,http://awoiaf.westeros.org/images/thumb/5/51/House_Stark.PNG/90px-House_Stark.PNG,,TRUE,999,999,58,99
|
||||
House_Tully,Riverrun,,,http://awoiaf.westeros.org/images/thumb/2/23/House_Tully.PNG/112px-House_Tully.PNG,,TRUE,0,137,0,99
|
||||
House_Tully,Riverrun,,,http://awoiaf.westeros.org/images/thumb/2/23/House_Tully.PNG/112px-House_Tully.PNG,,FALSE,138,268,99,99
|
||||
House_Baelish_of_Harrenhal,Harrenhal,,,http://awoiaf.westeros.org/images/thumb/1/13/House_Baelish.PNG/90px-House_Baelish.PNG,,TRUE,138,999,99,99
|
||||
House_Arryn,Eyrie,,,http://awoiaf.westeros.org/images/thumb/b/be/House_Arryn.PNG/112px-House_Arryn.PNG,,TRUE,,,,
|
||||
House_Greyjoy,Pyke,,,http://awoiaf.westeros.org/images/thumb/f/f3/Greyjoy_coat_sigil.png/120px-Greyjoy_coat_sigil.png,,TRUE,,,,
|
||||
House_Lannister,Casterly_Rock,,,http://awoiaf.westeros.org/images/thumb/8/88/House_Lannister.png/102px-House_Lannister.png,,TRUE,,,,
|
||||
House_Baratheon,King%27s_Landing,,,http://awoiaf.westeros.org/images/thumb/d/d1/House_Baratheon.PNG/50px-House_Baratheon.PNG,,TRUE,0,48,0,5
|
||||
House_Baratheon_of_King%27s_Landing,King%27s_Landing,,,http://awoiaf.westeros.org/images/thumb/5/5d/Joffrey_sigil_coat.png/120px-Joffrey_sigil_coat.png,,TRUE,49,999,6,99
|
||||
House_Tyrell,Highgarden,,,http://awoiaf.westeros.org/images/thumb/9/99/House_Tyrell.PNG/90px-House_Tyrell.PNG,,TRUE,,,,
|
||||
House_Baratheon,Storm%27s_End,,,http://awoiaf.westeros.org/images/thumb/d/d1/House_Baratheon.PNG/50px-House_Baratheon.PNG,,TRUE,,,,
|
||||
House_Martell,Sunspear,,,http://awoiaf.westeros.org/images/thumb/b/ba/House_Martell.PNG/92px-House_Martell.PNG,,TRUE,,,,
|
||||
House_Baratheon_of_Dragonstone,Dragonstone,,,http://awoiaf.westeros.org/images/thumb/2/2e/Stannis_sigil_coat.png/120px-Stannis_sigil_coat.png,,FALSE,0,48,0,5
|
||||
House_Baratheon_of_Dragonstone,Dragonstone,,,http://awoiaf.westeros.org/images/thumb/2/2e/Stannis_sigil_coat.png/120px-Stannis_sigil_coat.png,,TRUE,49,260,6,99
|
||||
House_Targaryen,Meereen,,,http://awoiaf.westeros.org/images/thumb/4/43/House_Targaryen.PNG/92px-House_Targaryen.PNG,,TRUE,214,999,99,99
|
||||
House_Cerwyn,Castle_Cerwyn,,,http://awoiaf.westeros.org/images/thumb/d/d8/House_Cerwyn.PNG/90px-House_Cerwyn.PNG,,,,,,
|
||||
House_Dustin,Barrowton,,,http://awoiaf.westeros.org/images/thumb/7/74/House_Dustin.PNG/50px-House_Dustin.PNG,,,,,,
|
||||
House_Flint_of_Widow%27s_Watch,Widow%27s_Watch,,,http://awoiaf.westeros.org/images/thumb/e/e8/Flint_Widows_Watch.png/109px-Flint_Widows_Watch.png,,,,,,
|
||||
House_Hornwood,Hornwood,,,http://awoiaf.westeros.org/images/thumb/0/01/House_Hornwood.PNG/50px-House_Hornwood.PNG,,,,,,
|
||||
House_Karstark,Karhold,,,http://awoiaf.westeros.org/images/thumb/5/5f/House_Karstark.PNG/104px-House_Karstark.PNG,,,,,,
|
||||
House_Locke,Oldcastle,,,http://awoiaf.westeros.org/images/thumb/9/9e/House_Locke.PNG/109px-House_Locke.PNG,,,,,,
|
||||
House_Manderly,White_Harbor,,,http://awoiaf.westeros.org/images/thumb/8/83/House_Manderly.PNG/50px-House_Manderly.PNG,,,,,,
|
||||
House_Mormont,,73.5657,-138.926,http://awoiaf.westeros.org/images/thumb/c/c9/House_Mormont.PNG/95px-House_Mormont.PNG,,,,,,
|
||||
House_Reed,Greywater_Watch,,,http://awoiaf.westeros.org/images/thumb/6/6e/House_Reed.PNG/70px-House_Reed.PNG,,,,,,
|
||||
House_Ryswell,,59.6233,-150.571,http://awoiaf.westeros.org/images/thumb/7/7f/House_Ryswell.PNG/109px-House_Ryswell.PNG,the extensive area between the Barrowlands and the Stony Shore,,,,,
|
||||
House_Umber,Last_Hearth,,,http://awoiaf.westeros.org/images/thumb/1/14/Umber.png/102px-Umber.png,,,,,,
|
||||
House_Glover,Deepwood_Motte,,,http://awoiaf.westeros.org/images/thumb/3/3d/House_Glover.PNG/50px-House_Glover.PNG,,,0,109,0,13
|
||||
House_Greyjoy,Deepwood_Motte,,,http://awoiaf.westeros.org/images/thumb/f/f3/Greyjoy_coat_sigil.png/120px-Greyjoy_coat_sigil.png,,,110,296,14,50
|
||||
House_Glover,Deepwood_Motte,,,http://awoiaf.westeros.org/images/thumb/3/3d/House_Glover.PNG/50px-House_Glover.PNG,,,297,999,51,99
|
||||
House_Tallhart,Torrhen%27s_Square,,,http://awoiaf.westeros.org/images/thumb/f/fe/House_Tallhart.PNG/103px-House_Tallhart.PNG,,,0,118,0,13
|
||||
House_Greyjoy,Torrhen%27s_Square,,,http://awoiaf.westeros.org/images/thumb/f/f3/Greyjoy_coat_sigil.png/120px-Greyjoy_coat_sigil.png,,,119,124,14,50
|
||||
House_Tallhart,Torrhen%27s_Square,,,http://awoiaf.westeros.org/images/thumb/f/fe/House_Tallhart.PNG/103px-House_Tallhart.PNG,,,125,999,51,99
|
||||
House_Greyjoy,Moat_Cailin,,,http://awoiaf.westeros.org/images/thumb/f/f3/Greyjoy_coat_sigil.png/120px-Greyjoy_coat_sigil.png,,,97,291,14,37
|
||||
House_Flint_of_Flint%27s_Finger,Flint%27s_Finger,,,http://awoiaf.westeros.org/images/thumb/5/5d/House_Flint_of_Flint%27s_Finger.PNG/250px-House_Flint_of_Flint%27s_Finger.PNG,,,,,,
|
||||
House_Crowl,,76.3829,-89.2675,http://awoiaf.westeros.org/images/thumb/f/f2/House_Crowl.PNG/90px-House_Crowl.PNG,mountain clan,,,,,
|
||||
House_Magnar,,75.5301,-83.0273,http://awoiaf.westeros.org/images/thumb/6/63/Magnar.png/93px-Magnar.png,mountain clan,,,,,
|
||||
House_Stane,,77.0492,-84.873,http://awoiaf.westeros.org/images/thumb/a/a8/Stane.png/93px-Stane.png,mountain clan,,,,,
|
||||
House_Burley,,71.7876,-126.709,http://awoiaf.westeros.org/images/thumb/f/f4/House_Burley.PNG/250px-House_Burley.PNG,mountain clan,,,,,
|
||||
House_Harclay,,71.3148,-121.172,http://awoiaf.westeros.org/images/thumb/0/0f/House_Harclay.PNG/50px-House_Harclay.PNG,mountain clan,,,,,
|
||||
House_Knott,,72.829,-118.623,http://awoiaf.westeros.org/images/thumb/b/b6/House_Knott.PNG/111px-House_Knott.PNG,mountain clan,,,,,
|
||||
House_Liddle,,72.9067,-124.512,http://awoiaf.westeros.org/images/thumb/d/d4/House_Liddle.PNG/110px-House_Liddle.PNG,mountain clan,,,,,
|
||||
House_Norrey,,73.9589,-123.633,http://awoiaf.westeros.org/images/thumb/e/e8/House_Norrey.PNG/50px-House_Norrey.PNG,mountain clan,,,,,
|
||||
House_Wull,,73.1759,-114.17,http://awoiaf.westeros.org/images/thumb/e/e0/House_Wull.PNG/50px-House_Wull.PNG,mountain clan,,,,,
|
||||
House_Belmore,Strongsong,,,http://awoiaf.westeros.org/images/thumb/2/20/Belmore.PNG/50px-Belmore.PNG,,,,,,
|
||||
House_Coldwater,Coldwater_Burn,,,http://awoiaf.westeros.org/images/thumb/5/57/House_Coldwater.PNG/90px-House_Coldwater.PNG,,,,,,
|
||||
House_Corbray,Heart%27s_Home,,,http://awoiaf.westeros.org/images/thumb/e/e0/Corbray.png/93px-Corbray.png,,,,,,
|
||||
House_Donniger,,33.1007,-98.54,http://awoiaf.westeros.org/images/thumb/1/16/Donniger.png/109px-Donniger.png,the Vale,,,,,
|
||||
House_Egen,,34.1254,-95.9033,http://awoiaf.westeros.org/images/thumb/8/8a/House_Egen.PNG/104px-House_Egen.PNG,the Vale,,,,,
|
||||
House_Elesham,,48.5747,-84.5507,http://awoiaf.westeros.org/images/thumb/5/51/Elesham.png/109px-Elesham.png,The Paps,,,,,
|
||||
House_Grafton,Gulltown,,,http://awoiaf.westeros.org/images/thumb/9/91/Grafton.png/93px-Grafton.png,,,,,,
|
||||
House_Hardyng,,35.3532,-94.4091,http://awoiaf.westeros.org/images/thumb/7/7e/House_Hardyng.PNG/90px-House_Hardyng.PNG,the Vale,,,,,
|
||||
House_Hersy,,43.1009,-105.417,http://awoiaf.westeros.org/images/thumb/f/f7/Hersy.png/109px-Hersy.png,the Vale,,,,,
|
||||
House_Hunter,Longbow_Hall,,,http://awoiaf.westeros.org/images/thumb/f/f0/House_Hunter.PNG/109px-House_Hunter.PNG,,,,,,
|
||||
House_Lynderly,Snakewood,,,http://awoiaf.westeros.org/images/thumb/6/66/Lynderly.png/50px-Lynderly.png,,,,,,
|
||||
House_Melcolm,Old_Anchor,,,http://awoiaf.westeros.org/images/thumb/e/e9/House_Melcolm.PNG/109px-House_Melcolm.PNG,,,,,,
|
||||
House_Moore,,36.7036,-92.0361,http://awoiaf.westeros.org/images/thumb/e/e9/House_Moore.PNG/109px-House_Moore.PNG,the Vale,,,,,
|
||||
House_Pryor,,48.0193,-95.8813,http://awoiaf.westeros.org/images/thumb/2/24/Pryor.PNG/109px-Pryor.PNG,The Pebble,,,,,
|
||||
House_Redfort,Redfort,,,http://awoiaf.westeros.org/images/thumb/e/e0/House_Redfort.png/108px-House_Redfort.png,,,,,,
|
||||
House_Royce,Runestone,,,http://awoiaf.westeros.org/images/thumb/e/ed/Royce.png/50px-Royce.png,,,,,,
|
||||
House_Royce_of_the_Gates_of_the_Moon,Eyrie,,,http://awoiaf.westeros.org/images/thumb/c/cf/House_Royce_of_the_Gates_of_the_Moon.png/109px-House_Royce_of_the_Gates_of_the_Moon.png,,,,,,
|
||||
House_Ruthermont,,37.6838,-89.1357,http://awoiaf.westeros.org/images/thumb/0/01/Ruthermont.png/109px-Ruthermont.png,the Vale,,,,,
|
||||
House_Upcliff,,38.5137,-83.6865,http://awoiaf.westeros.org/images/thumb/8/8c/Upcliff.png/250px-Upcliff.png,the Vale,,,,,
|
||||
House_Waynwood,Ironoaks,,,http://awoiaf.westeros.org/images/thumb/b/b6/House_Waynwood.PNG/109px-House_Waynwood.PNG,,,,,,
|
||||
House_Wydman,,38.5137,-89.663,http://awoiaf.westeros.org/images/thumb/b/bc/Wydman.png/109px-Wydman.png,the Vale,,,,,
|
||||
House_Borrell,,48.8357,-108.296,http://awoiaf.westeros.org/images/thumb/3/39/Borell.png/109px-Borell.png,the Vale,,,,,
|
||||
House_Sunderland,Sisterton,,,http://awoiaf.westeros.org/images/thumb/4/45/Sunderland.png/109px-Sunderland.png,,,,,,
|
||||
House_Baelish,House_Baelish,,,http://awoiaf.westeros.org/images/thumb/b/b9/OldBaelish.png/103px-OldBaelish.png,,,,,,
|
||||
House_Waxley,Wickenden,,,http://awoiaf.westeros.org/images/thumb/d/dc/Waxley_large.png/50px-Waxley_large.png,,,,,,
|
||||
House_Blacktyde,,35.1738,-149.165,http://awoiaf.westeros.org/images/thumb/5/50/Blacktyde.PNG/101px-Blacktyde.PNG,Blacktide Island,,,,,
|
||||
House_Botley,,27.1373,-151.956,http://awoiaf.westeros.org/images/thumb/f/f7/Botley.png/90px-Botley.png,Pyke Island,,,,,
|
||||
House_Drumm,,31.9894,-154.482,http://awoiaf.westeros.org/images/thumb/f/f9/Drumm.png/50px-Drumm.png,Old Wyk Island,,,,,
|
||||
House_Farwynd_of_the_Lonely_Light,,37.4399,-154.482,http://awoiaf.westeros.org/images/thumb/5/5d/Farwynd.png/109px-Farwynd.png,Great Wyk Island,,,,,
|
||||
House_Goodbrother,Hammerhorn,,,http://awoiaf.westeros.org/images/thumb/7/7b/House_Goodbrother.png/102px-House_Goodbrother.png,,,,,,
|
||||
House_Harlaw,Ten_Towers,,,http://awoiaf.westeros.org/images/thumb/3/32/House_Harlaw.PNG/100px-House_Harlaw.PNG,,,,,,
|
||||
House_Kenning,,29.8787,-145.957,http://awoiaf.westeros.org/images/thumb/c/c3/Kenning.png/50px-Kenning.png,Harlaw Island,,,,,
|
||||
House_Merlyn,Pebbleton,,,http://awoiaf.westeros.org/images/thumb/8/86/Merlyn.png/109px-Merlyn.png,,,,,,
|
||||
House_Myre,,30.9399,-147.407,http://awoiaf.westeros.org/images/thumb/2/2a/Myre.png/50px-Myre.png,Harlaw Island,,,,,
|
||||
House_Orkwood,,32.4356,-148.638,http://awoiaf.westeros.org/images/thumb/4/49/Orkwood.png/50px-Orkwood.png,Orkmont Island,,,,,
|
||||
House_Saltcliffe,,27.2936,-155.01,http://awoiaf.westeros.org/images/thumb/2/27/Saltcliffe.png/50px-Saltcliffe.png,Saltcliffe Island,,,,,
|
||||
House_Sparr,,31.7281,-156.548,http://awoiaf.westeros.org/images/thumb/3/3d/House_Sparr.PNG/90px-House_Sparr.PNG,Great Wyk Island,,,,,
|
||||
House_Stonehouse,,31.2785,-153.691,http://awoiaf.westeros.org/images/thumb/9/9f/Stonehouse.png/93px-Stonehouse.png,Old Wyk Island,,,,,
|
||||
House_Stonetree,,32.6578,-144.99,http://awoiaf.westeros.org/images/thumb/9/9b/Stonetree.png/93px-Stonetree.png,Harlaw Island,,,,,
|
||||
House_Sunderly,,27.3327,-154.043,http://awoiaf.westeros.org/images/thumb/3/34/House_Sunderly.png/109px-House_Sunderly.png,Saltcliffe Island,,,,,
|
||||
House_Tawney,,32.3614,-150.747,http://awoiaf.westeros.org/images/thumb/e/e0/Tawney.png/109px-Tawney.png,Orkmont Island,,,,,
|
||||
House_Volmark,,30.259,-143.936,http://awoiaf.westeros.org/images/thumb/1/17/House_Volmark.png/109px-House_Volmark.png,Harlaw Island,,,,,
|
||||
House_Wynch,,28.0331,-152.725,http://awoiaf.westeros.org/images/thumb/b/ba/Wynch.png/90px-Wynch.png,Pyke Island,,,,,
|
||||
House_Blackwood,Raventree_Hall,,,http://awoiaf.westeros.org/images/thumb/3/36/House_Blackwood.png/50px-House_Blackwood.png,,,,,,
|
||||
House_Bracken,Stone_Hedge,,,http://awoiaf.westeros.org/images/thumb/5/53/Bracken_sigil_coat.png/50px-Bracken_sigil_coat.png,,,,,,
|
||||
House_Butterwell,,16.7835,-107.285,http://awoiaf.westeros.org/images/thumb/a/a1/House_Butterwell.png/109px-House_Butterwell.png,the Riverlands,,,,,
|
||||
House_Charlton,,35.7465,-123.853,http://awoiaf.westeros.org/images/thumb/c/c1/Charlton.png/109px-Charlton.png,the Riverlands,,,,,
|
||||
House_Frey,Twins,,,http://awoiaf.westeros.org/images/thumb/3/3b/House_Frey.png/109px-House_Frey.png,,,,,,
|
||||
House_Frey_of_Riverrun,Riverrun,,,http://awoiaf.westeros.org/images/thumb/3/3b/House_Frey.png/109px-House_Frey.png,,,269,999,999,999
|
||||
House_Goodbrook,Goodbrook_Village,,,http://awoiaf.westeros.org/images/thumb/9/95/House_Goodbrook.PNG/103px-House_Goodbrook.PNG,,,,,,
|
||||
House_Grell,,21.4121,-133.784,http://awoiaf.westeros.org/images/thumb/b/b7/House_Grell.PNG/50px-House_Grell.PNG,the Riverlands,,,,,
|
||||
House_Hawick,Saltpans,,,http://awoiaf.westeros.org/images/thumb/0/09/Hawick.png/50px-Hawick.png,,,,,,
|
||||
House_Keath,,24.8465,-120.249,http://awoiaf.westeros.org/images/thumb/c/c7/Keath.png/93px-Keath.png,the Riverlands,,,,,
|
||||
House_Lolliston,,6.2279,-116.733,http://awoiaf.westeros.org/images/thumb/e/e7/House_Lolliston.PNG/250px-House_Lolliston.PNG,the Riverlands,,,,,
|
||||
House_Lychester,Lychester_Keep,,,http://awoiaf.westeros.org/images/thumb/c/ca/House_Lychester.PNG/90px-House_Lychester.PNG,,,,,,
|
||||
House_Mallister,Seagard,,,http://awoiaf.westeros.org/images/thumb/e/e5/House_Mallister.png/90px-House_Mallister.png,,,,,,
|
||||
House_Mooton,Maidenpool,,,http://awoiaf.westeros.org/images/thumb/7/74/House_Mooton.PNG/50px-House_Mooton.PNG,,,,,,
|
||||
House_Piper,Pinkmaiden_Castle,,,http://awoiaf.westeros.org/images/thumb/3/30/House_Piper.png/103px-House_Piper.png,,,,,,
|
||||
House_Roote,Lord_Harroway%27s_Town,,,http://awoiaf.westeros.org/images/thumb/d/d1/Roote.png/50px-Roote.png,,,,,,
|
||||
House_Ryger,,10.0986,-116.646,http://awoiaf.westeros.org/images/thumb/7/71/House_Ryger.PNG/90px-House_Ryger.PNG,the Riverlands,,,,,
|
||||
House_Shawney,,25.0457,-124.556,http://awoiaf.westeros.org/images/thumb/b/bf/Shawney.png/93px-Shawney.png,the Riverlands,,,,,
|
||||
House_Smallwood,Acorn_Hall,,,http://awoiaf.westeros.org/images/thumb/f/f2/Smallwood.png/50px-Smallwood.png,,,,,,
|
||||
House_Terrick,,25.5226,-133.96,http://awoiaf.westeros.org/images/thumb/0/0b/House_Terrick.PNG/250px-House_Terrick.PNG,the Riverlands,,,,,
|
||||
House_Vance_of_Atranta,,28.2656,-119.282,http://awoiaf.westeros.org/images/thumb/6/69/House_Vance_of_Artranta.PNG/50px-House_Vance_of_Artranta.PNG,the Riverlands,,,,,
|
||||
House_Vance_of_Wayfarer%27s_Rest,Wayfarer%27s_Rest,,,http://awoiaf.westeros.org/images/thumb/0/01/House_Vance_of_Wayfarer%27s_rest.PNG/50px-House_Vance_of_Wayfarer%27s_rest.PNG,,,,,,
|
||||
House_Vypren,,13.0259,-134.048,http://awoiaf.westeros.org/images/thumb/b/b5/Vyprin.png/50px-Vyprin.png,the Riverlands,,,,,
|
||||
House_Wayn,,14.1365,-121.304,http://awoiaf.westeros.org/images/thumb/d/df/House_Wayn.PNG/109px-House_Wayn.PNG,the Riverlands,,,,,
|
||||
House_Darry,Darry,,,http://awoiaf.westeros.org/images/thumb/2/22/House_Darry.png/50px-House_Darry.png,,,,,,
|
||||
House_Harroway,Harrenhal,,,http://awoiaf.westeros.org/images/thumb/7/77/Harroway.png/109px-Harroway.png,,,0,137,0,99
|
||||
House_Whent,Harrenhal,,,http://awoiaf.westeros.org/images/thumb/6/6d/House_Whent.png/50px-House_Whent.png,,,0,79,-1,-1
|
||||
House_Slynt,Harrenhal,,,http://awoiaf.westeros.org/images/thumb/e/ea/House_Slynt.PNG/110px-House_Slynt.PNG,,,57,80,-1,-1
|
||||
House_Algood,,1.5379,-148.462,http://awoiaf.westeros.org/images/thumb/8/88/Algood.png/93px-Algood.png,the Westerlands,,,,,
|
||||
House_Banefort,Banefort,,,http://awoiaf.westeros.org/images/thumb/a/ac/Banefort.png/50px-Banefort.png,,,,,,
|
||||
House_Bettley,,2.3723,-129.565,http://awoiaf.westeros.org/images/thumb/6/6b/Bettley.png/50px-Bettley.png,the Westerlands,,,,,
|
||||
House_Brax,Hornvale,,,http://awoiaf.westeros.org/images/thumb/9/93/House_Brax.PNG/90px-House_Brax.PNG,,,,,,
|
||||
House_Broom,,13.4109,-149.165,http://awoiaf.westeros.org/images/thumb/f/f3/House_Broom.png/90px-House_Broom.png,the Westerlands,,,,,
|
||||
House_Crakehall,Crakehall,,,http://awoiaf.westeros.org/images/thumb/e/e4/House_Crakehall.PNG/104px-House_Crakehall.PNG,,,,,,
|
||||
House_Doggett,,7.7109,-143.364,http://awoiaf.westeros.org/images/thumb/7/75/House_Doggett.PNG/250px-House_Doggett.PNG,the Westerlands,,,,,
|
||||
House_Drox,,19.9733,-139.058,http://awoiaf.westeros.org/images/thumb/c/cf/Drox.png/93px-Drox.png,the Westerlands,,,,,
|
||||
House_Estren,,25.6415,-142.837,http://awoiaf.westeros.org/images/thumb/2/27/House_Estren.PNG/90px-House_Estren.PNG,the Westerlands,,,,,
|
||||
House_Falwell,,12.5545,-141.958,http://awoiaf.westeros.org/images/thumb/f/fe/Falwell.png/109px-Falwell.png,the Westerlands,,,,,
|
||||
House_Farman,Faircastle,,,http://awoiaf.westeros.org/images/thumb/8/83/Farman.png/50px-Farman.png,,,,,,
|
||||
House_Ferren,,-1.4939,-140.024,http://awoiaf.westeros.org/images/thumb/5/52/Ferren.png/250px-Ferren.png,the Westerlands,,,,,
|
||||
House_Foote,,-0.9667,-133.433,http://awoiaf.westeros.org/images/thumb/0/0c/House_Foote.PNG/100px-House_Foote.PNG,the Westerlands,,,,,
|
||||
House_Garner,,-0.8788,-150.703,http://awoiaf.westeros.org/images/thumb/b/b7/House_Garner.PNG/101px-House_Garner.PNG,the Westerlands,,,,,
|
||||
House_Hamell,,2.8113,-134.268,http://awoiaf.westeros.org/images/thumb/6/6c/Hamell.PNG/250px-Hamell.PNG,the Westerlands,,,,,
|
||||
House_Jast,,9.6224,-154.746,http://awoiaf.westeros.org/images/thumb/4/4d/House_Jast.PNG/90px-House_Jast.PNG,the Westerlands,,,,,
|
||||
House_Kenning_of_Kayce,Kayce,,,http://awoiaf.westeros.org/images/thumb/4/4b/House_Kenning.PNG/50px-House_Kenning.PNG,,,,,,
|
||||
House_Lefford,Golden_Tooth,,,http://awoiaf.westeros.org/images/thumb/7/71/House_Lefford.PNG/109px-House_Lefford.PNG,,,,,,
|
||||
House_Lydden,Deep_Den,,,http://awoiaf.westeros.org/images/thumb/e/ec/House_Lydden.PNG/50px-House_Lydden.PNG,,,,,,
|
||||
House_Marbrand,Ashemark,,,http://awoiaf.westeros.org/images/thumb/9/98/Marbrand.png/90px-Marbrand.png,,,,,,
|
||||
House_Moreland,,2.3723,-139.585,http://awoiaf.westeros.org/images/thumb/9/94/House_Moreland.PNG/90px-House_Moreland.PNG,the Westerlands,,,,,
|
||||
House_Myatt,,-3.601,-151.934,http://awoiaf.westeros.org/images/thumb/9/91/House_Myatt.PNG/90px-House_Myatt.PNG,the Westerlands,,,,,
|
||||
House_Payne,,6.1406,-147.715,http://awoiaf.westeros.org/images/thumb/b/bb/House_Payne.png/50px-House_Payne.png,the Westerlands,,,,,
|
||||
House_Peckledon,,22.106,-145.957,http://awoiaf.westeros.org/images/thumb/e/e9/House_Peckledon.PNG/50px-House_Peckledon.PNG,the Westerlands,,,,,
|
||||
House_Plumm,,-4.1272,-149.033,http://awoiaf.westeros.org/images/thumb/7/7e/House_Plumm.PNG/50px-House_Plumm.PNG,the Westerlands,,,,,
|
||||
House_Prester,Feastfires,,,http://awoiaf.westeros.org/images/thumb/e/e8/House_Prester.PNG/90px-House_Prester.PNG,,,,,,
|
||||
House_Sarsfield,Sarsfield,,,http://awoiaf.westeros.org/images/thumb/3/3b/House_Sarsfield.PNG/102px-House_Sarsfield.PNG,,,,,,
|
||||
House_Serrett,Silverhill,,,http://awoiaf.westeros.org/images/thumb/3/3e/House_Serrett.PNG/90px-House_Serrett.PNG,,,,,,
|
||||
House_Spicer,Castamere,,,http://awoiaf.westeros.org/images/thumb/d/d7/House_Spicer.PNG/109px-House_Spicer.PNG,,,,,,
|
||||
House_Stackspear,,4.7407,-145.43,http://awoiaf.westeros.org/images/thumb/2/2b/House_Stackspear.PNG/50px-House_Stackspear.PNG,the Westerlands,,,,,
|
||||
House_Turnberry,,19.6426,-142.881,http://awoiaf.westeros.org/images/thumb/f/ff/Turnberry.png/50px-Turnberry.png,the Westerlands,,,,,
|
||||
House_Westerling,The_Crag,,,http://awoiaf.westeros.org/images/thumb/d/df/House_Westerling.PNG/50px-House_Westerling.PNG,,,,,,
|
||||
House_Yarwyck,,11.7813,-150.879,http://awoiaf.westeros.org/images/thumb/f/fa/Yarwyck.png/50px-Yarwyck.png,the Westerlands,,,,,
|
||||
House_Clegane,Clegane%27s_Keep,,,http://awoiaf.westeros.org/images/thumb/8/83/House_Clegane.png/109px-House_Clegane.png,,,,,,
|
||||
House_Swyft,Cornfield,,,http://awoiaf.westeros.org/images/thumb/6/68/House_Swyft.PNG/50px-House_Swyft.PNG,,,,,,
|
||||
House_Blount,,5.5722,-109.043,http://awoiaf.westeros.org/images/thumb/e/e8/House_Blount.PNG/50px-House_Blount.PNG,,,,,,
|
||||
House_Buckwell,Antlers,,,http://awoiaf.westeros.org/images/thumb/6/63/House_Buckwell.PNG/105px-House_Buckwell.PNG,,,,,,
|
||||
House_Byrch,,-1.8014,-99.1992,http://awoiaf.westeros.org/images/thumb/8/84/House_Byrch.PNG/101px-House_Byrch.PNG,,,,,,
|
||||
House_Chyttering,,11.7383,-96.6503,http://awoiaf.westeros.org/images/thumb/3/30/House_Chyttering.PNG/109px-House_Chyttering.PNG,,,,,,
|
||||
House_Bywater,,1.2743,-90.9375,http://awoiaf.westeros.org/images/thumb/1/1f/Bywater.PNG/50px-Bywater.PNG,,,,,,
|
||||
House_Chelsted,,11.6522,-101.836,http://awoiaf.westeros.org/images/thumb/2/26/House_Chelsted.PNG/50px-House_Chelsted.PNG,,,,,,
|
||||
House_Cressey,,14.6048,-99.1406,http://awoiaf.westeros.org/images/thumb/1/18/House_Cressy.PNG/109px-House_Cressy.PNG,the Crownlands,,,,,
|
||||
House_Edgerton,,14.7748,-101.25,http://awoiaf.westeros.org/images/thumb/0/04/Edgerton.png/120px-Edgerton.png,the Crownlands,,,,,
|
||||
House_Farring,,11.2646,-104.238,http://awoiaf.westeros.org/images/thumb/6/6f/House_Farring.PNG/50px-House_Farring.PNG,the Crownlands,,,,,
|
||||
House_Follard,,8.7547,-101.865,http://awoiaf.westeros.org/images/thumb/2/24/Follard.png/109px-Follard.png,the Crownlands,,,,,
|
||||
House_Gaunt,,12.9831,-106.523,http://awoiaf.westeros.org/images/thumb/d/db/House_Gaunt.PNG/99px-House_Gaunt.PNG,the Crownlands,,,,,
|
||||
House_Harte,,8.4071,-105.557,http://awoiaf.westeros.org/images/thumb/8/83/House_Harte.PNG/50px-House_Harte.PNG,the Crownlands,,,,,
|
||||
House_Hayford,Hayford,,,http://awoiaf.westeros.org/images/thumb/7/7c/Hayford.PNG/109px-Hayford.PNG,,,,,,
|
||||
House_Langward,,9.1888,-108.721,http://awoiaf.westeros.org/images/thumb/c/c6/Langward.png/107px-Langward.png,the Crownlands,,,,,
|
||||
House_Mallery,,2.8113,-99.9316,http://awoiaf.westeros.org/images/thumb/d/df/House_Mallery.PNG/101px-House_Mallery.PNG,the Crownlands,,,,,
|
||||
House_Manning,,6.3152,-97.6464,http://awoiaf.westeros.org/images/thumb/e/ef/House_Manning.PNG/90px-House_Manning.PNG,the Crownlands,,,,,
|
||||
House_Massey,Stonedance,,,http://awoiaf.westeros.org/images/thumb/b/b3/House_Massey.png/109px-House_Massey.png,,,,,,
|
||||
House_Pyle,,6.0531,-100.195,http://awoiaf.westeros.org/images/thumb/d/d4/House_Pyle.PNG/109px-House_Pyle.PNG,the Crownlands,,,,,
|
||||
House_Rollingford,,11.3077,-99.4189,http://awoiaf.westeros.org/images/thumb/3/39/House_Rollingford.PNG/101px-House_Rollingford.PNG,the Crownlands,,,,,
|
||||
House_Rosby,Rosby,,,http://awoiaf.westeros.org/images/thumb/3/3f/House_Rosby.PNG/109px-House_Rosby.PNG,,,,,,
|
||||
House_Rykker,Duskendale,,,http://awoiaf.westeros.org/images/thumb/f/f5/House_Rykker.PNG/109px-House_Rykker.PNG,,,,,,
|
||||
House_Staunton,Rook%27s_Rest,,,http://awoiaf.westeros.org/images/thumb/a/aa/House_Staunton.PNG/108px-House_Staunton.PNG,,,,,,
|
||||
House_Stokeworth,Stokeworth,,,http://awoiaf.westeros.org/images/thumb/8/8f/Stokeworth.png/50px-Stokeworth.png,,,,,,
|
||||
House_Thorne,,17.0567,-98.1005,http://awoiaf.westeros.org/images/thumb/2/24/Thorne.png/50px-Thorne.png,the Crownlands,,,,,
|
||||
House_Wendwater,,15.3689,-96.8701,http://awoiaf.westeros.org/images/thumb/2/22/House_Wendwater.PNG/250px-House_Wendwater.PNG,the Crownlands,,,,,
|
||||
House_Bar_Emmon,Sharp_Point,,,http://awoiaf.westeros.org/images/thumb/e/e7/BarEmmon.png/109px-BarEmmon.png,,,,,,
|
||||
House_Celtigar,,19.7667,-82.5439,http://awoiaf.westeros.org/images/thumb/6/60/Celtigar.png/50px-Celtigar.png,,,,,,
|
||||
House_Rambton,,15.5383,-89.0039,http://awoiaf.westeros.org/images/thumb/1/1c/House_Rambton.PNG/109px-House_Rambton.PNG,Sweetport Sound,,,,,
|
||||
House_Sunglass,,16.1724,-88.2128,http://awoiaf.westeros.org/images/thumb/a/a6/Sunglass.png/50px-Sunglass.png,Sweetport Sound,,,,,
|
||||
House_Velaryon,,11.6522,-88.1103,http://awoiaf.westeros.org/images/thumb/f/f3/House_Velaryon.PNG/103px-House_Velaryon.PNG,Driftmark,,,,,
|
||||
House_Brune_of_Brownhollow,,21.7799,-83.4667,http://awoiaf.westeros.org/images/thumb/1/1c/House_Brune.PNG/100px-House_Brune.PNG,Crackclaw Point at Brownhollow,,,,,
|
||||
House_Brune_of_the_Dyre_Den,Dyre_Den,,,http://awoiaf.westeros.org/images/thumb/5/5c/Coats_of_arms_of_None.png/100px-Coats_of_arms_of_None.png,,,,,,
|
||||
House_Appleton,,-6.8391,-111.27,http://awoiaf.westeros.org/images/thumb/1/13/House_Appleton.png/109px-House_Appleton.png,the Reach,,,,,
|
||||
House_Ambrose,,-15.1145,-143.35,http://awoiaf.westeros.org/images/thumb/9/9f/Ambrose.png/50px-Ambrose.png,the Reach,,,,,
|
||||
House_Ashford,Ashford,,,http://awoiaf.westeros.org/images/thumb/7/74/House_Ashford.PNG/102px-House_Ashford.PNG,,,,,,
|
||||
House_Beesbury,Honeyholt,,,http://awoiaf.westeros.org/images/thumb/8/80/Beesburymotto.png/100px-Beesburymotto.png,,,,,,
|
||||
House_Blackbar,Bandallon,,,http://awoiaf.westeros.org/images/thumb/0/08/House_Blackbar.PNG/90px-House_Blackbar.PNG,,,,,,
|
||||
House_Bulwer,Blackcrown,,,http://awoiaf.westeros.org/images/thumb/d/d7/House_Bulwer.PNG/95px-House_Bulwer.PNG,,,,,,
|
||||
House_Caswell,Bitterbridge,,,http://awoiaf.westeros.org/images/thumb/1/10/House_Caswell.png/109px-House_Caswell.png,,,,,,
|
||||
House_Cockshaw,,-0.7031,-121.816,http://awoiaf.westeros.org/images/thumb/f/f3/Cockshaw.png/50px-Cockshaw.png,the Reach,,,,,
|
||||
House_Cordwayner,,-10.1419,-152.754,http://awoiaf.westeros.org/images/thumb/b/b0/Cordwayner.png/250px-Cordwayner.png,the Reach at Hammerhal,,,,,
|
||||
House_Costayne,Three_Towers,,,http://awoiaf.westeros.org/images/thumb/5/57/House_Costayne.PNG/109px-House_Costayne.PNG,,,,,,
|
||||
House_Crane,Red_Lake,,,http://awoiaf.westeros.org/images/thumb/1/14/House_Crane.PNG/109px-House_Crane.PNG,,,,,,
|
||||
House_Cuy,Sunflower_Hall,,,http://awoiaf.westeros.org/images/thumb/5/57/House_Cuy.PNG/50px-House_Cuy.PNG,,,,,,
|
||||
House_Footly,Tumbleton,,,http://awoiaf.westeros.org/images/thumb/a/a0/Footly.png/50px-Footly.png,,,,,,
|
||||
House_Hightower,Oldtown,,,http://awoiaf.westeros.org/images/thumb/7/7c/House_Hightower.png/90px-House_Hightower.png,,,,,,
|
||||
House_Meadows,Grassy_Vale,,,http://awoiaf.westeros.org/images/thumb/f/f5/Meadows.png/109px-Meadows.png,,,,,,
|
||||
House_Merryweather,Longtable,,,http://awoiaf.westeros.org/images/thumb/5/5a/House_Merryweather.PNG/50px-House_Merryweather.PNG,,,,,,
|
||||
House_Mullendore,Uplands,,,http://awoiaf.westeros.org/images/thumb/9/94/Mullendore.png/50px-Mullendore.png,,,,,,
|
||||
House_Oakheart,Old_Oak,,,http://awoiaf.westeros.org/images/thumb/0/0f/House_Oakheart.png/90px-House_Oakheart.png,,,,,,
|
||||
House_Peake,,-31.2785,-142.119,http://awoiaf.westeros.org/images/thumb/f/f1/House_Peake.PNG/50px-House_Peake.PNG,the Reach at Starpike,,,,,
|
||||
House_Redwyne,,-47.1,-156.533,http://awoiaf.westeros.org/images/thumb/b/b1/House_Redwyne2.png/109px-House_Redwyne2.png,the Arbor,,,,,
|
||||
House_Rowan,Goldengrove,,,http://awoiaf.westeros.org/images/thumb/d/dc/House_Rowan.PNG/50px-House_Rowan.PNG,,,,,,
|
||||
House_Shermer,,-35.5322,-147.744,http://awoiaf.westeros.org/images/thumb/c/ca/Shermer.png/109px-Shermer.png,the Reach at Smithyton,,,,,
|
||||
House_Tarly,Horn_Hill,,,http://awoiaf.westeros.org/images/thumb/d/d8/Tarly.png/50px-Tarly.png,,,,,,
|
||||
House_Tyrell_of_Brightwater_Keep,Brightwater_Keep,,,http://awoiaf.westeros.org/images/thumb/9/9c/Garlan_Tyrell_COA.png/90px-Garlan_Tyrell_COA.png,,,162,999,,
|
||||
House_Florent,Brightwater_Keep,,,http://awoiaf.westeros.org/images/thumb/c/c1/House_Florent.PNG/50px-House_Florent.PNG,,,0,161,0,99
|
||||
House_Fossoway_of_Cider_Hall,Cider_Hall,,,http://awoiaf.westeros.org/images/thumb/4/43/House_Fossoway_red.png/50px-House_Fossoway_red.png,,,,,,
|
||||
House_Fossoway_of_New_Barrel,,-17.1408,-118.828,http://awoiaf.westeros.org/images/thumb/7/77/House_Fossoway_green.png/50px-House_Fossoway_green.png,New Barrel,,,,,
|
||||
House_Varner,,-6.0531,-129.551,http://awoiaf.westeros.org/images/thumb/3/33/House_Varner.PNG/112px-House_Varner.PNG,the Reach,,,,,
|
||||
House_Vyrwel,,-40.38,-146.25,http://awoiaf.westeros.org/images/thumb/c/cd/House_Vyrwel.PNG/100px-House_Vyrwel.PNG,the Reach at Darkdell,,,,,
|
||||
House_Chester,,-21.3712,-151.611,http://awoiaf.westeros.org/images/thumb/0/06/Chester.png/109px-Chester.png,,,0,253,,
|
||||
House_Volmark,,-21.3712,-151.611,http://awoiaf.westeros.org/images/thumb/1/17/House_Volmark.png/109px-House_Volmark.png,,,254,999,,
|
||||
House_Grimm,,-21.2074,-149.063,http://awoiaf.westeros.org/images/thumb/7/7d/Grimm.png/50px-Grimm.png,,,0,253,,
|
||||
House_Harlaw_of_Grey_Garden,,-21.2074,-149.063,http://awoiaf.westeros.org/images/thumb/b/bb/Harris_Harlaw.png/109px-Harris_Harlaw.png,,,254,999,,
|
||||
House_Hewett,Lord_Hewett%27s_Town,,,http://awoiaf.westeros.org/images/thumb/2/2c/Hewett.png/50px-Hewett.png,,,0,253,,
|
||||
Nute,Lord_Hewett%27s_Town,,,http://awoiaf.westeros.org/images/thumb/5/5c/Coats_of_arms_of_None.png/100px-Coats_of_arms_of_None.png,,,254,999,,
|
||||
House_Serry,,-22.35,-150.249,http://awoiaf.westeros.org/images/thumb/e/ed/House_Serry.PNG/50px-House_Serry.PNG,,,0,253,,
|
||||
Andrik,,-22.35,-150.249,http://awoiaf.westeros.org/images/thumb/5/5c/Coats_of_arms_of_None.png/100px-Coats_of_arms_of_None.png,,,254,999,,
|
||||
House_Dondarrion,Blackhaven,,,http://awoiaf.westeros.org/images/thumb/1/1d/Dondarrion.png/55px-Dondarrion.png,,,,,,
|
||||
House_Caron,Nightsong,,,http://awoiaf.westeros.org/images/thumb/6/64/House_Caron.png/105px-House_Caron.png,,,0,137,0,99
|
||||
House_Foote_of_Nightsong,Nightsong,,,http://awoiaf.westeros.org/images/thumb/0/0c/House_Foote.PNG/100px-House_Foote.PNG,,,138,999,-1,-1
|
||||
House_Swann,Stonehelm,,,http://awoiaf.westeros.org/images/thumb/a/a9/House_Swann.PNG/50px-House_Swann.PNG,,,,,,
|
||||
House_Bolling,,-20.3858,-104.502,http://awoiaf.westeros.org/images/thumb/6/66/House_Bolling.PNG/109px-House_Bolling.PNG,the Stormlands,,,,,
|
||||
House_Buckler,Bronzegate,,,http://awoiaf.westeros.org/images/thumb/8/81/House_Buckler.png/50px-House_Buckler.png,,,,,,
|
||||
House_Cafferen,Fawnton,,,http://awoiaf.westeros.org/images/thumb/9/94/Cafferen.png/250px-Cafferen.png,,,,,,
|
||||
House_Connington,Griffin%27s_Roost,,,http://awoiaf.westeros.org/images/thumb/0/07/House_Connington.png/50px-House_Connington.png,,,,,,
|
||||
House_Errol,Haystack_Hall,,,http://awoiaf.westeros.org/images/thumb/8/88/Errol.png/50px-Errol.png,,,,,,
|
||||
House_Estermont,Greenstone,,,http://awoiaf.westeros.org/images/thumb/5/5a/House_Estermont.PNG/50px-House_Estermont.PNG,,,,,,
|
||||
House_Fell,Felwood,,,http://awoiaf.westeros.org/images/thumb/3/34/House_Fell.PNG/50px-House_Fell.PNG,,,,,,
|
||||
House_Gower,,-22.6748,-102.041,http://awoiaf.westeros.org/images/thumb/4/4b/Gower.PNG/50px-Gower.PNG,the Stormlands,,,,,
|
||||
House_Grandison,Grandview,,,http://awoiaf.westeros.org/images/thumb/8/82/House_Grandison.PNG/102px-House_Grandison.PNG,,,,,,
|
||||
House_Hasty,,-3.9519,-87.1875,http://awoiaf.westeros.org/images/thumb/9/98/House_Hasty.PNG/100px-House_Hasty.PNG,the Stormlands,,,,,
|
||||
House_Herston,,-14.5197,-107.227,http://awoiaf.westeros.org/images/thumb/6/65/Herston.png/90px-Herston.png,the Stormlands,,,,,
|
||||
House_Horpe,,-28.459,-99.6679,http://awoiaf.westeros.org/images/thumb/1/14/Horpe.png/50px-Horpe.png,the Stormlands,,,,,
|
||||
House_Kellington,,-28.0719,-93.955,http://awoiaf.westeros.org/images/thumb/c/c7/Kellington.png/109px-Kellington.png,the Stormlands,,,,,
|
||||
House_Lonmouth,,-27.6056,-87.2753,http://awoiaf.westeros.org/images/thumb/c/ce/House_Lonmouth.PNG/109px-House_Lonmouth.PNG,the Stormlands,,,,,
|
||||
House_Mertyns,Mistwood,,,http://awoiaf.westeros.org/images/thumb/0/01/House_Mertyns.PNG/90px-House_Mertyns.PNG,,,,,,
|
||||
House_Morrigen,Crow%27s_Nest,,,http://awoiaf.westeros.org/images/thumb/e/e5/House_Morrigen.PNG/109px-House_Morrigen.PNG,,,,,,
|
||||
House_Musgood,,-22.1874,-91.3183,http://awoiaf.westeros.org/images/thumb/5/5e/Musgood.png/109px-Musgood.png,the Stormlands,,,,,
|
||||
House_Peasebury,,-5.441,-89.3847,http://awoiaf.westeros.org/images/thumb/c/ce/Peasebury.png/50px-Peasebury.png,"the Stormlands, in Poddingfield",,,,,
|
||||
House_Penrose,Parchments,,,http://awoiaf.westeros.org/images/thumb/1/1b/House_Penrose.PNG/92px-House_Penrose.PNG,,,,,,
|
||||
House_Rogers,,-10.5742,-90.1757,http://awoiaf.westeros.org/images/thumb/6/67/House_Rogers.png/109px-House_Rogers.png,"the Stormlands, in Amberly",,,,,
|
||||
House_Selmy,Harvest_Hall,,,http://awoiaf.westeros.org/images/thumb/6/61/Selmy.png/50px-Selmy.png,,,,,,
|
||||
House_Staedmon,,-5.9657,-98.0859,http://awoiaf.westeros.org/images/thumb/2/2c/House_Steadmon.PNG/109px-House_Steadmon.PNG,"the Stormlands, in Broad Arch",,,,,
|
||||
House_Swygert,,-22.1059,-85.166,http://awoiaf.westeros.org/images/thumb/a/a2/Swygert.png/109px-Swygert.png,the Stormlands,,,,,
|
||||
House_Tarth,Evenfall_Hall,,,http://awoiaf.westeros.org/images/thumb/f/f3/House_Tarth.PNG/40px-House_Tarth.PNG,,,,,,
|
||||
House_Trant,,-30.9022,-93.4277,http://awoiaf.westeros.org/images/thumb/5/5d/House_Trant.png/50px-House_Trant.png,"the Stormlands, in Gallowsgrey",,,,,
|
||||
House_Tudbury,,-27.9167,-106.348,http://awoiaf.westeros.org/images/thumb/8/82/House_Tudbury.png/120px-House_Tudbury.png,the Stormlands,,,,,
|
||||
House_Wagstaff,,-24.4471,-95.5371,http://awoiaf.westeros.org/images/thumb/9/95/Wagstaff.png/93px-Wagstaff.png,the Stormlands,,,,,
|
||||
House_Wensington,,-17.3925,-108.457,http://awoiaf.westeros.org/images/thumb/1/1d/House_Wensington.PNG/90px-House_Wensington.PNG,the Stormlands,,,,,
|
||||
House_Wylde,Rain_House,,,http://awoiaf.westeros.org/images/thumb/2/20/Wylde.png/109px-Wylde.png,,,,,,
|
||||
House_Seaworth,,-23.8054,-83.3203,http://awoiaf.westeros.org/images/thumb/9/99/Seaworth.png/90px-Seaworth.png,Cape Wrath,,,,,
|
||||
House_Allyrion,Godsgrace,,,http://awoiaf.westeros.org/images/thumb/2/25/House_Allyrion.PNG/120px-House_Allyrion.PNG,,,,,,
|
||||
House_Blackmont,Blackmont,,,http://awoiaf.westeros.org/images/thumb/f/f9/Blackmont.png/120px-Blackmont.png,,,,,,
|
||||
House_Dalt,Lemonwood,,,http://awoiaf.westeros.org/images/thumb/f/fb/DaltCoA.png/50px-DaltCoA.png,,,,,,
|
||||
House_Dayne,Starfall,,,http://awoiaf.westeros.org/images/thumb/1/15/DayneCoA.png/120px-DayneCoA.png,,,,,,
|
||||
House_Dayne_of_High_Hermitage,High_Hermitage,,,http://awoiaf.westeros.org/images/thumb/5/5c/Coats_of_arms_of_None.png/100px-Coats_of_arms_of_None.png,,,,,,
|
||||
House_Fowler,Skyreach,,,http://awoiaf.westeros.org/images/thumb/0/06/House_Fowler.png/90px-House_Fowler.png,,,,,,
|
||||
House_Gargalen,Salt_Shore,,,http://awoiaf.westeros.org/images/thumb/7/75/House_Gargalen.png/120px-House_Gargalen.png,,,,,,
|
||||
House_Jordayne,Tor,,,http://awoiaf.westeros.org/images/thumb/0/00/House_Jordayne.PNG/100px-House_Jordayne.PNG,,,,,,
|
||||
House_Manwoody,Kingsgrave,,,http://awoiaf.westeros.org/images/thumb/c/c5/House_Manwoody.PNG/120px-House_Manwoody.PNG,,,,,,
|
||||
House_Qorgyle,Sandstone,,,http://awoiaf.westeros.org/images/thumb/2/28/Qorgyle.png/90px-Qorgyle.png,,,,,,
|
||||
House_Toland,Ghost_Hill,,,http://awoiaf.westeros.org/images/thumb/c/cd/Toland.png/119px-Toland.png,,,,,,
|
||||
House_Uller,Hellholt,,,http://awoiaf.westeros.org/images/thumb/1/14/House_Uller.png/105px-House_Uller.png,,,,,,
|
||||
House_Vaith,Vaith,,,http://awoiaf.westeros.org/images/thumb/3/3e/House_Vaith.PNG/103px-House_Vaith.PNG,,,,,,
|
||||
House_Wyl,Wyl_(Dorne),,,http://awoiaf.westeros.org/images/thumb/1/1f/WylCoA.png/120px-WylCoA.png,the Boneway,,,,,
|
||||
House_Yronwood,Yronwood,,,http://awoiaf.westeros.org/images/thumb/b/b9/Yronwood.png/120px-Yronwood.png,,,,,,
|
||||
|
@@ -0,0 +1,99 @@
|
||||
key,firstChapter,lastChapter,firstEpisode,lastEpisode
|
||||
Robert_Baratheon-1,AGOT-0,AGOT-46,S1E01,S1E06
|
||||
Jeor_Mormont-1,AGOT-0,ASOS-33,S1E01,S3E03
|
||||
Free_folk-1,AGOT-0,ASOS-72,S1E01,S4E08
|
||||
Stannis_Baratheon-1,AGOT-47,AGOT-70,S1E07,S1E09
|
||||
Stannis_Baratheon-2,AGOT-47,ASOS-35,S1E07,S6E10
|
||||
Joffrey_Baratheon-1,AGOT-47,ASOS-59,S1E07,S4E01
|
||||
Joffrey_Baratheon-2,AGOT-47,ACOK-34,S1E07,S4E01
|
||||
Joffrey_Baratheon-3,AGOT-56,ACOK-6,S1E07,S4E01
|
||||
Joffrey_Baratheon-4,AGOT-56,ACOK-6,S1E07,S4E01
|
||||
Stannis_Baratheon-3,AGOT-59,AGOT-70,S1E09,S1E09
|
||||
Stannis_Baratheon-4,AGOT-63,AGOT-70,,
|
||||
Renly_Baratheon-1,AGOT-69,ACOK-32,S1E10,S6E10
|
||||
Robb_Stark-1,AGOT-71,ACOK-45,S1E10,S6E10
|
||||
Robb_Stark-2,AGOT-71,ACOK-6,S1E10,S6E10
|
||||
Joffrey_Baratheon-5,ACOK-7,ACOK-46,S1E08,S4E01
|
||||
Robb_Stark-3,ACOK-7,ACOK-46,,
|
||||
Joffrey_Baratheon-6,ACOK-20,ASOS-59,,
|
||||
Renly_Baratheon-2,ACOK-33,ACOK-44,,
|
||||
Stannis_Baratheon-5,ACOK-33,ACOK-44,,
|
||||
Stannis_Baratheon-6,ACOK-33,TWOW-???,,
|
||||
Stannis_Baratheon-7,ACOK-33,ACOK-61,,
|
||||
Robb_Stark-4,ACOK-35,ASOS-50,,
|
||||
Joffrey_Baratheon-8,ACOK-35,ACOK-38,,
|
||||
Robb_Stark-5,ACOK-39,ASOS-50,,
|
||||
Joffrey_Baratheon-9,ACOK-39,ACOK-54,,
|
||||
Stannis_Baratheon-8,ACOK-45,ACOK-61,,
|
||||
Balon_Greyjoy-1,ACOK-46,ASOS-44,,
|
||||
Balon_Greyjoy-2,ACOK-46,ACOK-65,,
|
||||
Robb_Stark-6,ACOK-46,ACOK-49,,
|
||||
Robb_Stark-7,ACOK-47,ACOK-63,,
|
||||
Joffrey_Baratheon-10,ACOK-47,ACOK-63,,
|
||||
Balon_Greyjoy-3,ACOK-50,ASOS-44,,
|
||||
Balon_Greyjoy-4,ACOK-50,ASOS-44,,
|
||||
Robb_Stark-8,ACOK-50,ACOK-65,,
|
||||
Robb_Stark-9,ACOK-55,ASOS-50,,
|
||||
Joffrey_Baratheon-11,ACOK-55,ASOS-50,,
|
||||
Joffrey_Baratheon-12,ACOK-62,ASOS-59,,
|
||||
Joffrey_Baratheon-12B,ACOK-62,ASOS-59,,
|
||||
Stannis_Baratheon-9,ACOK-62,TWOW-???,,
|
||||
Stannis_Baratheon-10,ACOK-62,TWOW-???,,
|
||||
Stannis_Baratheon-11,ACOK-62,TWOW-???,,
|
||||
Robb_Stark-10,ACOK-64,ASOS-13,,
|
||||
Robb_Stark-11,ACOK-66,ASOS-50,,
|
||||
Robb_Stark-12,ASOS-14,ASOS-50,,
|
||||
Night%27s_Watch-1,ASOS-33,ASOS-78,,
|
||||
Joffrey_Baratheon-13,ASOS-36,ASOS-59,,
|
||||
Stannis_Baratheon-12,ASOS-36,TWOW-???,,
|
||||
Kingsmoot-1,ASOS-45,AFFC-18,,
|
||||
Kingsmoot-2,ASOS-45,AFFC-18,,
|
||||
Kingsmoot-3,ASOS-45,AFFC-18,,
|
||||
Joffrey_Baratheon-14,ASOS-51,ASOS-59,,
|
||||
Joffrey_Baratheon-15,ASOS-51,ASOS-59,,
|
||||
Joffrey_Baratheon-16,ASOS-51,ASOS-59,,
|
||||
Free_folk-2,,,,
|
||||
Tommen_Baratheon-1A,ASOS-60,ASOS-75,,
|
||||
Tommen_Baratheon-1B,ASOS-60,ASOS-61,,
|
||||
Tommen_Baratheon-1C,ASOS-60,TWOW-???,,
|
||||
Tommen_Baratheon-1D,ASOS-60,TWOW-???,,
|
||||
Tommen_Baratheon-1E,ASOS-60,AFFC-28,,
|
||||
Tommen_Baratheon-1F,ASOS-60,ADWD-60,,
|
||||
Tommen_Baratheon-1G,ASOS-60,TWOW-???,,
|
||||
Tommen_Baratheon-2,ASOS-62,AFFC-43,,
|
||||
Tommen_Baratheon-3,ASOS-68,TWOW-???,,
|
||||
Free_folk-2,,,,
|
||||
Daenerys_Targaryen-1,ASOS-71,TWOW-???,,
|
||||
Tommen_Baratheon-4,ASOS-74,TWOW-???,,
|
||||
Kingsmoot-4,ASOS-76,AFFC-18,,
|
||||
Tommen_Baratheon-5,ASOS-76,ADWD-2,,
|
||||
Jon_Snow-1,ASOS-79,ADWD-68,,
|
||||
Euron_Greyjoy-1A,AFFC-19,TWOW-???,,
|
||||
Euron_Greyjoy-1B,AFFC-19,ADWD-19,,
|
||||
Euron_Greyjoy-1C,AFFC-19,ADWD-41,,
|
||||
Euron_Greyjoy-1D,AFFC-19,TWOW-???,,
|
||||
Euron_Greyjoy-2,AFFC-29,TWOW-???,,
|
||||
Tommen_Baratheon-6,AFFC-29,TWOW-???,,
|
||||
Tommen_Baratheon-7,AFFC-44,ADWD-47,,
|
||||
Stannis_Baratheon-13,ADWD-3,ADWD-31,,
|
||||
Tommen_Baratheon-8,ADWD-3,ADWD-19,,
|
||||
Tommen_Baratheon-9,ADWD-20,ADWD-31,,
|
||||
Tommen_Baratheon-10,ADWD-32,ADWD-41,,
|
||||
Stannis_Baratheon-14,ADWD-42,TWOW-???,,
|
||||
Tommen_Baratheon-11,ADWD-42,TWOW-???,,
|
||||
Tommen_Baratheon-12,ADWD-48,TWOW-???,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar)-1,ADWD-61,TWOW-???,,
|
||||
Tommen_Baratheon-13,ADWD-61,TWOW-???,,
|
||||
Night%27s_Watch-2,ADWD-69,TWOW-???,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar)-2,TWOW-???,TWOW-???,,
|
||||
Tommen_Baratheon-14,TWOW-???,TWOW-???,,
|
||||
Stannis_Baratheon-15,TWOW-???,TWOW-???,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar)-3,TWOW-???,TWOW-???,,
|
||||
Tommen_Baratheon-15,TWOW-???,TWOW-???,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar)-4,TWOW-???,TWOW-???,,
|
||||
Tommen_Baratheon-16,TWOW-???,TWOW-???,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar)-5,TWOW-???,TWOW-???,,
|
||||
Tommen_Baratheon-17,TWOW-???,TWOW-???,,
|
||||
Stannis_Baratheon-16,TWOW-???,TWOW-???,,
|
||||
Aegon_Targaryen_(son_of_Rhaegar)-6,TWOW-???,TWOW-???,,
|
||||
Tommen_Baratheon-18,TWOW-???,TWOW-???,,
|
||||
|
@@ -0,0 +1,347 @@
|
||||
key,firstChapter,firstEpisode,arrows
|
||||
Eddard_Stark-1,AGOT-1,S1E01,
|
||||
Eddard_Stark-2,AGOT-12,S1E02,TRUE
|
||||
Eddard_Stark-3,AGOT-15,S1E02,TRUE
|
||||
Eddard_Stark-4,AGOT-20,S1E03,TRUE
|
||||
Catelyn_Stark-1,AGOT-18,S1E03,TRUE
|
||||
Catelyn_Stark-2,AGOT-22,S1E04,TRUE
|
||||
Catelyn_Stark-3,AGOT-28,S1E04,TRUE
|
||||
Catelyn_Stark-4,AGOT-31,S1E05,
|
||||
Catelyn_Stark-5,AGOT-34,S1E05,
|
||||
Catelyn_Stark-6,AGOT-55,,
|
||||
Catelyn_Stark-7,AGOT-55,,TRUE
|
||||
Catelyn_Stark-8,AGOT-59,,TRUE
|
||||
Catelyn_Stark-8a,,S1E09,TRUE
|
||||
Catelyn_Stark-9,AGOT-63,S1E09,TRUE
|
||||
Catelyn_Stark-10,AGOT-71,S1E09,
|
||||
Catelyn_Stark-11,ACOK-22,S2E03,TRUE
|
||||
Catelyn_Stark-12,ACOK-31,S2E04,TRUE
|
||||
Catelyn_Stark-13,ACOK-39,,TRUE
|
||||
Catelyn_Stark-14,,S2E06,TRUE
|
||||
Catelyn_Stark-15,,S2E08,TRUE
|
||||
Catelyn_Stark-16,,S3E01,TRUE
|
||||
Catelyn_Stark-17,,S3E02,TRUE
|
||||
Catelyn_Stark-18,,S3E03,TRUE
|
||||
Catelyn_Stark-19,ASOS-45,S3E07,TRUE
|
||||
Catelyn_Stark-20,ASOS-49,S3E09,TRUE
|
||||
Catelyn_Stark-21,ASOS-81,,TRUE
|
||||
Catelyn_Stark-22,AFFC-42,,TRUE
|
||||
Robb_Stark-1,AGOT-1,S1E01,
|
||||
Robb_Stark-2,AGOT-55,S1E08,TRUE
|
||||
Robb_Stark-3,AGOT-59,S1E08,TRUE
|
||||
Robb_Stark-4,AGOT-59,S1E09,
|
||||
Robb_Stark-5,AGOT-63,S1E09,
|
||||
Robb_Stark-6,AGOT-71,S1E10,
|
||||
Robb_Stark-7,ACOK-32,,
|
||||
Robb_Stark-8,,S2E06,
|
||||
Robb_Stark-9,ACOK-54,S2E07,TRUE
|
||||
Robb_Stark-10,ASOS-2,,
|
||||
Robb_Stark-11,,S2E08,TRUE
|
||||
Robb_Stark-12,,S3E01,TRUE
|
||||
Robb_Stark-13,,S3E02,TRUE
|
||||
Robb_Stark-14,,S3E03,TRUE
|
||||
Robb_Stark-15,ASOS-45,S3E07,TRUE
|
||||
Robb_Stark-16,ASOS-49,S3E09,TRUE
|
||||
Sansa_Stark-1,AGOT-12,S1E02,
|
||||
Sansa_Stark-2,AGOT-15,S1E02,
|
||||
Sansa_Stark-3,AGOT-20,S1E03,TRUE
|
||||
Sansa_Stark-4,ASOS-61,S4E03,TRUE
|
||||
Sansa_Stark-5,ASOS-68,S4E04,TRUE
|
||||
Sansa_Stark-6,ASOS-68,,
|
||||
Sansa_Stark-7,,S4E05,TRUE
|
||||
Sansa_Stark-8,ASOS-80,,
|
||||
Sansa_Stark-9,,S5E02,
|
||||
Sansa_Stark-10,,S6E01,
|
||||
Sansa_Stark-11,,S6E04,TRUE
|
||||
Sansa_Stark-12,,S6E05,
|
||||
Sansa_Stark-13,,S6E07,
|
||||
Sansa_Stark-14,,S6E08,
|
||||
Bran_Stark-1,AGOT-0,,
|
||||
Bran_Stark-2,ACOK-69,S2E10,
|
||||
Bran_Stark-3,,S3E02,
|
||||
Bran_Stark-4,,S3E04,
|
||||
Bran_Stark-5,,S3E06,
|
||||
Bran_Stark-6,,S3E07,
|
||||
Bran_Stark-7,,S3E09,
|
||||
Bran_Stark-8,ASOS-9,,
|
||||
Bran_Stark-9,ASOS-24,,TRUE
|
||||
Bran_Stark-10,ASOS-40,,TRUE
|
||||
Bran_Stark-11,ASOS-56,S3E10,TRUE
|
||||
Bran_Stark-12,,S4E02,TRUE
|
||||
Bran_Stark-13,,S4E04,TRUE
|
||||
Bran_Stark-14,ADWD-4,,TRUE
|
||||
Bran_Stark-15,,S4E10,TRUE
|
||||
Bran_Stark-16,,S6E05,TRUE
|
||||
Bran_Stark-17,,S6E06,TRUE
|
||||
Bran_Stark-18,,S6E10,TRUE
|
||||
Arya_Stark-1,AGOT-12,S1E02,TRUE
|
||||
Arya_Stark-2,AGOT-15,S1E02,TRUE
|
||||
Arya_Stark-3,AGOT-20,S1E03,
|
||||
Arya_Stark-4,ACOK-1,S2E02,
|
||||
Arya_Stark-5,ACOK-5,,
|
||||
Arya_Stark-6,ACOK-9,,TRUE
|
||||
Arya_Stark-7,,S2E04,
|
||||
Arya_Stark-8,ACOK-19,,
|
||||
Arya_Stark-9,ACOK-26,,
|
||||
Arya_Stark-10,ASOS-3,S2E10,TRUE
|
||||
Arya_Stark-11,ASOS-13,S3E02,
|
||||
Arya_Stark-12,ASOS-17,,TRUE
|
||||
Arya_Stark-13,ASOS-22,,TRUE
|
||||
Arya_Stark-14,ASOS-29,,
|
||||
Arya_Stark-15,ASOS-34,,
|
||||
Arya_Stark-16,,S3E04,
|
||||
Arya_Stark-17,ASOS-39,,
|
||||
Arya_Stark-18,ASOS-43,,
|
||||
Arya_Stark-19,ASOS-47,,TRUE
|
||||
Arya_Stark-20,,S3E08,
|
||||
Arya_Stark-21,ASOS-50,S3E09,TRUE
|
||||
Arya_Stark-22,ASOS-65,S3E10,TRUE
|
||||
Arya_Stark-23,ASOS-65,S4E03,TRUE
|
||||
Arya_Stark-24,ASOS-65,S4E04,TRUE
|
||||
Arya_Stark-25,,S4E07,TRUE
|
||||
Arya_Stark-26,,S4E08,TRUE
|
||||
Arya_Stark-27,,S4E10,TRUE
|
||||
Arya_Stark-28,ASOS-74,,
|
||||
Arya_Stark-29,AFFC-6,S5E01,
|
||||
Arya_Stark-30,,S6E10,TRUE
|
||||
Rickon_Stark-1,ACOK-69,S2E10,
|
||||
Rickon_Stark-2,ACOK-69,S2E10,
|
||||
Rickon_Stark-3,,S3E04,
|
||||
Rickon_Stark-4,,S3E06,
|
||||
Rickon_Stark-5,,S3E07,
|
||||
Rickon_Stark-6,,S3E09,
|
||||
Rickon_Stark-7,,S6E03,
|
||||
Jon_Snow-1,AGOT-0,,
|
||||
Jon_Snow-2,AGOT-19,S1E03,
|
||||
Jon_Snow-3,AGOT-48,,
|
||||
Jon_Snow-4,AGOT-52,,
|
||||
Jon_Snow-5,AGOT-70,,
|
||||
Jon_Snow-6,AGOT-86,S2E01,
|
||||
Jon_Snow-7,ACOK-23,S2E01,
|
||||
Jon_Snow-8,ACOK-34,S2E04,TRUE
|
||||
Jon_Snow-9,ACOK-51,S2E06,
|
||||
Jon_Snow-10,ACOK-53,S2E07,
|
||||
Jon_Snow-11,ASOS-26,S3E06,TRUE
|
||||
Jon_Snow-12,,S3E07,TRUE
|
||||
Jon_Snow-13,,S3E09,
|
||||
Jon_Snow-14,ASOS-41,,
|
||||
Jon_Snow-15,ASOS-48,S3E10,
|
||||
Jon_Snow-16,,S5E08,
|
||||
Jon_Snow-17,,S5E09,
|
||||
Jon_Snow-18,,S6E07,
|
||||
Daenerys_Targaryen-1,AGOT-11,S1E02,
|
||||
Daenerys_Targaryen-2,AGOT-23,S1E03,
|
||||
Daenerys_Targaryen-3,AGOT-36,S1E04,
|
||||
Daenerys_Targaryen-4,AGOT-61,S1E08,
|
||||
Daenerys_Targaryen-5,ACOK-12,S2E01,
|
||||
Daenerys_Targaryen-6,ACOK-12,S2E04,
|
||||
Daenerys_Targaryen-7,ASOS-8,S3E01,
|
||||
Daenerys_Targaryen-8,ASOS-23,S3E01,
|
||||
Daenerys_Targaryen-9,,S3E05,
|
||||
Daenerys_Targaryen-10,ASOS-42,S3E07,
|
||||
Daenerys_Targaryen-11,ASOS-57,S4E01,
|
||||
Daenerys_Targaryen-12,ASOS-57,S4E03,
|
||||
Daenerys_Targaryen-13,ADWD-71,S5E10,
|
||||
Daenerys_Targaryen-14,,S6E01,
|
||||
Daenerys_Targaryen-15,,S6E03,
|
||||
Daenerys_Targaryen-16,,S6E06,
|
||||
Daenerys_Targaryen-17,,S6E08,
|
||||
Daenerys_Targaryen-18,,S6E10,
|
||||
Aegon_Targaryen-1,ADWD-18,,
|
||||
Aegon_Targaryen-2,ADWD-22,,
|
||||
Aegon_Targaryen-3,ADWD-24,,
|
||||
Aegon_Targaryen-4,ADWD-61,,
|
||||
Tywin_Lannister-1,AGOT-55,S1E07,
|
||||
Tywin_Lannister-2,AGOT-56,S1E08,
|
||||
Tywin_Lannister-3,AGOT-69,S1E10,
|
||||
Tywin_Lannister-4,ACOK-26,S2E04,
|
||||
Tywin_Lannister-5,ACOK-38,S2E08,
|
||||
Tywin_Lannister-6,ACOK-62,S2E10,
|
||||
Jaime_Lannister-1,AGOT-4,S1E01,
|
||||
Jaime_Lannister-2,AGOT-39,S1E06,TRUE
|
||||
Jaime_Lannister-3,AGOT-55,S1E07,TRUE
|
||||
Jaime_Lannister-4,AGOT-63,S1E09,
|
||||
Jaime_Lannister-5,,S2E03,TRUE
|
||||
Jaime_Lannister-6,ASOS-1,,TRUE
|
||||
Jaime_Lannister-7,,S2E10,TRUE
|
||||
Jaime_Lannister-8,ASOS-11,,
|
||||
Jaime_Lannister-9,ASOS-21,,TRUE
|
||||
Jaime_Lannister-10,,S3E02,
|
||||
Jaime_Lannister-11,,S3E03,
|
||||
Jaime_Lannister-12,,S3E04,TRUE
|
||||
Jaime_Lannister-13,ASOS-31,,
|
||||
Jaime_Lannister-14,,S3E05,
|
||||
Jaime_Lannister-15,ASOS-44,S3E07,
|
||||
Jaime_Lannister-16,ASOS-62,S3E10,
|
||||
Jaime_Lannister-17,ASOS-62,S3E10,
|
||||
Jaime_Lannister-18,,S5E04,
|
||||
Jaime_Lannister-19,,S5E06,
|
||||
Jaime_Lannister-20,,S5E08,
|
||||
Jaime_Lannister-21,,S5E10,
|
||||
Jaime_Lannister-22,,S6E06,
|
||||
Jaime_Lannister-23,AFFC-30,,TRUE
|
||||
Jaime_Lannister-24,AFFC-33,S6E07,TRUE
|
||||
Jaime_Lannister-25,ADWD-48,,
|
||||
Cersei_Lannister-1,AGOT-4,S1E01,
|
||||
Tyrion_Lannister-1,AGOT-4,S1E01,
|
||||
Tyrion_Lannister-2,AGOT-19,S1E03,
|
||||
Tyrion_Lannister-3,AGOT-31,S1E05,
|
||||
Tyrion_Lannister-4,AGOT-34,S1E05,
|
||||
Tyrion_Lannister-5,AGOT-56,S1E08,
|
||||
Tyrion_Lannister-6,ADWD-0,S5E01,
|
||||
Tyrion_Lannister-7,,S5E02,
|
||||
Tyrion_Lannister-8,,S5E03,
|
||||
Tyrion_Lannister-9,,S5E05,
|
||||
Tyrion_Lannister-10,,S5E06,
|
||||
Tyrion_Lannister-11,,S5E08,
|
||||
Tyrion_Lannister-12,ADWD-5,,TRUE
|
||||
Tyrion_Lannister-13,ADWD-8,,TRUE
|
||||
Tyrion_Lannister-14,ADWD-14,,TRUE
|
||||
Tyrion_Lannister-15,ADWD-18,,TRUE
|
||||
Tyrion_Lannister-16,ADWD-22,,TRUE
|
||||
Tyrion_Lannister-17,ADWD-27,,TRUE
|
||||
Tyrion_Lannister-18,ADWD-33,,TRUE
|
||||
Tyrion_Lannister-19,ADWD-40,,TRUE
|
||||
Tyrion_Lannister-20,ADWD-47,,TRUE
|
||||
Tyrion_Lannister-21,,S6E10,TRUE
|
||||
Joffrey_Baratheon-1,AGOT-4,S1E01,
|
||||
Tommen_Baratheon-1,AGOT-4,S1E01,
|
||||
Myrcella_Baratheon-1,AGOT-4,S1E01,
|
||||
Myrcella_Baratheon-2,ACOK-41,S2E06,
|
||||
Myrcella_Baratheon-3,AFFC-2,S2E07,
|
||||
Myrcella_Baratheon-4,AFFC-21,,
|
||||
Myrcella_Baratheon-5,AFFC-40,,
|
||||
Myrcella_Baratheon-6,,S5E10,
|
||||
Myrcella_Baratheon-7,,S6E01,
|
||||
Robert_Baratheon-1,AGOT-4,,
|
||||
Robert_Baratheon-2,AGOT-43,S1E06,
|
||||
Stannis_Baratheon-1,AGOT-4,S1E10,
|
||||
Stannis_Baratheon-2,ACOK-22,S2E04,
|
||||
Stannis_Baratheon-3,,S4E06,TRUE
|
||||
Stannis_Baratheon-4,,S4E10,TRUE
|
||||
Stannis_Baratheon-5,ASOS-73,,TRUE
|
||||
Stannis_Baratheon-6,,S5E05,
|
||||
Stannis_Baratheon-7,,S5E08,
|
||||
Stannis_Baratheon-8,,S5E10,
|
||||
Stannis_Baratheon-9,ADWD-26,,
|
||||
Stannis_Baratheon-10,ADWD-42,,
|
||||
Renly_Baratheon-1,AGOT-15,,
|
||||
Renly_Baratheon-2,AGOT-43,S1E06,
|
||||
Renly_Baratheon-3,AGOT-49,S1E07,
|
||||
Renly_Baratheon-4,ACOK-31,S2E04,
|
||||
Theon_Greyjoy-1,AGOT-1,S1E01,
|
||||
Theon_Greyjoy-2,AGOT-55,S1E08,
|
||||
Theon_Greyjoy-3,AGOT-59,S1E09,
|
||||
Theon_Greyjoy-4,AGOT-63,S1E10,
|
||||
Theon_Greyjoy-5,AGOT-71,S1E10,
|
||||
Theon_Greyjoy-6,ACOK-11,S2E02,TRUE
|
||||
Theon_Greyjoy-7,ACOK-37,S2E06,TRUE
|
||||
Theon_Greyjoy-8,ACOK-37,,
|
||||
Theon_Greyjoy-9,,S2E06,TRUE
|
||||
Theon_Greyjoy-10,ACOK-46,,
|
||||
Theon_Greyjoy-11,,S2E07,
|
||||
Theon_Greyjoy-12,ASOS-49,S3E10,
|
||||
Theon_Greyjoy-13,ADWD-62,,
|
||||
Theon_Greyjoy-14,,S6E01,
|
||||
Theon_Greyjoy-15,,S6E04,TRUE
|
||||
Theon_Greyjoy-16,,S6E05,
|
||||
Theon_Greyjoy-17,,S6E07,TRUE
|
||||
Theon_Greyjoy-18,,S6E09,
|
||||
Theon_Greyjoy-19,,S6E10,
|
||||
Brienne_of_Tarth-1,ACOK-22,S2E03,
|
||||
Brienne_of_Tarth-2,ACOK-31,S2E04,
|
||||
Brienne_of_Tarth-3,,S2E06,TRUE
|
||||
Brienne_of_Tarth-4,ACOK-39,,
|
||||
Brienne_of_Tarth-5,ASOS-1,,
|
||||
Brienne_of_Tarth-6,,S2E10,
|
||||
Brienne_of_Tarth-7,ASOS-11,,
|
||||
Brienne_of_Tarth-8,ASOS-21,,
|
||||
Brienne_of_Tarth-9,,S3E02,
|
||||
Brienne_of_Tarth-10,,S3E03,
|
||||
Brienne_of_Tarth-11,,S3E04,TRUE
|
||||
Brienne_of_Tarth-12,ASOS-31,,
|
||||
Brienne_of_Tarth-13,,S3E05,
|
||||
Brienne_of_Tarth-14,ASOS-62,S3E10,
|
||||
Brienne_of_Tarth-15,ASOS-62,S3E10,
|
||||
Brienne_of_Tarth-16,,,
|
||||
Brienne_of_Tarth-17,,S4E07,
|
||||
Brienne_of_Tarth-18,,S4E10,
|
||||
Brienne_of_Tarth-19,,S5E03,
|
||||
Brienne_of_Tarth-20,,S5E05,TRUE
|
||||
Brienne_of_Tarth-21,,S5E10,
|
||||
Brienne_of_Tarth-22,,S6E01,TRUE
|
||||
Brienne_of_Tarth-23,,S6E04,
|
||||
Brienne_of_Tarth-24,,S6E05,
|
||||
Brienne_of_Tarth-25,,S6E08,
|
||||
Brienne_of_Tarth-26,,S6E08,
|
||||
Brienne_of_Tarth-27,AFFC-9,,
|
||||
Brienne_of_Tarth-28,AFFC-14,,
|
||||
Brienne_of_Tarth-29,AFFC-20,,
|
||||
Brienne_of_Tarth-30,AFFC-31,,
|
||||
Brienne_of_Tarth-31,AFFC-37,,
|
||||
Brienne_of_Tarth-32,AFFC-42,,
|
||||
Brienne_of_Tarth-33,ADWD-48,,
|
||||
Davos-1,ACOK-0,,
|
||||
Davos-2,ACOK-10,S2E04,
|
||||
Davos-3,ACOK-22,S2E04,
|
||||
Davos-3a,,S2E08,TRUE
|
||||
Davos-4,ACOK-58,S2E09,
|
||||
Davos-5,ASOS-5,S3E01,
|
||||
Davos-6,ASOS-10,S3E01,
|
||||
Davos-7,,S4E06,TRUE
|
||||
Davos-8,,S4E10,TRUE
|
||||
Davos-9,,S5E05,
|
||||
Davos-10,,S5E08,
|
||||
Davos-11,,S6E07,
|
||||
Davos-12,,S6E08,
|
||||
Davos-13,ADWD-9,,
|
||||
Davos-14,ADWD-15,,
|
||||
Samwell_Tarly-1,AGOT-26,S1E04,TRUE
|
||||
Samwell_Tarly-2,AGOT-48,S1E10,
|
||||
Samwell_Tarly-3,ACOK-13,S2E01,
|
||||
Samwell_Tarly-4,ACOK-23,S2E01,TRUE
|
||||
Samwell_Tarly-5,ACOK-34,S2E04,
|
||||
Samwell_Tarly-6,ASOS-18,S3E01,
|
||||
Samwell_Tarly-7,ASOS-33,S3E03,
|
||||
Samwell_Tarly-8,ASOS-46,S3E06,
|
||||
Samwell_Tarly-9,ASOS-46,S3E08,
|
||||
Samwell_Tarly-10,ASOS-46,S3E09,
|
||||
Samwell_Tarly-11,ASOS-56,S3E10,TRUE
|
||||
Samwell_Tarly-12,ASOS-75,S3E10,TRUE
|
||||
Samwell_Tarly-13,,S4E03,
|
||||
Samwell_Tarly-14,AFFC-15,S5E10,
|
||||
Samwell_Tarly-15,AFFC-26,,
|
||||
Samwell_Tarly-16,ADWD-0,,
|
||||
Samwell_Tarly-17,,S6E03,TRUE
|
||||
Samwell_Tarly-18,,S6E06,
|
||||
Samwell_Tarly-19,ADWD-10,,
|
||||
Asha_Greyjoy-1,ACOK-24,S2E06,
|
||||
Asha_Greyjoy-2,ACOK-56,S2E08,
|
||||
Asha_Greyjoy-3,,S4E06,
|
||||
Asha_Greyjoy-4,AFFC-11,S6E04,
|
||||
Asha_Greyjoy-5,AFFC-18,S6E05,
|
||||
Asha_Greyjoy-6,ADWD-26,,
|
||||
Asha_Greyjoy-7,ADWD-26,,
|
||||
Asha_Greyjoy-8,ADWD-42,,
|
||||
Asha_Greyjoy-9,,S6E07,
|
||||
Asha_Greyjoy-10,,S6E09,TRUE
|
||||
Asha_Greyjoy-11,,S6E10,
|
||||
Victarion_Greyjoy-1,ACOK-24,S2E08,
|
||||
Victarion_Greyjoy-2,AFFC-18,,
|
||||
Victarion_Greyjoy-3,AFFC-29,,
|
||||
Victarion_Greyjoy-4,ADWD-56,,
|
||||
Victarion_Greyjoy-5,ADWD-63,,
|
||||
Arianne_Martell-1,AFFC-21,,
|
||||
Arianne_Martell-2,AFFC-40,,
|
||||
Petyr_Baelish-1,ACOK-36,S2E04,
|
||||
Petyr_Baelish-2,,S3E07,
|
||||
Petyr_Baelish-3,ASOS-19,,
|
||||
Petyr_Baelish-4,ASOS-68,,
|
||||
Petyr_Baelish-5,ASOS-80,,
|
||||
Petyr_Baelish-6,,S5E02,
|
||||
Petyr_Baelish-7,,S5E03,
|
||||
Petyr_Baelish-8,,S5E04,
|
||||
Petyr_Baelish-9,,S5E06,
|
||||
Petyr_Baelish-10,,S5E06,
|
||||
Petyr_Baelish-11,,S6E05,
|
||||
Petyr_Baelish-12,,S6E09,
|
||||
|
@@ -0,0 +1,11 @@
|
||||
key,color
|
||||
Gift,#000000
|
||||
The_North,#808080
|
||||
Riverlands,#caffff
|
||||
Vale_of_Arryn,#0368bc
|
||||
Iron_Islands,#fffe8b
|
||||
Westerlands,#ffa4a4
|
||||
Crownlands,#feac77
|
||||
The_Reach,#c8ff75
|
||||
Stormlands,#ffffca
|
||||
Dorne,#ffe2b7
|
||||
|
@@ -0,0 +1,8 @@
|
||||
awoiaf,wikipedia
|
||||
Game_of_Thrones_-_Season_1,Game_of_Thrones_(season_1)
|
||||
Game_of_Thrones_-_Season_2,Game_of_Thrones_(season_2)
|
||||
Game_of_Thrones_-_Season_3,Game_of_Thrones_(season_3)
|
||||
Game_of_Thrones_-_Season_4,Game_of_Thrones_(season_4)
|
||||
Game_of_Thrones_-_Season_5,Game_of_Thrones_(season_5)
|
||||
Game_of_Thrones_-_Season_6,Game_of_Thrones_(season_6)
|
||||
Game_of_Thrones_-_Season_7,Game_of_Thrones_(season_7)
|
||||
|
@@ -0,0 +1,439 @@
|
||||
character,town,clue,latitude,longitude,firstChapter,firstEpisode,isLost,isDead
|
||||
Eddard_Stark,Winterfell,,,,AGOT-0,,,
|
||||
Eddard_Stark,Execution_Holdfast,,,,AGOT-1,,,
|
||||
Eddard_Stark,Winterfell,,,,AGOT-2,S1E01,,
|
||||
Eddard_Stark,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Eddard_Stark,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Eddard_Stark,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Eddard_Stark,King%27s_Landing,,,,AGOT-65,S1E09,,TRUE
|
||||
Catelyn_Stark,Winterfell,,,,AGOT-0,S1E01,,
|
||||
Catelyn_Stark,King%27s_Landing,,,,AGOT-18,S1E03,,
|
||||
Catelyn_Stark,,,13.1115,-108.8671,AGOT-22,,,
|
||||
Catelyn_Stark,Crossroads_Inn,,,,AGOT-28,S1E04,,
|
||||
Catelyn_Stark,,Mountains of the Moon,27.4107,-104.9121,AGOT-31,,,
|
||||
Catelyn_Stark,Eyrie,,,,AGOT-34,S1E05,,
|
||||
Catelyn_Stark,Moat_Cailin,,,,AGOT-55,,,
|
||||
Catelyn_Stark,Twins,,,,AGOT-59,,,
|
||||
Catelyn_Stark,,The Whispering Wood,23.9661,-128.3642,AGOT-63,,,
|
||||
Catelyn_Stark,Riverrun,,,,AGOT-71,S1E09,,
|
||||
Catelyn_Stark,Bitterbridge,,,,ACOK-22,S2E03,,
|
||||
Catelyn_Stark,,,,,,,,
|
||||
Catelyn_Stark,Storm%27s_End,,,,ACOK-31,S2E04,,
|
||||
Catelyn_Stark,Oxcross,,,,,S2E06,,
|
||||
Catelyn_Stark,,The Westerlands,22.106,-134.6484,,S2E08,,
|
||||
Catelyn_Stark,Harrenhal,,,,,S3E01,,
|
||||
Catelyn_Stark,,travelling to Riverrun,21.6166,-122.0801,,S3E02,,
|
||||
Catelyn_Stark,Riverrun,,,,ACOK-39,S3E03,,
|
||||
Catelyn_Stark,,Hag's Mire,32.6578,-127.4121,ASOS-45,S3E07,,
|
||||
Catelyn_Stark,Twins,,,,ASOS-49,,,
|
||||
Catelyn_Stark,Twins,,,,ASOS-51,S3E09,,TRUE
|
||||
Catelyn_Stark,Oldstones,,,,ASOS-81,,,TRUE
|
||||
Catelyn_Stark,BWB_Hideout,,,,AFFC-42,,,TRUE
|
||||
Robb_Stark,Winterfell,,,,AGOT-0,,,
|
||||
Robb_Stark,Execution_Holdfast,,,,AGOT-1,,,
|
||||
Robb_Stark,Winterfell,,,,AGOT-2,S1E01,,
|
||||
Robb_Stark,Moat_Cailin,,,,AGOT-55,,,
|
||||
Robb_Stark,,,45.058,-122.4902,,S1E08,,
|
||||
Robb_Stark,Twins,,,,AGOT-59,,,
|
||||
Robb_Stark,,The Whispering Wood,23.9661,-128.3642,AGOT-63,S1E09,,
|
||||
Robb_Stark,Riverrun,,,,AGOT-71,S1E10,,
|
||||
Robb_Stark,Oxcross,,,,,S2E04,,
|
||||
Robb_Stark,The_Crag,,,,ACOK-54,S2E07,,
|
||||
Robb_Stark,,,22.106,-134.6484,,S2E08,,
|
||||
Robb_Stark,Harrenhal,,,,,S3E01,,
|
||||
Robb_Stark,,,21.6166,-122.0801,,S3E02,,
|
||||
Robb_Stark,Riverrun,,,,ASOS-2,S3E03,,
|
||||
Robb_Stark,,Hag's Mire,32.6578,-127.4121,ASOS-45,S3E07,,
|
||||
Robb_Stark,Twins,,,,ASOS-49,,,
|
||||
Robb_Stark,Twins,,,,ASOS-51,S3E09,,TRUE
|
||||
Sansa_Stark,Winterfell,,,,AGOT-0,S1E01,,
|
||||
Sansa_Stark,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Sansa_Stark,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Sansa_Stark,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Sansa_Stark,,Blackwater Bay,1.2303,-103.3593,ASOS-61,S4E03,,
|
||||
Sansa_Stark,,The Narrow Sea,13.4109,-82.7929,ASOS-68,S4E04,,
|
||||
Sansa_Stark,House_Baelish,,,,ASOS-68,,,
|
||||
Sansa_Stark,Eyrie,,,,ASOS-80,S4E05,,
|
||||
Sansa_Stark,Crossroads_Inn,,,,,S5E02,,
|
||||
Sansa_Stark,Moat_Cailin,,,,,S5E03,,
|
||||
Sansa_Stark,Winterfell,,,,,S5E04,,
|
||||
Sansa_Stark,,The Wolfswood,67.1187,-124.8486,,S6E01,,
|
||||
Sansa_Stark,Castle_Black,,,,,S6E04,,
|
||||
Sansa_Stark,Mole%27s_Town,,,,,S6E05,,
|
||||
Sansa_Stark,,"army camp, marching on Winterfell",74.8219,-107.0947,,S6E07,,
|
||||
Sansa_Stark,Winterfell,,,,,S6E08,,
|
||||
Bran_Stark,Winterfell,,,,AGOT-0,,,
|
||||
Bran_Stark,Execution_Holdfast,,,,AGOT-1,,,
|
||||
Bran_Stark,Winterfell,,,,AGOT-2,S1E01,,
|
||||
Bran_Stark,Winterfell,,,,,S2E06,,TRUE
|
||||
Bran_Stark,Winterfell,,,,ACOK-50,S2E07,TRUE,
|
||||
Bran_Stark,,escaping Winterfell,66.6877,-124.0136,ACOK-69,S2E10,,
|
||||
Bran_Stark,,meeting the Reeds,67.3399,-124.1895,,S3E02,,
|
||||
Bran_Stark,,,70.4662,-119.707,,S3E04,,
|
||||
Bran_Stark,,,72.2355,-114.3457,,S3E06,,
|
||||
Bran_Stark,,,73.5533,-111.0059,,S3E07,,
|
||||
Bran_Stark,Tumbledown_Tower,,,,ASOS-9,,,
|
||||
Bran_Stark,,,71.3851,-121.8164,ASOS-24,,,
|
||||
Bran_Stark,Queenscrown,,,,ASOS-40,S3E09,,
|
||||
Bran_Stark,Nightfort,,,,ASOS-56,S3E10,,
|
||||
Bran_Stark,,,77,-111.5332,,S4E02,,
|
||||
Bran_Stark,Craster%27s_Keep,,,,,S4E04,,
|
||||
Bran_Stark,,Cave of the Three-Eyed Crow,81.7421,-129.6826,ADWD-4,S4E10,,
|
||||
Bran_Stark,,escaping the cave,81.761,-128.4082,,S6E05,,
|
||||
Bran_Stark,,meeting Benjen,81.666,-127.749,,S6E06,,
|
||||
Bran_Stark,,weirwood tree,76.6189,-106.6113,,S6E10,,
|
||||
Arya_Stark,Winterfell,,,,AGOT-0,S1E01,,
|
||||
Arya_Stark,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Arya_Stark,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Arya_Stark,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Arya_Stark,,The Kingsroad,5.5285,-107.3144,ACOK-1,S2E02,,
|
||||
Arya_Stark,Ivy_Inn,,,,ACOK-5,,,
|
||||
Arya_Stark,Gods_Eye_Holdfast,,,,ACOK-9,,,
|
||||
Arya_Stark,Gods_Eye_Village,,,,ACOK-19,,,
|
||||
Arya_Stark,Harrenhal,,,,ACOK-26,S2E04,,
|
||||
Arya_Stark,,looking for the Red Fork,21.5348,-116.5869,ASOS-3,S2E10,,
|
||||
Arya_Stark,Inn_of_the_Kneeling_Man,,,,ASOS-13,S3E02,,
|
||||
Arya_Stark,,,22.5125,-124.541,ASOS-17,,,
|
||||
Arya_Stark,Acorn_Hall,,,,ASOS-22,,,
|
||||
Arya_Stark,Stoney_Sept,,,,ASOS-29,,,
|
||||
Arya_Stark,Hollow_Hill,,,,ASOS-34,S3E04,,
|
||||
Arya_Stark,Robbed_Sept,,,,ASOS-39,,,
|
||||
Arya_Stark,Goodbrook_Village,,,,ASOS-43,,,
|
||||
Arya_Stark,Lord_Harroway%27s_Town,,,,ASOS-47,S3E08,,
|
||||
Arya_Stark,Twins,,,,ASOS-50,S3E09,,
|
||||
Arya_Stark,,small Lannister camp,37.2303,-120.0586,,S3E10,,
|
||||
Arya_Stark,,a tavern,33.358,-118.3886,,S4E03,,
|
||||
Arya_Stark,Palisade_Village,,,,ASOS-65,S4E04,,
|
||||
Arya_Stark,,Biter & Rorge,28.1495,-108.8085,,S4E07,,
|
||||
Arya_Stark,Bloody_Gate,,,,,S4E08,,
|
||||
Arya_Stark,Saltpans,,,,ASOS-74,S4E10,,
|
||||
Arya_Stark,Braavos,,,,AFFC-6,S5E01,,
|
||||
Arya_Stark,Twins,,,,,S6E10,,
|
||||
Rickon_Stark,Winterfell,,,,AGOT-0,S1E01,,
|
||||
Rickon_Stark,Winterfell,,,,,S2E06,,TRUE
|
||||
Rickon_Stark,Winterfell,,,,ACOK-50,S2E07,TRUE,
|
||||
Rickon_Stark,,escaping Winterfell,66.6877,-124.0136,ACOK-69,S2E10,,
|
||||
Rickon_Stark,White_Harbor,,,,ASOS-9,,TRUE,
|
||||
Rickon_Stark,,meeting the Reeds,67.3399,-124.1895,,S3E02,,
|
||||
Rickon_Stark,,,70.4662,-119.707,,S3E04,,
|
||||
Rickon_Stark,,,72.2355,-114.3457,,S3E06,,
|
||||
Rickon_Stark,,,73.5533,-111.0059,,S3E07,,
|
||||
Rickon_Stark,Tumbledown_Tower,,,,,,,
|
||||
Rickon_Stark,,,71.3851,-121.8164,,,,
|
||||
Rickon_Stark,Queenscrown,,,,,,,
|
||||
Rickon_Stark,Last_Hearth,,,,,S3E09,TRUE,
|
||||
Rickon_Stark,,,75.7156,-86.1328,ADWD-29,,TRUE,
|
||||
Rickon_Stark,Winterfell,,,,,S6E03,,
|
||||
Rickon_Stark,Winterfell,,,,,S6E09,,TRUE
|
||||
Jon_Snow,Winterfell,,,,,S6E08,,
|
||||
Jon_Snow,Winterfell,,,,AGOT-0,,,
|
||||
Jon_Snow,Execution_Holdfast,,,,AGOT-1,,,
|
||||
Jon_Snow,Winterfell,,,,AGOT-2,S1E01,,
|
||||
Jon_Snow,Castle_Black,,,,AGOT-19,S1E03,,
|
||||
Jon_Snow,Whitetree,,,,AGOT-86,,,
|
||||
Jon_Snow,Craster%27s_Keep,,,,ACOK-23,S2E01,,
|
||||
Jon_Snow,Fist_of_the_First_Men,,,,ACOK-34,S2E04,,
|
||||
Jon_Snow,,,78.1435,-121.4208,ACOK-51,S2E06,,
|
||||
Jon_Snow,,,78.0437,-124.0136,ACOK-53,S2E07,,
|
||||
Jon_Snow,,,78.3316,-119.9707,ACOK-68,S2E10,,
|
||||
Jon_Snow,,,78.0437,-124.0136,ASOS-7,,,
|
||||
Jon_Snow,Fist_of_the_First_Men,,,,ASOS-15,S3E03,,
|
||||
Jon_Snow,,,76.5781,-113.291,ASOS-26,S3E06,,
|
||||
Jon_Snow,,,75.1858,-114.3457,,S3E07,,
|
||||
Jon_Snow,Queenscrown,,,,ASOS-41,S3E09,,
|
||||
Jon_Snow,Castle_Black,,,,ASOS-48,S3E10,,
|
||||
Jon_Snow,Craster%27s_Keep,,,,,S4E05,,
|
||||
Jon_Snow,Castle_Black,,,,,S4E07,,
|
||||
Jon_Snow,Hardhome,,,,,S5E08,,
|
||||
Jon_Snow,Castle_Black,,,,,S5E09,,
|
||||
Jon_Snow,Castle_Black,,,,ADWD-69,S5E10,,TRUE
|
||||
Jon_Snow,Castle_Black,,,,,S6E02,,
|
||||
Jon_Snow,,"army camp, marching on Winterfell",74.8219,-107.0947,,S6E07,,
|
||||
Jon_Snow,Winterfell,,,,,S6E08,,
|
||||
Daenerys_Targaryen,Pentos,,,,AGOT-0,S1E01,,
|
||||
Daenerys_Targaryen,,,3.4256,-58.0078,AGOT-11,S1E02,,
|
||||
Daenerys_Targaryen,,,-13.1543,0.1757,AGOT-23,S1E03,,
|
||||
Daenerys_Targaryen,Vaes_Dothrak,,,,AGOT-36,S1E04,,
|
||||
Daenerys_Targaryen,Lhazar,,,,AGOT-61,S1E08,,
|
||||
Daenerys_Targaryen,Vaes_Tolorro,,,,ACOK-12,S2E01,,
|
||||
Daenerys_Targaryen,Qarth,,,,ACOK-27,S2E04,,
|
||||
Daenerys_Targaryen,,,-77.4086,103.623,ASOS-8,,,
|
||||
Daenerys_Targaryen,Astapor,,,,ASOS-23,S3E01,,
|
||||
Daenerys_Targaryen,,,-58.217,75.1464,,S3E05,,
|
||||
Daenerys_Targaryen,Yunkai,,,,ASOS-42,S3E07,,
|
||||
Daenerys_Targaryen,,,-48.5747,78.75,,S4E01,,
|
||||
Daenerys_Targaryen,Meereen,,,,ASOS-57,S4E03,,
|
||||
Daenerys_Targaryen,Meereen,,,,ADWD-52,,TRUE,
|
||||
Daenerys_Targaryen,,south of Dragonstone,-33.5047,85.7812,ADWD-71,S5E10,,
|
||||
Daenerys_Targaryen,,marching to Vaes Dothrak,-24.607,72.4218,,S6E01,,
|
||||
Daenerys_Targaryen,Vaes_Dothrak,,,,,S6E03,,
|
||||
Daenerys_Targaryen,,leading khalassar to Meereen,-22.0652,73.5644,,S6E06,,
|
||||
Daenerys_Targaryen,Meereen,,,,,S6E08,,
|
||||
Daenerys_Targaryen,,sailing to Westeros,-68.3505,50.6689,,S6E10,,
|
||||
Aegon_Targaryen,Sorrows,,,,ADWD-18,,,
|
||||
Aegon_Targaryen,Selhorys,,,,ADWD-22,,,
|
||||
Aegon_Targaryen,Volon_Therys,,,,ADWD-24,,,
|
||||
Aegon_Targaryen,Griffin%27s_Roost,,,,ADWD-61,,,
|
||||
Tywin_Lannister,Casterly_Rock,,,,AGOT-0,S1E01,,
|
||||
Tywin_Lannister,Riverrun,,,,AGOT-55,S1E07,,
|
||||
Tywin_Lannister,,Ruby Ford on the Green Fork of the Trident,32.6578,-122.3876,AGOT-56,S1E08,,
|
||||
Tywin_Lannister,Crossroads_Inn,,,,AGOT-69,S1E10,,
|
||||
Tywin_Lannister,Harrenhal,,,,ACOK-26,S2E04,,
|
||||
Tywin_Lannister,,Leaving Harrenhal for the West,18.1458,-115.8398,ACOK-38,S2E08,,
|
||||
Tywin_Lannister,King%27s_Landing,,,,ACOK-62,S2E10,,
|
||||
Tywin_Lannister,King%27s_Landing,,,,ASOS-77,S4E10,,TRUE
|
||||
Jaime_Lannister,King%27s_Landing,,,,AGOT-0,,,
|
||||
Jaime_Lannister,Winterfell,,,,AGOT-4,S1E01,,
|
||||
Jaime_Lannister,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Jaime_Lannister,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Jaime_Lannister,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Jaime_Lannister,,fleeing the city,3.7765,-113.2031,AGOT-39,S1E06,,
|
||||
Jaime_Lannister,Riverrun,,,,AGOT-55,S1E07,,
|
||||
Jaime_Lannister,,The Whispering Wood,23.9661,-128.3642,AGOT-63,,,
|
||||
Jaime_Lannister,Oxcross,,,,,S2E03,,
|
||||
Jaime_Lannister,Oxcross,,,,,S2E08,TRUE,
|
||||
Jaime_Lannister,Riverrun,,,,AGOT-71,,,
|
||||
Jaime_Lannister,They_Lay_With_Lions,,,,ASOS-1,,,
|
||||
Jaime_Lannister,,,12.5546,-131.5723,,S2E10,,
|
||||
Jaime_Lannister,Inn_of_the_Kneeling_Man,,,,ASOS-11,,,
|
||||
Jaime_Lannister,,a forest on the way to King's Landing,23.8858,-119.9707,ASOS-21,,,
|
||||
Jaime_Lannister,,,11.437,-126.4746,,S3E02,,
|
||||
Jaime_Lannister,,,13.7527,-123.3105,,S3E03,,
|
||||
Jaime_Lannister,,,16.2991,-119.0918,,S3E04,,
|
||||
Jaime_Lannister,Harrenhal,,,,ASOS-31,S3E05,,
|
||||
Jaime_Lannister,Brindlewood,,,,ASOS-62,,,
|
||||
Jaime_Lannister,King%27s_Landing,,,,ASOS-67,S3E10,,
|
||||
Jaime_Lannister,,,-40.9798,-81.0351,,S5E04,,
|
||||
Jaime_Lannister,Water_Gardens,,,,,S5E06,,
|
||||
Jaime_Lannister,Sunspear,,,,,S5E08,,
|
||||
Jaime_Lannister,,,-43.644,-83.1884,,S5E10,,
|
||||
Jaime_Lannister,King%27s_Landing,,,,,S6E01,,
|
||||
Jaime_Lannister,Riverrun,,,,,S6E07,,
|
||||
Jaime_Lannister,King%27s_Landing,,,,,S6E10,,
|
||||
Jaime_Lannister,Harrenhal,,,,AFFC-27,,,
|
||||
Jaime_Lannister,Darry,,,,AFFC-30,,,
|
||||
Jaime_Lannister,Riverrun,,,,AFFC-33,,,
|
||||
Jaime_Lannister,Pennytree,,,,ADWD-48,,,
|
||||
Jaime_Lannister,Pennytree,,,,ADWD-54,,TRUE,
|
||||
Cersei_Lannister,King%27s_Landing,,,,AGOT-0,,,
|
||||
Cersei_Lannister,Winterfell,,,,AGOT-4,S1E01,,
|
||||
Cersei_Lannister,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Cersei_Lannister,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Cersei_Lannister,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Tyrion_Lannister,King%27s_Landing,,,,AGOT-0,,,
|
||||
Tyrion_Lannister,Winterfell,,,,AGOT-4,S1E01,,
|
||||
Tyrion_Lannister,Castle_Black,,,,AGOT-19,S1E03,,
|
||||
Tyrion_Lannister,Crossroads_Inn,,,,AGOT-28,S1E04,,
|
||||
Tyrion_Lannister,,Mountains of the Moon,27.4107,-104.9121,AGOT-31,,,
|
||||
Tyrion_Lannister,Eyrie,,,,AGOT-34,S1E05,,
|
||||
Tyrion_Lannister,,Mountains of the Moon,27.4107,-104.9121,AGOT-42,S1E08,,
|
||||
Tyrion_Lannister,,Ruby Ford on the Green Fork of the Trident,32.6578,-122.3876,AGOT-56,S1E08,,
|
||||
Tyrion_Lannister,Crossroads_Inn,,,,AGOT-69,S1E10,,
|
||||
Tyrion_Lannister,King%27s_Landing,,,,ACOK-7,S2E01,,
|
||||
Tyrion_Lannister,King%27s_Landing,,,,ASOS-77,,TRUE,
|
||||
Tyrion_Lannister,Pentos,,,,ADWD-1,S5E01,,
|
||||
Tyrion_Lannister,,,-15.1145,-37.7929,,S5E02,,
|
||||
Tyrion_Lannister,,Velvet Hills,6.4026,-49.6582,ADWD-5,,,
|
||||
Tyrion_Lannister,Ghoyan_Drohe,,,,ADWD-8,,,
|
||||
Tyrion_Lannister,Ny_Sar,,,,ADWD-14,,,
|
||||
Tyrion_Lannister,Sorrows,,,,ADWD-18,,,
|
||||
Tyrion_Lannister,Selhorys,,,,ADWD-22,,,
|
||||
Tyrion_Lannister,Volantis,,,,ADWD-27,S5E03,,
|
||||
Tyrion_Lannister,,,-65.1276,38.2324,,S5E05,,
|
||||
Tyrion_Lannister,,,-62.2883,43.5937,,S5E06,,
|
||||
Tyrion_Lannister,,the coast of Valyria,-65.2198,14.414,ADWD-33,,,
|
||||
Tyrion_Lannister,,Gulf of Grief,-65.3301,58.0078,ADWD-40,,,
|
||||
Tyrion_Lannister,Meereen,,,,ADWD-47,S5E08,,
|
||||
Tyrion_Lannister,,sailing to Westeros,-68.3505,50.6689,,S6E10,,
|
||||
Joffrey_Baratheon,King%27s_Landing,,,,AGOT-0,,,
|
||||
Joffrey_Baratheon,Winterfell,,,,AGOT-4,S1E01,,
|
||||
Joffrey_Baratheon,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Joffrey_Baratheon,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Joffrey_Baratheon,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Joffrey_Baratheon,King%27s_Landing,,,,ASOS-60,S4E02,,TRUE
|
||||
Myrcella_Baratheon,King%27s_Landing,,,,AGOT-0,,,
|
||||
Myrcella_Baratheon,Winterfell,,,,AGOT-4,S1E01,,
|
||||
Myrcella_Baratheon,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Myrcella_Baratheon,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Myrcella_Baratheon,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Myrcella_Baratheon,,a ship to Dorne,1.1425,-99.4921,ACOK-41,S2E06,,
|
||||
Myrcella_Baratheon,Sunspear,,,,AFFC-2,S2E07,,
|
||||
Myrcella_Baratheon,,"The Greenblood, near Shandystone",-43.0367,-92.2412,AFFC-21,,,
|
||||
Myrcella_Baratheon,Sunspear,,,,AFFC-40,,,
|
||||
Myrcella_Baratheon,,leaving Sunspear by ship,-43.644,-83.1884,,S5E10,,TRUE
|
||||
Myrcella_Baratheon,King%27s_Landing,,,,,S6E01,,TRUE
|
||||
Tommen_Baratheon,King%27s_Landing,,,,AGOT-0,,,
|
||||
Tommen_Baratheon,Winterfell,,,,AGOT-4,S1E01,,
|
||||
Tommen_Baratheon,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Tommen_Baratheon,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Tommen_Baratheon,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Tommen_Baratheon,King%27s_Landing,,,,,S6E09,,TRUE
|
||||
Robert_Baratheon,King%27s_Landing,,,,AGOT-0,,,
|
||||
Robert_Baratheon,Winterfell,,,,AGOT-4,S1E01,,
|
||||
Robert_Baratheon,,A few days south of Winterfell,57.9848,-122.4023,AGOT-12,,,
|
||||
Robert_Baratheon,,The Trident,26.4312,-114.1406,AGOT-15,S1E02,,
|
||||
Robert_Baratheon,King%27s_Landing,,,,AGOT-20,S1E03,,
|
||||
Robert_Baratheon,,The Kingswood,-5.1347,-103.0517,AGOT-43,S1E06,,
|
||||
Robert_Baratheon,King%27s_Landing,,,,AGOT-47,,,
|
||||
Robert_Baratheon,King%27s_Landing,,,,AGOT-49,S1E07,,TRUE
|
||||
Stannis_Baratheon,King%27s_Landing,,,,AGOT-0,S1E01,,
|
||||
Stannis_Baratheon,Dragonstone,,,,AGOT-4,S1E10,,
|
||||
Stannis_Baratheon,Storm%27s_End,,,,ACOK-22,S2E04,,
|
||||
Stannis_Baratheon,,invasion fleet,11.3357,-85.0161,ACOK-58,S2E08,,
|
||||
Stannis_Baratheon,King%27s_Landing,,,,ACOK-59,S2E09,,
|
||||
Stannis_Baratheon,,retreat from battle,0.7031,-101.7773,ACOK-62,,,
|
||||
Stannis_Baratheon,Dragonstone,,,,ASOS-10,S2E10,,
|
||||
Stannis_Baratheon,Braavos,,,,,S4E06,,
|
||||
Stannis_Baratheon,Castle_Black,,,,ASOS-73,S4E10,,
|
||||
Stannis_Baratheon,Mole%27s_Town,,,,,S5E05,,
|
||||
Stannis_Baratheon,,stopped by snow,70.6126,-115.7519,,S5E08,,
|
||||
Stannis_Baratheon,Deepwood_Motte,,,,ADWD-26,,,
|
||||
Stannis_Baratheon,Crofters%27_village,,,,ADWD-42,,,
|
||||
Stannis_Baratheon,Crofters%27_village,,,,ADWD-69,,,TRUE
|
||||
Stannis_Baratheon,Crofters%27_village,,,,TWOW-?,,,
|
||||
Stannis_Baratheon,Winterfell,,,,,S5E10,,TRUE
|
||||
Renly_Baratheon,King%27s_Landing,,,,AGOT-0,S1E01,,
|
||||
Renly_Baratheon,,The Trident,26.4312,-114.1406,AGOT-15,,,
|
||||
Renly_Baratheon,King%27s_Landing,,,,AGOT-20,,,
|
||||
Renly_Baratheon,,The Kingswood,-5.1347,-103.0517,AGOT-43,S1E06,,
|
||||
Renly_Baratheon,King%27s_Landing,,,,AGOT-47,,,
|
||||
Renly_Baratheon,Highgarden,,,,AGOT-49,S1E07,,
|
||||
Renly_Baratheon,Bitterbridge,,,,ACOK-22,S2E03,,
|
||||
Renly_Baratheon,Storm%27s_End,,,,ACOK-31,S2E04,,
|
||||
Renly_Baratheon,Storm%27s_End,,,,ACOK-33,S2E05,,TRUE
|
||||
Theon_Greyjoy,Winterfell,,,,AGOT-0,,,
|
||||
Theon_Greyjoy,Execution_Holdfast,,,,AGOT-1,,,
|
||||
Theon_Greyjoy,Winterfell,,,,AGOT-2,S1E01,,
|
||||
Theon_Greyjoy,Moat_Cailin,,,,AGOT-55,,,
|
||||
Theon_Greyjoy,,,45.058,-122.4902,,S1E08,,
|
||||
Theon_Greyjoy,Twins,,,,AGOT-59,,,
|
||||
Theon_Greyjoy,,The Whispering Wood,23.9661,-128.3642,AGOT-63,,,
|
||||
Theon_Greyjoy,Riverrun,,,,AGOT-71,S1E09,,
|
||||
Theon_Greyjoy,Pyke,,,,ACOK-11,S2E02,,
|
||||
Theon_Greyjoy,Stony_Shore,,,,ACOK-37,,,
|
||||
Theon_Greyjoy,Winterfell,,,,ACOK-46,S2E06,,
|
||||
Theon_Greyjoy,Dreadfort,,,,ASOS-49,,TRUE,
|
||||
Theon_Greyjoy,Dreadfort,,,,ADWD-12,S3E10,,
|
||||
Theon_Greyjoy,Moat_Cailin,,,,ADWD-20,S4E08,,
|
||||
Theon_Greyjoy,Winterfell,,,,ADWD-37,S5E02,,
|
||||
Theon_Greyjoy,Crofters%27_village,,,,ADWD-42,,,
|
||||
Theon_Greyjoy,Crofters%27_village,,,,ADWD-69,,,TRUE
|
||||
Theon_Greyjoy,Crofters%27_village,,,,TWOW-?,,,
|
||||
Theon_Greyjoy,,The Wolfswood,67.1187,-124.8486,,S6E01,,
|
||||
Theon_Greyjoy,Ten_Towers,,,,,S6E04,,
|
||||
Theon_Greyjoy,,Kingsmoot,31.9894,-154.4824,,S6E05,,
|
||||
Theon_Greyjoy,Volantis,,,,,S6E07,,
|
||||
Theon_Greyjoy,Meereen,,,,,S6E09,,
|
||||
Theon_Greyjoy,,sailing to Westeros,-68.3505,50.6689,,S6E10,,
|
||||
Brienne_of_Tarth,Evenfall_Hall,,,,AGOT-0,S1E01,,
|
||||
Brienne_of_Tarth,Bitterbridge,,,,ACOK-22,S2E03,,
|
||||
Brienne_of_Tarth,Storm%27s_End,,,,ACOK-31,S2E04,,
|
||||
Brienne_of_Tarth,Oxcross,,,,,S2E06,,
|
||||
Brienne_of_Tarth,Oxcross,,,,,S2E08,TRUE,
|
||||
Brienne_of_Tarth,Riverrun,,,,ACOK-39,,,
|
||||
Brienne_of_Tarth,They_Lay_With_Lions,,,,ASOS-1,,,
|
||||
Brienne_of_Tarth,,,12.5546,-131.5723,,S2E10,,
|
||||
Brienne_of_Tarth,Inn_of_the_Kneeling_Man,,,,ASOS-11,,,
|
||||
Brienne_of_Tarth,,a forest on the way to King's Landing,23.8858,-119.9707,ASOS-21,,,
|
||||
Brienne_of_Tarth,,,11.437,-126.4746,,S3E02,,
|
||||
Brienne_of_Tarth,,,13.7527,-123.3105,,S3E03,,
|
||||
Brienne_of_Tarth,,,16.2991,-119.0918,,S3E04,,
|
||||
Brienne_of_Tarth,Harrenhal,,,,ASOS-31,S3E05,,
|
||||
Brienne_of_Tarth,Brindlewood,,,,ASOS-62,,,
|
||||
Brienne_of_Tarth,King%27s_Landing,,,,ASOS-67,S3E10,,
|
||||
Brienne_of_Tarth,,,5.8783,-107.3144,,S4E05,,
|
||||
Brienne_of_Tarth,Crossroads_Inn,,,,,S4E07,,
|
||||
Brienne_of_Tarth,,approaching the Vale,25.2446,-104.1503,,S4E10,,
|
||||
Brienne_of_Tarth,Crossroads_Inn,,,,,S5E02,,
|
||||
Brienne_of_Tarth,,near Moat Cailin,52.6963,-121.6406,,S5E03,,
|
||||
Brienne_of_Tarth,Castle_Cerwyn,,,,,S5E05,,
|
||||
Brienne_of_Tarth,Winterfell,,,,,S5E10,,
|
||||
Brienne_of_Tarth,,The Wolfswood,67.1187,-124.8486,,S6E01,,
|
||||
Brienne_of_Tarth,Castle_Black,,,,,S6E04,,
|
||||
Brienne_of_Tarth,Mole%27s_Town,,,,,S6E05,,
|
||||
Brienne_of_Tarth,,,23.443,-127.2216,,S6E08,,
|
||||
Brienne_of_Tarth,Duskendale,,,,AFFC-9,,,
|
||||
Brienne_of_Tarth,Maidenpool,,,,AFFC-14,,,
|
||||
Brienne_of_Tarth,Whispers,,,,AFFC-20,,,
|
||||
Brienne_of_Tarth,Maidenpool,,,,AFFC-25,,,
|
||||
Brienne_of_Tarth,Quiet_Isle,,,,AFFC-31,,,
|
||||
Brienne_of_Tarth,Crossroads_Inn,,,,AFFC-37,,,
|
||||
Brienne_of_Tarth,BWB_Hideout,,,,AFFC-42,,,
|
||||
Brienne_of_Tarth,Pennytree,,,,ADWD-48,,,
|
||||
Brienne_of_Tarth,Pennytree,,,,ADWD-54,,TRUE,
|
||||
Davos,,,-23.8054,-83.3203,AGOT-0,,,
|
||||
Davos,Dragonstone,,,,ACOK-0,S1E01,,
|
||||
Davos,,carrying letters,15.9613,-82.4414,ACOK-10,,,
|
||||
Davos,Storm%27s_End,,,,ACOK-22,S2E04,,
|
||||
Davos,,invasion fleet,11.3357,-85.0161,ACOK-58,S2E08,,
|
||||
Davos,King%27s_Landing,,,,ACOK-59,S2E09,,
|
||||
Davos,King%27s_Landing,,,,,S2E10,,TRUE
|
||||
Davos,,,2.8991,-93.0761,ASOS-5,,,
|
||||
Davos,Dragonstone,,,,ASOS-10,S3E01,,
|
||||
Davos,Braavos,,,,,S4E06,,
|
||||
Davos,Castle_Black,,,,,S4E10,,
|
||||
Davos,Mole%27s_Town,,,,,S5E05,,
|
||||
Davos,,stopped by snow,70.6126,-115.7519,,S5E08,,
|
||||
Davos,Mole%27s_Town,,,,,S5E09,,
|
||||
Davos,Castle_Black,,,,,S6E01,,
|
||||
Davos,,"army camp, marching on Winterfell",74.8219,-107.0947,,S6E07,,
|
||||
Davos,White_Harbor,,,,AFFC-17,,,
|
||||
Davos,White_Harbor,,,,AFFC-24,,,TRUE
|
||||
Davos,Sisterton,,,,ADWD-9,,,
|
||||
Davos,White_Harbor,,,,ADWD-15,,,
|
||||
Davos,Winterfell,,,,,S6E08,,
|
||||
Samwell_Tarly,Horn_Hill,,,,AGOT-0,S1E01,,
|
||||
Samwell_Tarly,Castle_Black,,,,AGOT-26,S1E04,,
|
||||
Samwell_Tarly,Whitetree,,,,ACOK-13,,,
|
||||
Samwell_Tarly,Craster%27s_Keep,,,,ACOK-23,S2E01,,
|
||||
Samwell_Tarly,Fist_of_the_First_Men,,,,ACOK-34,S2E04,,
|
||||
Samwell_Tarly,,escaping the battle,77.7675,-115.4003,ASOS-18,S3E01,,
|
||||
Samwell_Tarly,Craster%27s_Keep,,,,ASOS-33,S3E03,,
|
||||
Samwell_Tarly,,a weirwood tree,77.2351,-111.6211,ASOS-46,S3E06,,
|
||||
Samwell_Tarly,,an abandonned shack,76.8608,-111.1816,,S3E08,,
|
||||
Samwell_Tarly,,,76.6899,-110.6104,,S3E09,,
|
||||
Samwell_Tarly,Nightfort,,,,ASOS-56,,,
|
||||
Samwell_Tarly,Castle_Black,,,,ASOS-75,S3E10,,
|
||||
Samwell_Tarly,Mole%27s_Town,,,,,S4E03,,
|
||||
Samwell_Tarly,Castle_Black,,,,,S4E04,,
|
||||
Samwell_Tarly,,sailing away,63.7824,-69.082,AFFC-15,S5E10,,
|
||||
Samwell_Tarly,Braavos,,,,AFFC-26,,,
|
||||
Samwell_Tarly,,off the coast of Dorne,-49.6107,-110.2148,,S6E03,,
|
||||
Samwell_Tarly,Horn_Hill,,,,,S6E06,,
|
||||
Samwell_Tarly,Oldtown,,,,ADWD-0,S6E10,,
|
||||
Asha_Greyjoy,Pyke,,,,AGOT-0,S1E01,,
|
||||
Asha_Greyjoy,Deepwood_Motte,,,,ACOK-24,S2E06,,
|
||||
Asha_Greyjoy,Pyke,,,,,S3E10,,
|
||||
Asha_Greyjoy,Dreadfort,,,,,S4E06,TRUE,
|
||||
Asha_Greyjoy,Ten_Towers,,,,AFFC-11,S6E04,,
|
||||
Asha_Greyjoy,,,31.9894,-154.4824,AFFC-18,S6E05,,
|
||||
Asha_Greyjoy,,,70.0955,-139.4385,ADWD-26,,,
|
||||
Asha_Greyjoy,Crofters%27_village,,,,ADWD-42,,,
|
||||
Asha_Greyjoy,Volantis,,,,,S6E07,,
|
||||
Asha_Greyjoy,Meereen,,,,,S6E09,,
|
||||
Asha_Greyjoy,,sailing to Westeros,-68.3505,50.6689,,S6E10,,
|
||||
Victarion_Greyjoy,Pyke,,,,AGOT-0,S1E01,,
|
||||
Victarion_Greyjoy,Moat_Cailin,,,,ACOK-24,S2E05,,
|
||||
Victarion_Greyjoy,,,31.9894,-154.4824,AFFC-18,S6E05,,
|
||||
Victarion_Greyjoy,Lord_Hewett%27s_Town,,,,AFFC-29,,,
|
||||
Victarion_Greyjoy,,,-59.4227,52.7344,ADWD-56,,,
|
||||
Victarion_Greyjoy,,,-52.2682,62.9297,ADWD-63,,,
|
||||
Arianne_Martell,Sunspear,,,,,,,
|
||||
Arianne_Martell,,,-43.0367,-92.2412,AFFC-21,,,
|
||||
Arianne_Martell,Sunspear,,,,AFFC-40,,,
|
||||
Petyr_Baelish,King%27s_Landing,,,,AGOT-0,S1E01,,
|
||||
Petyr_Baelish,Bitterbridge,,,,ACOK-36,S2E04,,
|
||||
Petyr_Baelish,King%27s_Landing,,,,ACOK-62,S2E09,,
|
||||
Petyr_Baelish,Eyrie,,,,,S3E07,,
|
||||
Petyr_Baelish,,Blackwater Bay,1.2303,-103.3593,ASOS-19,S4E02,,
|
||||
Petyr_Baelish,,The Narrow Sea,13.4109,-82.7929,,S4E04,,
|
||||
Petyr_Baelish,House_Baelish,,,,ASOS-68,,,
|
||||
Petyr_Baelish,Eyrie,,,,ASOS-80,S4E05,,
|
||||
Petyr_Baelish,Crossroads_Inn,,,,,S5E02,,
|
||||
Petyr_Baelish,Moat_Cailin,,,,,S5E03,,
|
||||
Petyr_Baelish,Winterfell,,,,,S5E04,,
|
||||
Petyr_Baelish,Winterfell,,,,,S5E05,TRUE,
|
||||
Petyr_Baelish,King%27s_Landing,,,,,S5E06,,
|
||||
Petyr_Baelish,Runestone,,,,,S6E04,,
|
||||
Petyr_Baelish,Mole%27s_Town,,,,,S6E05,,
|
||||
Petyr_Baelish,Winterfell,,,,,S6E09,,
|
||||
|
@@ -0,0 +1,246 @@
|
||||
key,region,latitude,longitude,title,awoiaf
|
||||
Westwatch-by-the-Bridge,Numbered Locations,76.36226182,-117.6855469,1: Westwatch-by-the-Bridge,
|
||||
Shadow_Tower,Numbered Locations,76.37261948,-116.5429688,2: Shadow Tower,
|
||||
Sentinel_Stand,Numbered Locations,76.38296943,-115.1367188,3: Sentinel Stand,
|
||||
Greyguard,Numbered Locations,76.31035754,-113.7744141,4: Greyguard,
|
||||
Stonedoor,Numbered Locations,76.42429214,-112.4560547,5: Stonedoor,
|
||||
Hoarfrost_Hill,Numbered Locations,76.39331166,-111.5332031,6: Hoarfrost Hill,
|
||||
Icemark,Numbered Locations,76.37261948,-110.4345703,7: Icemark,
|
||||
Nightfort,Numbered Locations,76.33114247,-109.5556641,8: Nightfort,
|
||||
Deep_Lake,Numbered Locations,76.28954162,-108.8525391,9: Deep Lake,
|
||||
Queensgate,Numbered Locations,76.27912202,-107.8857422,10: Queensgate,
|
||||
Castle_Black,Gift,76.26869465,-106.6992188,11: Castle Black,
|
||||
Oakenshield_(Wall),Gift,76.20596704,-105.7324219,12: Oakensheild,
|
||||
Woodswatch-by-the-Pool,Gift,76.18499546,-104.8974609,13: Woodswatch-by-the-Pool,
|
||||
Sable_Hall,Gift,76.16399262,-103.7109375,14: Sable Hall,
|
||||
Rimegate,Gift,76.11134844,-102.4804688,15: Rimegate,
|
||||
Long_Barrow,Gift,76.12189296,-101.6894531,16: Long Barrow,
|
||||
Torches,Gift,76.06909176,-100.8105469,17: Torches,
|
||||
Greenguard,Gift,76.03731658,-100.1513672,18: Greenguard,
|
||||
Eastwatch-by-the-Sea,Gift,76.17449795,-99.53613281,19: Eastwatch-by-the-Sea,Eastwatch-by-the-Sea
|
||||
BWB_Hideout,Riverlands,25.24469595,-117.8173828,20: Brotherhood Without Banners hideout,A_Feast_for_Crows-Chapter_42
|
||||
Inn_of_the_Kneeling_Man,Riverlands,25.00597266,-122.2998047,21: Inn of the Kneeling Man,
|
||||
Lord_Harroway%27s_Town,Riverlands,23.03929775,-114.4775391,22: Lord Harroway's Town,
|
||||
They_Lay_With_Lions,Riverlands,23.40276491,-126.2548828,23: Inn (They Lay with Lions),A_Storm_of_Swords-Chapter_1
|
||||
Unnamed_Village,Riverlands,22.59372606,-122.6953125,24: Unnamed village,
|
||||
Lychester_Keep,Riverlands,21.94304553,-123.2666016,25: Lord Lychester's Keep,House_Lychester
|
||||
Lady_of_the_Leaves,Riverlands,20.42701281,-125.4638672,26: Lady of the Leaves,
|
||||
Sallydance,Riverlands,19.60119416,-124.8925781,27: Sallydance,
|
||||
Goodbrook_Village,Riverlands,19.2696653,-123.046875,28: Lord Goodbrook's Village,House_Goodbrook#A_Song_of_Ice_and_Fire
|
||||
Pennytree,Riverlands,20.22096578,-119.7949219,29: Pennytree,
|
||||
Old_Stone_Bridge,Crownlands,5.790896813,-100.8105469,30: Old Stone Bridge Inn,
|
||||
Lord_Hewett%27s_Town,The_Reach,-21.00247105,-150.0292969,31: Lord Hewett's Town,
|
||||
Shandystone,Dorne,-42.45588764,-92.19726563,32: Shandystone,
|
||||
Fist_of_the_First_Men,Beyond_the_Wall,78.27373666,-116.9311523,,
|
||||
Craster%27s_Keep,Beyond_the_Wall,77.51837381,-111.5258789,,
|
||||
Whitetree,Beyond_the_Wall,76.74543604,-109.5043945,,
|
||||
Hardhome,Beyond_the_Wall,78.72061466,-97.15576172,,
|
||||
Mole%27s_Town,Gift,76.00015574,-106.6918945,,
|
||||
Queenscrown,Gift,75.22506492,-109.5043945,,
|
||||
Last_Hearth,The_North,72.62025182,-104.6923828,,
|
||||
Karhold,The_North,70.33353336,-88.16894531,,
|
||||
Deepwood_Motte,The_North,70.18510275,-138.5302734,,
|
||||
Dreadfort,The_North,67.42436395,-102.5830078,,
|
||||
Tumbledown_Tower,The_North,67.75939813,-124.8193359,,
|
||||
Winterfell,The_North,66.24916311,-123.3251953,,
|
||||
Castle_Cerwyn,The_North,65.38514722,-123.3251953,,
|
||||
Hornwood,The_North,63.52897054,-106.1865234,,
|
||||
Stony_Shore,The_North,62.66405507,-160.0195313,,
|
||||
Torrhen%27s_Square,The_North,62.89521754,-133.9599609,,
|
||||
Ramsgate,The_North,58.83649009,-97.66113281,,
|
||||
Widow%27s_Watch,The_North,57.72761922,-85.88378906,,
|
||||
Barrowton,The_North,57.58655887,-136.5966797,,
|
||||
White_Harbor,The_North,56.68037379,-114.0966797,,
|
||||
Moat_Cailin,The_North,53.8784404,-122.3583984,,
|
||||
Oldcastle,The_North,51.75424007,-109.5263672,,
|
||||
Flint%27s_Finger,The_North,50.03597367,-148.7255859,,
|
||||
Greywater_Watch,The_North,46.10370876,-124.6435547,,
|
||||
Execution_Holdfast,The_North,66.54826346,-122.6220703,,A_Game_of_Thrones-Chapter_1
|
||||
Crofters%27_village,The_North,66.58321726,-125.15625,,
|
||||
Hornwood_Tower,The_North,65.09064558,-107.8564453,,Donella_Manderly
|
||||
Sisterton,Vale_of_Arryn,49.35375572,-106.8896484,,
|
||||
Coldwater_Burn,Vale_of_Arryn,45.05800144,-95.02441406,,
|
||||
House_Baelish,Vale_of_Arryn,43.16512263,-81.13769531,,
|
||||
Snakewood,Vale_of_Arryn,41.80407814,-93.09082031,,
|
||||
Longbow_Hall,Vale_of_Arryn,39.26628442,-86.93847656,,
|
||||
Heart%27s_Home,Vale_of_Arryn,36.7036596,-99.06738281,,
|
||||
Strongsong,Vale_of_Arryn,36.84446074,-108.9111328,,
|
||||
Old_Anchor,Vale_of_Arryn,33.32134853,-87.72949219,,
|
||||
Ironoaks,Vale_of_Arryn,32.21280107,-92.12402344,,
|
||||
Runestone,Vale_of_Arryn,32.36140332,-83.07128906,,
|
||||
Eyrie,Vale_of_Arryn,31.76553741,-102.4951172,,
|
||||
Bloody_Gate,Vale_of_Arryn,29.87875535,-102.9345703,,
|
||||
Redfort,Vale_of_Arryn,27.33273514,-95.81542969,,
|
||||
Gulltown,Vale_of_Arryn,29.42046034,-84.21386719,,
|
||||
Wickenden,Vale_of_Arryn,20.83827781,-96.07910156,,
|
||||
Palisade_Village,Vale_of_Arryn,28.03319785,-111.9873047,,A_Storm_of_Swords-Chapter_65
|
||||
Castle_Goodbrother,Iron_Islands,31.93351676,-153.4277344,,House_Goodbrother_of_Shatterstone
|
||||
Nagga%27s_Hill,Iron_Islands,31.3723991,-154.2626953,,
|
||||
Ten_Towers,Iron_Islands,31.3723991,-144.4628906,,
|
||||
Hammerhorn,Iron_Islands,30.4676141,-156.1962891,,
|
||||
Pebbleton,Iron_Islands,29.55434513,-152.5927734,,
|
||||
Pyke,Iron_Islands,27.74188463,-150.6152344,,
|
||||
Saltpans,Riverlands,20.92039691,-105.4833984,,
|
||||
Quiet_Isle,Riverlands,20.28280869,-105.3295898,,
|
||||
Maidenpool,Riverlands,17.64402203,-101.7480469,,
|
||||
Twins,Riverlands,38.59970037,-128.7304688,,
|
||||
Seagard,Riverlands,35.19176697,-129.2578125,,
|
||||
Oldstones,Riverlands,30.92107638,-126.4013672,,
|
||||
Fairmarket,Riverlands,29.17134885,-122.578125,,
|
||||
Crossroads_Inn,Riverlands,23.42292846,-112.6904297,,
|
||||
Riverrun,Riverlands,22.28909642,-128.2910156,,
|
||||
Stone_Hedge,Riverlands,22.0856399,-120.9521484,,
|
||||
Darry,Riverlands,21.84110475,-112.4707031,,
|
||||
Raventree_Hall,Riverlands,19.91138351,-118.6669922,,
|
||||
Stone_Mill,Riverlands,18.79191774,-128.7304688,,
|
||||
High_Heart,Riverlands,18.45876812,-124.6435547,,
|
||||
Acorn_Hall,Riverlands,16.84660511,-125.5224609,,
|
||||
Harrenhal,Riverlands,18.25021998,-114.4042969,,
|
||||
Rushing_Falls,Riverlands,16.53089842,-116.3378906,,
|
||||
Pinkmaiden_Castle,Riverlands,15.4748574,-129.609375,,
|
||||
Wayfarer%27s_Rest,Riverlands,16.86763362,-133.4765625,,
|
||||
Wendish_Town,Riverlands,13.38961959,-131.2792969,,
|
||||
Mummer%27s_Ford,Riverlands,13.94472997,-130.6201172,,
|
||||
Sherrer,Riverlands,13.17577122,-130.5322266,,
|
||||
Tumbler%27s_Falls,Riverlands,12.49021366,-123.1054688,,
|
||||
Hollow_Hill,Riverlands,11.28616077,-128.1152344,,Brotherhood_Without_Banners
|
||||
Stoney_Sept,Riverlands,9.817329187,-125.6542969,,
|
||||
Robbed_Sept,Riverlands,13.02596593,-126.7089844,,A_Storm_of_Swords-Chapter_39
|
||||
Gods_Eye_Holdfast,Riverlands,11.00590446,-114.7998047,,A_Clash_of_Kings-Chapter_14
|
||||
Gods_Eye_Village,Riverlands,13.15437606,-111.5478516,,A_Clash_of_Kings-Chapter_19
|
||||
Banefort,Westerlands,24.60706914,-147.3632813,,
|
||||
Nunn%27s_Deep,Westerlands,22.22809042,-141.9580078,,
|
||||
The_Crag,Westerlands,19.80805413,-147.4072266,,
|
||||
Pendric_Hills,Westerlands,19.60119416,-144.375,,
|
||||
Ashemark,Westerlands,16.84660511,-144.5068359,,
|
||||
Castamere,Westerlands,15.66535418,-147.3193359,,
|
||||
Faircastle,Westerlands,14.3069695,-152.7246094,,
|
||||
Golden_Tooth,Westerlands,14.17918614,-138.6621094,,
|
||||
Sarsfield,Westerlands,10.96276426,-145.1660156,,
|
||||
Oxcross,Westerlands,9.145486056,-148.5058594,,
|
||||
Hornvale,Westerlands,9.058702156,-137.0361328,,
|
||||
Kayce,Westerlands,7.49319647,-156.7675781,,
|
||||
Feastfires,Westerlands,5.397273408,-157.7783203,,
|
||||
Casterly_Rock,Westerlands,6.315298538,-151.3623047,,
|
||||
Deep_Den,Westerlands,5.572249801,-136.2451172,,
|
||||
Tarbeck_Hall,Westerlands,1.669685501,-152.6367188,,
|
||||
Clegane%27s_Keep,Westerlands,1.801460929,-144.4189453,,
|
||||
Silverhill,Westerlands,0.263670944,-138.3544922,,
|
||||
Cornfield,Westerlands,-2.767477951,-146.8798828,,
|
||||
Crakehall,Westerlands,-4.959615025,-154.5703125,,
|
||||
Dragonstone,Crownlands,13.19716452,-85.53222656,,
|
||||
Dyre_Den,Crownlands,21.20745873,-87.15820313,,
|
||||
Whispers,Crownlands,18.52128333,-84.60937,,
|
||||
Rook%27s_Rest,Crownlands,14.09395718,-94.27734375,,
|
||||
Antlers,Crownlands,14.22178863,-103.8574219,,
|
||||
Ivy_Inn,Crownlands,10.22843727,-108.1201172,,A_Clash_of_Kings-Chapter_5
|
||||
Sow%27s_Horn,Crownlands,10.83330598,-106.7138672,,
|
||||
Duskendale,Crownlands,8.624472108,-98.80371094,,
|
||||
Brindlewood,Crownlands,7.44962426,-107.5488281,,
|
||||
Stokeworth,Crownlands,5.747174077,-103.9453125,,
|
||||
Rosby,Crownlands,3.995780513,-102.4951172,,
|
||||
Hayford,Crownlands,3.469557303,-106.9775391,,
|
||||
King%27s_Landing,Crownlands,1.318243057,-105.9960938,,
|
||||
Stonedance,Crownlands,5.309766172,-86.015625,,
|
||||
Sharp_Point,Crownlands,8.32021229,-87.59765625,,
|
||||
Tumbleton,The_Reach,-4.784468967,-114.7998047,,
|
||||
Red_Lake,The_Reach,-8.146242825,-145.9130859,,
|
||||
Goldengrove,The_Reach,-10.96276426,-138.1787109,,
|
||||
Bitterbridge,The_Reach,-11.04903835,-124.0283203,,
|
||||
Old_Oak,The_Reach,-14.51978005,-151.4941406,,
|
||||
Longtable,The_Reach,-14.68988137,-125.2587891,,
|
||||
Grassy_Vale,The_Reach,-13.06877673,-113.4375,,
|
||||
Cider_Hall,The_Reach,-18.60460139,-129.7412109,,
|
||||
Ashford,The_Reach,-20.59165212,-123.0615234,,
|
||||
Highgarden,The_Reach,-23.96617587,-138.3544922,,
|
||||
Bandallon,The_Reach,-29.53522956,-154.8339844,,
|
||||
Brightwater_Keep,The_Reach,-29.99300228,-149.2529297,,
|
||||
Horn_Hill,The_Reach,-29.72622232,-138.0029297,,
|
||||
Honeyholt,The_Reach,-32.99023556,-148.2861328,,
|
||||
Oldtown,The_Reach,-36.6331621,-149.8681641,,
|
||||
Blackcrown,The_Reach,-38.71980474,-155.3613281,,
|
||||
Uplands,The_Reach,-37.40507375,-141.4746094,,
|
||||
Three_Towers,The_Reach,-41.11246879,-152.8125,,
|
||||
Sunflower_Hall,The_Reach,-45.79816953,-144.5068359,,
|
||||
Haystack_Hall,Stormlands,-7.885147283,-91.77246094,,
|
||||
Parchments,Stormlands,-8.32021229,-85.75195313,,
|
||||
Bronzegate,Stormlands,-8.754794702,-94.49707031,,
|
||||
Fawnton,Stormlands,-10.31491929,-107.8125,,
|
||||
Felwood,Stormlands,-12.12526422,-97.35351563,,
|
||||
Evenfall_Hall,Stormlands,-12.76894644,-83.77441406,,
|
||||
Storm%27s_End,Stormlands,-16.17247281,-91.86035156,,
|
||||
Grandview,Stormlands,-18.14585177,-101.2646484,,
|
||||
Griffin%27s_Roost,Stormlands,-18.43792465,-95.28808594,,
|
||||
Summerhall,Stormlands,-20.01464545,-108.2519531,,
|
||||
Rain_House,Stormlands,-21.12549764,-82.67578125,,
|
||||
Crow%27s_Nest,Stormlands,-22.06527807,-98.23242188,,
|
||||
Harvest_Hall,Stormlands,-21.90227797,-116.1621094,,
|
||||
Blackhaven,Stormlands,-24.20688962,-110.6689453,,
|
||||
Stonehelm,Stormlands,-25.52261465,-102.1875,,
|
||||
Mistwood,Stormlands,-27.56672143,-90.84960938,,
|
||||
Greenstone,Stormlands,-28.49766083,-83.68652344,,
|
||||
Weeping_Tower,Stormlands,-30.22110185,-91.20117188,,
|
||||
Nightsong,Stormlands,-29.07537518,-127.1923828,,
|
||||
Wyl_(Dorne),Dorne,-29.19053283,-110.9765625,,
|
||||
Vulture%27s_Roost,Dorne,-30.97760909,-122.3144531,,
|
||||
Tower_of_Joy,Dorne,-31.95216224,-124.2919922,,
|
||||
Kingsgrave,Dorne,-34.81380332,-124.3359375,,
|
||||
Blackmont,Dorne,-36.77409249,-132.8613281,,
|
||||
High_Hermitage,Dorne,-38.95940879,-132.7294922,,
|
||||
Starfall,Dorne,-41.37680857,-135.6298828,,
|
||||
Sandstone,Dorne,-44.93369639,-126.9726563,,
|
||||
Skyreach,Dorne,-38.75408328,-125.0830078,,
|
||||
Hellholt,Dorne,-44.18220396,-117.0849609,,
|
||||
Yronwood,Dorne,-37.64903402,-114.4482422,,
|
||||
Ghaston_Grey,Dorne,-35.31736633,-105,,
|
||||
Vaith,Dorne,-44.59046718,-100.8251953,,
|
||||
Tor,Dorne,-38.75408328,-99.85839844,,
|
||||
Salt_Shore,Dorne,-46.80005945,-97.04589844,,
|
||||
Godsgrace,Dorne,-42.45588764,-96.69433594,,
|
||||
Ghost_Hill,Dorne,-39.26628442,-87.55371094,,
|
||||
Lemonwood,Dorne,-45.33670191,-86.93847656,,
|
||||
Planky_Town,Dorne,-44.0560117,-86.63085938,,
|
||||
Sunspear,Dorne,-43.58039086,-84.56542969,,
|
||||
Water_Gardens,Dorne,-42.97250159,-84.08203125,,
|
||||
Port_of_Ibben,Essos,75.99483914,8.466796875,,
|
||||
Braavos,Essos,43.92954994,-59.78027344,,
|
||||
Lorath,Essos,39.77476949,-39.38964844,,
|
||||
Tyrosh,Essos,-26.70635986,-69.31640625,,
|
||||
Lys,Essos,-43.77109382,-56.96777344,,
|
||||
Myr,Essos,-23.28171918,-49.18945313,,
|
||||
Pentos,Essos,4.083452772,-59.16503906,,
|
||||
Ghoyan_Drohe,Essos,7.754537347,-43.828125,,
|
||||
Norvos,Essos,19.72534225,-31.34765625,,
|
||||
Qohor,Essos,4.477856486,-5.5078125,,
|
||||
Ar_Noy,Essos,-3.864254616,-16.84570313,,
|
||||
Ny_Sar,Essos,-1.054627942,-29.72167969,,
|
||||
Sorrows,Essos,-20.79720143,-22.82226563,,
|
||||
Selhorys,Essos,-32.62087018,-19.96582031,,
|
||||
Valysar,Essos,-38.34165619,-20.22949219,,
|
||||
Volon_Therys,Essos,-41.60722821,-17.32910156,,
|
||||
Sar_Mell,Essos,-41.44272638,-15.52734375,,
|
||||
Volantis,Essos,-44.37098696,-10.69335938,,
|
||||
Mantarys,Essos,-50.73645514,39.31640625,,
|
||||
Bhorash,Essos,-46.86019102,61.24511719,,
|
||||
Oros,Essos,-64.79284778,36.72363281,,
|
||||
Tyria,Essos,-67.05030412,34.83398438,,
|
||||
Valyria,Essos,-70.259452,32.41699219,,
|
||||
Velos,Essos,-62.36999628,56.89453125,,
|
||||
Ghozai,Essos,-58.83649009,55.48828125,,
|
||||
Elyria,Essos,-55.65279803,43.93066406,,
|
||||
Tolos,Essos,-54.39335222,49.3359375,,
|
||||
Meereen,Essos,-45.49094569,80.44921875,,
|
||||
Yunkai,Essos,-49.78126406,75.48339844,,
|
||||
Astapor,Essos,-58.69977573,71.79199219,,
|
||||
Old_Ghis,Essos,-66.63555578,75.26367188,,
|
||||
New_Ghis,Essos,-71.92452774,78.99902344,,
|
||||
Vaes_Dothrak,Essos,-18.02052766,71.8359375,,
|
||||
Lhazar,Essos,-38.27268854,103.3447266,,
|
||||
Vaes_Tolorro,Essos,-76.21644112,139.6435547,,
|
||||
Dead_City1,Essos,-76.94048839,134.8095703,,Red_Waste#Geography
|
||||
Dead_City2,Essos,-77.85109964,125.0537109,,Red_Waste#Geography
|
||||
Qarth,Essos,-81.36788549,161.3964844,,
|
||||
Zamettar,Sothoryos,-79.14653825,70.73730469,,
|
||||
Gogossos,Sothoryos,-80.78175823,58.21289063,,
|
||||
Yeen,Sothoryos,-81.01805777,74.82421875,,
|
||||
Tall_Trees_Town,Summer_Isles,-73.50346064,-130.9277344,,
|
||||
|
@@ -1,320 +0,0 @@
|
||||
(function(window,document,undefined){(function(factory){"use strict";if(typeof define==='function'&&define.amd){define(['jquery'],factory);}
|
||||
else if(jQuery&&!jQuery.fn.qtip){factory(jQuery);}}
|
||||
(function($){"use strict";;var TRUE=true,FALSE=false,NULL=null,X='x',Y='y',WIDTH='width',HEIGHT='height',TOP='top',LEFT='left',BOTTOM='bottom',RIGHT='right',CENTER='center',FLIP='flip',FLIPINVERT='flipinvert',SHIFT='shift',QTIP,PROTOTYPE,CORNER,CHECKS,PLUGINS={},NAMESPACE='qtip',ATTR_HAS='data-hasqtip',ATTR_ID='data-qtip-id',WIDGET=['ui-widget','ui-tooltip'],SELECTOR='.'+NAMESPACE,INACTIVE_EVENTS='click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' '),CLASS_FIXED=NAMESPACE+'-fixed',CLASS_DEFAULT=NAMESPACE+'-default',CLASS_FOCUS=NAMESPACE+'-focus',CLASS_HOVER=NAMESPACE+'-hover',CLASS_DISABLED=NAMESPACE+'-disabled',replaceSuffix='_replacedByqTip',oldtitle='oldtitle',trackingBound,BROWSER={ie:(function(){var v,i;for(v=4,i=document.createElement('div');(i.innerHTML='<!--[if gt IE '+v+']><i></i><![endif]-->')&&i.getElementsByTagName('i')[0];v+=1){}
|
||||
return v>4?v:NaN;})(),iOS:parseFloat((''+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,''])[1]).replace('undefined','3_2').replace('_','.').replace('_',''))||FALSE};;function QTip(target,options,id,attr){this.id=id;this.target=target;this.tooltip=NULL;this.elements={target:target};this._id=NAMESPACE+'-'+id;this.timers={img:{}};this.options=options;this.plugins={};this.cache={event:{},target:$(),disabled:FALSE,attr:attr,onTooltip:FALSE,lastClass:''};this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=FALSE;}
|
||||
PROTOTYPE=QTip.prototype;PROTOTYPE._when=function(deferreds){return $.when.apply($,deferreds);};PROTOTYPE.render=function(show){if(this.rendered||this.destroyed){return this;}
|
||||
var self=this,options=this.options,cache=this.cache,elements=this.elements,text=options.content.text,title=options.content.title,button=options.content.button,posOptions=options.position,deferreds=[];$.attr(this.target[0],'aria-describedby',this._id);cache.posClass=this._createPosClass((this.position={my:posOptions.my,at:posOptions.at}).my);this.tooltip=elements.tooltip=$('<div/>',{'id':this._id,'class':[NAMESPACE,CLASS_DEFAULT,options.style.classes,cache.posClass].join(' '),'width':options.style.width||'','height':options.style.height||'','tracking':posOptions.target==='mouse'&&posOptions.adjust.mouse,'role':'alert','aria-live':'polite','aria-atomic':FALSE,'aria-describedby':this._id+'-content','aria-hidden':TRUE}).toggleClass(CLASS_DISABLED,this.disabled).attr(ATTR_ID,this.id).data(NAMESPACE,this).appendTo(posOptions.container).append(elements.content=$('<div />',{'class':NAMESPACE+'-content','id':this._id+'-content','aria-atomic':TRUE}));this.rendered=-1;this.positioning=TRUE;if(title){this._createTitle();if(!$.isFunction(title)){deferreds.push(this._updateTitle(title,FALSE));}}
|
||||
if(button){this._createButton();}
|
||||
if(!$.isFunction(text)){deferreds.push(this._updateContent(text,FALSE));}
|
||||
this.rendered=TRUE;this._setWidget();$.each(PLUGINS,function(name){var instance;if(this.initialize==='render'&&(instance=this(self))){self.plugins[name]=instance;}});this._unassignEvents();this._assignEvents();this._when(deferreds).then(function(){self._trigger('render');self.positioning=FALSE;if(!self.hiddenDuringWait&&(options.show.ready||show)){self.toggle(TRUE,cache.event,FALSE);}
|
||||
self.hiddenDuringWait=FALSE;});QTIP.api[this.id]=this;return this;};PROTOTYPE.destroy=function(immediate){if(this.destroyed){return this.target;}
|
||||
function process(){if(this.destroyed){return;}
|
||||
this.destroyed=TRUE;var target=this.target,title=target.attr(oldtitle),timer;if(this.rendered){this.tooltip.stop(1,0).find('*').remove().end().remove();}
|
||||
$.each(this.plugins,function(){this.destroy&&this.destroy();});for(timer in this.timers){if(this.timers.hasOwnProperty(timer)){clearTimeout(this.timers[timer]);}}
|
||||
target.removeData(NAMESPACE).removeAttr(ATTR_ID).removeAttr(ATTR_HAS).removeAttr('aria-describedby');if(this.options.suppress&&title){target.attr('title',title).removeAttr(oldtitle);}
|
||||
this._unassignEvents();this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=NULL;delete QTIP.api[this.id];}
|
||||
if((immediate!==TRUE||this.triggering==='hide')&&this.rendered){this.tooltip.one('tooltiphidden',$.proxy(process,this));!this.triggering&&this.hide();}
|
||||
else{process.call(this);}
|
||||
return this.target;};;function invalidOpt(a){return a===NULL||$.type(a)!=='object';}
|
||||
function invalidContent(c){return!($.isFunction(c)||c&&c.attr||c.length||$.type(c)==='object'&&(c.jquery||c.then));}
|
||||
function sanitizeOptions(opts){var content,text,ajax,once;if(invalidOpt(opts)){return FALSE;}
|
||||
if(invalidOpt(opts.metadata)){opts.metadata={type:opts.metadata};}
|
||||
if('content'in opts){content=opts.content;if(invalidOpt(content)||content.jquery||content.done){text=invalidContent(content)?FALSE:content;content=opts.content={text:text};}
|
||||
else{text=content.text;}
|
||||
if('ajax'in content){ajax=content.ajax;once=ajax&&ajax.once!==FALSE;delete content.ajax;content.text=function(event,api){var loading=text||$(this).attr(api.options.content.attr)||'Loading...',deferred=$.ajax($.extend({},ajax,{context:api})).then(ajax.success,NULL,ajax.error).then(function(newContent){if(newContent&&once){api.set('content.text',newContent);}
|
||||
return newContent;},function(xhr,status,error){if(api.destroyed||xhr.status===0){return;}
|
||||
api.set('content.text',status+': '+error);});return!once?(api.set('content.text',loading),deferred):loading;};}
|
||||
if('title'in content){if($.isPlainObject(content.title)){content.button=content.title.button;content.title=content.title.text;}
|
||||
if(invalidContent(content.title||FALSE)){content.title=FALSE;}}}
|
||||
if('position'in opts&&invalidOpt(opts.position)){opts.position={my:opts.position,at:opts.position};}
|
||||
if('show'in opts&&invalidOpt(opts.show)){opts.show=opts.show.jquery?{target:opts.show}:opts.show===TRUE?{ready:TRUE}:{event:opts.show};}
|
||||
if('hide'in opts&&invalidOpt(opts.hide)){opts.hide=opts.hide.jquery?{target:opts.hide}:{event:opts.hide};}
|
||||
if('style'in opts&&invalidOpt(opts.style)){opts.style={classes:opts.style};}
|
||||
$.each(PLUGINS,function(){this.sanitize&&this.sanitize(opts);});return opts;}
|
||||
CHECKS=PROTOTYPE.checks={builtin:{'^id$':function(obj,o,v,prev){var id=v===TRUE?QTIP.nextid:v,newId=NAMESPACE+'-'+id;if(id!==FALSE&&id.length>0&&!$('#'+newId).length){this._id=newId;if(this.rendered){this.tooltip[0].id=this._id;this.elements.content[0].id=this._id+'-content';this.elements.title[0].id=this._id+'-title';}}
|
||||
else{obj[o]=prev;}},'^prerender':function(obj,o,v){v&&!this.rendered&&this.render(this.options.show.ready);},'^content.text$':function(obj,o,v){this._updateContent(v);},'^content.attr$':function(obj,o,v,prev){if(this.options.content.text===this.target.attr(prev)){this._updateContent(this.target.attr(v));}},'^content.title$':function(obj,o,v){if(!v){return this._removeTitle();}
|
||||
v&&!this.elements.title&&this._createTitle();this._updateTitle(v);},'^content.button$':function(obj,o,v){this._updateButton(v);},'^content.title.(text|button)$':function(obj,o,v){this.set('content.'+o,v);},'^position.(my|at)$':function(obj,o,v){if('string'===typeof v){this.position[o]=obj[o]=new CORNER(v,o==='at');}},'^position.container$':function(obj,o,v){this.rendered&&this.tooltip.appendTo(v);},'^show.ready$':function(obj,o,v){v&&(!this.rendered&&this.render(TRUE)||this.toggle(TRUE));},'^style.classes$':function(obj,o,v,p){this.rendered&&this.tooltip.removeClass(p).addClass(v);},'^style.(width|height)':function(obj,o,v){this.rendered&&this.tooltip.css(o,v);},'^style.widget|content.title':function(){this.rendered&&this._setWidget();},'^style.def':function(obj,o,v){this.rendered&&this.tooltip.toggleClass(CLASS_DEFAULT,!!v);},'^events.(render|show|move|hide|focus|blur)$':function(obj,o,v){this.rendered&&this.tooltip[($.isFunction(v)?'':'un')+'bind']('tooltip'+o,v);},'^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)':function(){if(!this.rendered){return;}
|
||||
var posOptions=this.options.position;this.tooltip.attr('tracking',posOptions.target==='mouse'&&posOptions.adjust.mouse);this._unassignEvents();this._assignEvents();}}};function convertNotation(options,notation){var i=0,obj,option=options,levels=notation.split('.');while(option=option[levels[i++]]){if(i<levels.length){obj=option;}}
|
||||
return[obj||options,levels.pop()];}
|
||||
PROTOTYPE.get=function(notation){if(this.destroyed){return this;}
|
||||
var o=convertNotation(this.options,notation.toLowerCase()),result=o[0][o[1]];return result.precedance?result.string():result;};function setCallback(notation,args){var category,rule,match;for(category in this.checks){if(!this.checks.hasOwnProperty(category)){continue;}
|
||||
for(rule in this.checks[category]){if(!this.checks[category].hasOwnProperty(rule)){continue;}
|
||||
if(match=(new RegExp(rule,'i')).exec(notation)){args.push(match);if(category==='builtin'||this.plugins[category]){this.checks[category][rule].apply(this.plugins[category]||this,args);}}}}}
|
||||
var rmove=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,rrender=/^prerender|show\.ready/i;PROTOTYPE.set=function(option,value){if(this.destroyed){return this;}
|
||||
var rendered=this.rendered,reposition=FALSE,options=this.options,name;if('string'===typeof option){name=option;option={};option[name]=value;}
|
||||
else{option=$.extend({},option);}
|
||||
$.each(option,function(notation,val){if(rendered&&rrender.test(notation)){delete option[notation];return;}
|
||||
var obj=convertNotation(options,notation.toLowerCase()),previous;previous=obj[0][obj[1]];obj[0][obj[1]]=val&&val.nodeType?$(val):val;reposition=rmove.test(notation)||reposition;option[notation]=[obj[0],obj[1],val,previous];});sanitizeOptions(options);this.positioning=TRUE;$.each(option,$.proxy(setCallback,this));this.positioning=FALSE;if(this.rendered&&this.tooltip[0].offsetWidth>0&&reposition){this.reposition(options.position.target==='mouse'?NULL:this.cache.event);}
|
||||
return this;};;PROTOTYPE._update=function(content,element){var self=this,cache=this.cache;if(!this.rendered||!content){return FALSE;}
|
||||
if($.isFunction(content)){content=content.call(this.elements.target,cache.event,this)||'';}
|
||||
if($.isFunction(content.then)){cache.waiting=TRUE;return content.then(function(c){cache.waiting=FALSE;return self._update(c,element);},NULL,function(e){return self._update(e,element);});}
|
||||
if(content===FALSE||!content&&content!==''){return FALSE;}
|
||||
if(content.jquery&&content.length>0){element.empty().append(content.css({display:'block',visibility:'visible'}));}
|
||||
else{element.html(content);}
|
||||
return this._waitForContent(element).then(function(images){if(self.rendered&&self.tooltip[0].offsetWidth>0){self.reposition(cache.event,!images.length);}});};PROTOTYPE._waitForContent=function(element){var cache=this.cache;cache.waiting=TRUE;return($.fn.imagesLoaded?element.imagesLoaded():new $.Deferred().resolve([])).done(function(){cache.waiting=FALSE;}).promise();};PROTOTYPE._updateContent=function(content,reposition){this._update(content,this.elements.content,reposition);};PROTOTYPE._updateTitle=function(content,reposition){if(this._update(content,this.elements.title,reposition)===FALSE){this._removeTitle(FALSE);}};PROTOTYPE._createTitle=function()
|
||||
{var elements=this.elements,id=this._id+'-title';if(elements.titlebar){this._removeTitle();}
|
||||
elements.titlebar=$('<div />',{'class':NAMESPACE+'-titlebar '+(this.options.style.widget?createWidgetClass('header'):'')}).append(elements.title=$('<div />',{'id':id,'class':NAMESPACE+'-title','aria-atomic':TRUE})).insertBefore(elements.content).delegate('.qtip-close','mousedown keydown mouseup keyup mouseout',function(event){$(this).toggleClass('ui-state-active ui-state-focus',event.type.substr(-4)==='down');}).delegate('.qtip-close','mouseover mouseout',function(event){$(this).toggleClass('ui-state-hover',event.type==='mouseover');});if(this.options.content.button){this._createButton();}};PROTOTYPE._removeTitle=function(reposition)
|
||||
{var elements=this.elements;if(elements.title){elements.titlebar.remove();elements.titlebar=elements.title=elements.button=NULL;if(reposition!==FALSE){this.reposition();}}};;PROTOTYPE._createPosClass=function(my){return NAMESPACE+'-pos-'+(my||this.options.position.my).abbrev();};PROTOTYPE.reposition=function(event,effect){if(!this.rendered||this.positioning||this.destroyed){return this;}
|
||||
this.positioning=TRUE;var cache=this.cache,tooltip=this.tooltip,posOptions=this.options.position,target=posOptions.target,my=posOptions.my,at=posOptions.at,viewport=posOptions.viewport,container=posOptions.container,adjust=posOptions.adjust,method=adjust.method.split(' '),tooltipWidth=tooltip.outerWidth(FALSE),tooltipHeight=tooltip.outerHeight(FALSE),targetWidth=0,targetHeight=0,type=tooltip.css('position'),position={left:0,top:0},visible=tooltip[0].offsetWidth>0,isScroll=event&&event.type==='scroll',win=$(window),doc=container[0].ownerDocument,mouse=this.mouse,pluginCalculations,offset,adjusted,newClass;if($.isArray(target)&&target.length===2){at={x:LEFT,y:TOP};position={left:target[0],top:target[1]};}
|
||||
else if(target==='mouse'){at={x:LEFT,y:TOP};if((!adjust.mouse||this.options.hide.distance)&&cache.origin&&cache.origin.pageX){event=cache.origin;}
|
||||
else if(!event||event&&(event.type==='resize'||event.type==='scroll')){event=cache.event;}
|
||||
else if(mouse&&mouse.pageX){event=mouse;}
|
||||
if(type!=='static'){position=container.offset();}
|
||||
if(doc.body.offsetWidth!==(window.innerWidth||doc.documentElement.clientWidth)){offset=$(document.body).offset();}
|
||||
position={left:event.pageX-position.left+(offset&&offset.left||0),top:event.pageY-position.top+(offset&&offset.top||0)};if(adjust.mouse&&isScroll&&mouse){position.left-=(mouse.scrollX||0)-win.scrollLeft();position.top-=(mouse.scrollY||0)-win.scrollTop();}}
|
||||
else{if(target==='event'){if(event&&event.target&&event.type!=='scroll'&&event.type!=='resize'){cache.target=$(event.target);}
|
||||
else if(!event.target){cache.target=this.elements.target;}}
|
||||
else if(target!=='event'){cache.target=$(target.jquery?target:this.elements.target);}
|
||||
target=cache.target;target=$(target).eq(0);if(target.length===0){return this;}
|
||||
else if(target[0]===document||target[0]===window){targetWidth=BROWSER.iOS?window.innerWidth:target.width();targetHeight=BROWSER.iOS?window.innerHeight:target.height();if(target[0]===window){position={top:(viewport||target).scrollTop(),left:(viewport||target).scrollLeft()};}}
|
||||
else if(PLUGINS.imagemap&&target.is('area')){pluginCalculations=PLUGINS.imagemap(this,target,at,PLUGINS.viewport?method:FALSE);}
|
||||
else if(PLUGINS.svg&&target&&target[0].ownerSVGElement){pluginCalculations=PLUGINS.svg(this,target,at,PLUGINS.viewport?method:FALSE);}
|
||||
else{targetWidth=target.outerWidth(FALSE);targetHeight=target.outerHeight(FALSE);position=target.offset();}
|
||||
if(pluginCalculations){targetWidth=pluginCalculations.width;targetHeight=pluginCalculations.height;offset=pluginCalculations.offset;position=pluginCalculations.position;}
|
||||
position=this.reposition.offset(target,position,container);if(BROWSER.iOS>3.1&&BROWSER.iOS<4.1||BROWSER.iOS>=4.3&&BROWSER.iOS<4.33||!BROWSER.iOS&&type==='fixed'){position.left-=win.scrollLeft();position.top-=win.scrollTop();}
|
||||
if(!pluginCalculations||pluginCalculations&&pluginCalculations.adjustable!==FALSE){position.left+=at.x===RIGHT?targetWidth:at.x===CENTER?targetWidth/2:0;position.top+=at.y===BOTTOM?targetHeight:at.y===CENTER?targetHeight/2:0;}}
|
||||
position.left+=adjust.x+(my.x===RIGHT?-tooltipWidth:my.x===CENTER?-tooltipWidth/2:0);position.top+=adjust.y+(my.y===BOTTOM?-tooltipHeight:my.y===CENTER?-tooltipHeight/2:0);if(PLUGINS.viewport){adjusted=position.adjusted=PLUGINS.viewport(this,position,posOptions,targetWidth,targetHeight,tooltipWidth,tooltipHeight);if(offset&&adjusted.left){position.left+=offset.left;}
|
||||
if(offset&&adjusted.top){position.top+=offset.top;}
|
||||
if(adjusted.my){this.position.my=adjusted.my;}}
|
||||
else{position.adjusted={left:0,top:0};}
|
||||
if(cache.posClass!==(newClass=this._createPosClass(this.position.my))){cache.posClass=newClass;tooltip.removeClass(cache.posClass).addClass(newClass);}
|
||||
if(!this._trigger('move',[position,viewport.elem||viewport],event)){return this;}
|
||||
delete position.adjusted;if(effect===FALSE||!visible||isNaN(position.left)||isNaN(position.top)||target==='mouse'||!$.isFunction(posOptions.effect)){tooltip.css(position);}
|
||||
else if($.isFunction(posOptions.effect)){posOptions.effect.call(tooltip,this,$.extend({},position));tooltip.queue(function(next){$(this).css({opacity:'',height:''});if(BROWSER.ie){this.style.removeAttribute('filter');}
|
||||
next();});}
|
||||
this.positioning=FALSE;return this;};PROTOTYPE.reposition.offset=function(elem,pos,container){if(!container[0]){return pos;}
|
||||
var ownerDocument=$(elem[0].ownerDocument),quirks=!!BROWSER.ie&&document.compatMode!=='CSS1Compat',parent=container[0],scrolled,position,parentOffset,overflow;function scroll(e,i){pos.left+=i*e.scrollLeft();pos.top+=i*e.scrollTop();}
|
||||
do{if((position=$.css(parent,'position'))!=='static'){if(position==='fixed'){parentOffset=parent.getBoundingClientRect();scroll(ownerDocument,-1);}
|
||||
else{parentOffset=$(parent).position();parentOffset.left+=parseFloat($.css(parent,'borderLeftWidth'))||0;parentOffset.top+=parseFloat($.css(parent,'borderTopWidth'))||0;}
|
||||
pos.left-=parentOffset.left+(parseFloat($.css(parent,'marginLeft'))||0);pos.top-=parentOffset.top+(parseFloat($.css(parent,'marginTop'))||0);if(!scrolled&&(overflow=$.css(parent,'overflow'))!=='hidden'&&overflow!=='visible'){scrolled=$(parent);}}}
|
||||
while(parent=parent.offsetParent);if(scrolled&&(scrolled[0]!==ownerDocument[0]||quirks)){scroll(scrolled,1);}
|
||||
return pos;};var C=(CORNER=PROTOTYPE.reposition.Corner=function(corner,forceY){corner=(''+corner).replace(/([A-Z])/,' $1').replace(/middle/gi,CENTER).toLowerCase();this.x=(corner.match(/left|right/i)||corner.match(/center/)||['inherit'])[0].toLowerCase();this.y=(corner.match(/top|bottom|center/i)||['inherit'])[0].toLowerCase();this.forceY=!!forceY;var f=corner.charAt(0);this.precedance=f==='t'||f==='b'?Y:X;}).prototype;C.invert=function(z,center){this[z]=this[z]===LEFT?RIGHT:this[z]===RIGHT?LEFT:center||this[z];};C.string=function(join){var x=this.x,y=this.y;var result=x!==y?x==='center'||y!=='center'&&(this.precedance===Y||this.forceY)?[y,x]:[x,y]:[x];return join!==false?result.join(' '):result;};C.abbrev=function(){var result=this.string(false);return result[0].charAt(0)+(result[1]&&result[1].charAt(0)||'');};C.clone=function(){return new CORNER(this.string(),this.forceY);};;PROTOTYPE.toggle=function(state,event){var cache=this.cache,options=this.options,tooltip=this.tooltip;if(event){if((/over|enter/).test(event.type)&&cache.event&&(/out|leave/).test(cache.event.type)&&options.show.target.add(event.target).length===options.show.target.length&&tooltip.has(event.relatedTarget).length){return this;}
|
||||
cache.event=$.event.fix(event);}
|
||||
this.waiting&&!state&&(this.hiddenDuringWait=TRUE);if(!this.rendered){return state?this.render(1):this;}
|
||||
else if(this.destroyed||this.disabled){return this;}
|
||||
var type=state?'show':'hide',opts=this.options[type],posOptions=this.options.position,contentOptions=this.options.content,width=this.tooltip.css('width'),visible=this.tooltip.is(':visible'),animate=state||opts.target.length===1,sameTarget=!event||opts.target.length<2||cache.target[0]===event.target,identicalState,allow,after;if((typeof state).search('boolean|number')){state=!visible;}
|
||||
identicalState=!tooltip.is(':animated')&&visible===state&&sameTarget;allow=!identicalState?!!this._trigger(type,[90]):NULL;if(this.destroyed){return this;}
|
||||
if(allow!==FALSE&&state){this.focus(event);}
|
||||
if(!allow||identicalState){return this;}
|
||||
$.attr(tooltip[0],'aria-hidden',!!!state);if(state){this.mouse&&(cache.origin=$.event.fix(this.mouse));if($.isFunction(contentOptions.text)){this._updateContent(contentOptions.text,FALSE);}
|
||||
if($.isFunction(contentOptions.title)){this._updateTitle(contentOptions.title,FALSE);}
|
||||
if(!trackingBound&&posOptions.target==='mouse'&&posOptions.adjust.mouse){$(document).bind('mousemove.'+NAMESPACE,this._storeMouse);trackingBound=TRUE;}
|
||||
if(!width){tooltip.css('width',tooltip.outerWidth(FALSE));}
|
||||
this.reposition(event,arguments[2]);if(!width){tooltip.css('width','');}
|
||||
if(!!opts.solo){(typeof opts.solo==='string'?$(opts.solo):$(SELECTOR,opts.solo)).not(tooltip).not(opts.target).qtip('hide',new $.Event('tooltipsolo'));}}
|
||||
else{clearTimeout(this.timers.show);delete cache.origin;if(trackingBound&&!$(SELECTOR+'[tracking="true"]:visible',opts.solo).not(tooltip).length){$(document).unbind('mousemove.'+NAMESPACE);trackingBound=FALSE;}
|
||||
this.blur(event);}
|
||||
after=$.proxy(function(){if(state){if(BROWSER.ie){tooltip[0].style.removeAttribute('filter');}
|
||||
tooltip.css('overflow','');if('string'===typeof opts.autofocus){$(this.options.show.autofocus,tooltip).focus();}
|
||||
this.options.show.target.trigger('qtip-'+this.id+'-inactive');}
|
||||
else{tooltip.css({display:'',visibility:'',opacity:'',left:'',top:''});}
|
||||
this._trigger(state?'visible':'hidden');},this);if(opts.effect===FALSE||animate===FALSE){tooltip[type]();after();}
|
||||
else if($.isFunction(opts.effect)){tooltip.stop(1,1);opts.effect.call(tooltip,this);tooltip.queue('fx',function(n){after();n();});}
|
||||
else{tooltip.fadeTo(90,state?1:0,after);}
|
||||
if(state){opts.target.trigger('qtip-'+this.id+'-inactive');}
|
||||
return this;};PROTOTYPE.show=function(event){return this.toggle(TRUE,event);};PROTOTYPE.hide=function(event){return this.toggle(FALSE,event);};;PROTOTYPE.focus=function(event){if(!this.rendered||this.destroyed){return this;}
|
||||
var qtips=$(SELECTOR),tooltip=this.tooltip,curIndex=parseInt(tooltip[0].style.zIndex,10),newIndex=QTIP.zindex+qtips.length;if(!tooltip.hasClass(CLASS_FOCUS)){if(this._trigger('focus',[newIndex],event)){if(curIndex!==newIndex){qtips.each(function(){if(this.style.zIndex>curIndex){this.style.zIndex=this.style.zIndex-1;}});qtips.filter('.'+CLASS_FOCUS).qtip('blur',event);}
|
||||
tooltip.addClass(CLASS_FOCUS)[0].style.zIndex=newIndex;}}
|
||||
return this;};PROTOTYPE.blur=function(event){if(!this.rendered||this.destroyed){return this;}
|
||||
this.tooltip.removeClass(CLASS_FOCUS);this._trigger('blur',[this.tooltip.css('zIndex')],event);return this;};;PROTOTYPE.disable=function(state){if(this.destroyed){return this;}
|
||||
if(state==='toggle'){state=!(this.rendered?this.tooltip.hasClass(CLASS_DISABLED):this.disabled);}
|
||||
else if('boolean'!==typeof state){state=TRUE;}
|
||||
if(this.rendered){this.tooltip.toggleClass(CLASS_DISABLED,state).attr('aria-disabled',state);}
|
||||
this.disabled=!!state;return this;};PROTOTYPE.enable=function(){return this.disable(FALSE);};;PROTOTYPE._createButton=function()
|
||||
{var self=this,elements=this.elements,tooltip=elements.tooltip,button=this.options.content.button,isString=typeof button==='string',close=isString?button:'Close tooltip';if(elements.button){elements.button.remove();}
|
||||
if(button.jquery){elements.button=button;}
|
||||
else{elements.button=$('<a />',{'class':'qtip-close '+(this.options.style.widget?'':NAMESPACE+'-icon'),'title':close,'aria-label':close}).prepend($('<span />',{'class':'ui-icon ui-icon-close','html':'×'}));}
|
||||
elements.button.appendTo(elements.titlebar||tooltip).attr('role','button').click(function(event){if(!tooltip.hasClass(CLASS_DISABLED)){self.hide(event);}
|
||||
return FALSE;});};PROTOTYPE._updateButton=function(button)
|
||||
{if(!this.rendered){return FALSE;}
|
||||
var elem=this.elements.button;if(button){this._createButton();}
|
||||
else{elem.remove();}};;function createWidgetClass(cls){return WIDGET.concat('').join(cls?'-'+cls+' ':' ');}
|
||||
PROTOTYPE._setWidget=function()
|
||||
{var on=this.options.style.widget,elements=this.elements,tooltip=elements.tooltip,disabled=tooltip.hasClass(CLASS_DISABLED);tooltip.removeClass(CLASS_DISABLED);CLASS_DISABLED=on?'ui-state-disabled':'qtip-disabled';tooltip.toggleClass(CLASS_DISABLED,disabled);tooltip.toggleClass('ui-helper-reset '+createWidgetClass(),on).toggleClass(CLASS_DEFAULT,this.options.style.def&&!on);if(elements.content){elements.content.toggleClass(createWidgetClass('content'),on);}
|
||||
if(elements.titlebar){elements.titlebar.toggleClass(createWidgetClass('header'),on);}
|
||||
if(elements.button){elements.button.toggleClass(NAMESPACE+'-icon',!on);}};;function delay(callback,duration){if(duration>0){return setTimeout($.proxy(callback,this),duration);}
|
||||
else{callback.call(this);}}
|
||||
function showMethod(event){if(this.tooltip.hasClass(CLASS_DISABLED)){return;}
|
||||
clearTimeout(this.timers.show);clearTimeout(this.timers.hide);this.timers.show=delay.call(this,function(){this.toggle(TRUE,event);},this.options.show.delay);}
|
||||
function hideMethod(event){if(this.tooltip.hasClass(CLASS_DISABLED)||this.destroyed){return;}
|
||||
var relatedTarget=$(event.relatedTarget),ontoTooltip=relatedTarget.closest(SELECTOR)[0]===this.tooltip[0],ontoTarget=relatedTarget[0]===this.options.show.target[0];clearTimeout(this.timers.show);clearTimeout(this.timers.hide);if(this!==relatedTarget[0]&&(this.options.position.target==='mouse'&&ontoTooltip)||this.options.hide.fixed&&((/mouse(out|leave|move)/).test(event.type)&&(ontoTooltip||ontoTarget)))
|
||||
{try{event.preventDefault();event.stopImmediatePropagation();}catch(e){}
|
||||
return;}
|
||||
this.timers.hide=delay.call(this,function(){this.toggle(FALSE,event);},this.options.hide.delay,this);}
|
||||
function inactiveMethod(event){if(this.tooltip.hasClass(CLASS_DISABLED)||!this.options.hide.inactive){return;}
|
||||
clearTimeout(this.timers.inactive);this.timers.inactive=delay.call(this,function(){this.hide(event);},this.options.hide.inactive);}
|
||||
function repositionMethod(event){if(this.rendered&&this.tooltip[0].offsetWidth>0){this.reposition(event);}}
|
||||
PROTOTYPE._storeMouse=function(event){(this.mouse=$.event.fix(event)).type='mousemove';return this;};PROTOTYPE._bind=function(targets,events,method,suffix,context){if(!targets||!method||!events.length){return;}
|
||||
var ns='.'+this._id+(suffix?'-'+suffix:'');$(targets).bind((events.split?events:events.join(ns+' '))+ns,$.proxy(method,context||this));return this;};PROTOTYPE._unbind=function(targets,suffix){targets&&$(targets).unbind('.'+this._id+(suffix?'-'+suffix:''));return this;};function delegate(selector,events,method){$(document.body).delegate(selector,(events.split?events:events.join('.'+NAMESPACE+' '))+'.'+NAMESPACE,function(){var api=QTIP.api[$.attr(this,ATTR_ID)];api&&!api.disabled&&method.apply(api,arguments);});}
|
||||
PROTOTYPE._trigger=function(type,args,event){var callback=new $.Event('tooltip'+type);callback.originalEvent=event&&$.extend({},event)||this.cache.event||NULL;this.triggering=type;this.tooltip.trigger(callback,[this].concat(args||[]));this.triggering=FALSE;return!callback.isDefaultPrevented();};PROTOTYPE._bindEvents=function(showEvents,hideEvents,showTargets,hideTargets,showCallback,hideCallback){var similarTargets=showTargets.filter(hideTargets).add(hideTargets.filter(showTargets)),toggleEvents=[];if(similarTargets.length){$.each(hideEvents,function(i,type){var showIndex=$.inArray(type,showEvents);showIndex>-1&&toggleEvents.push(showEvents.splice(showIndex,1)[0]);});if(toggleEvents.length){this._bind(similarTargets,toggleEvents,function(event){var state=this.rendered?this.tooltip[0].offsetWidth>0:false;(state?hideCallback:showCallback).call(this,event);});showTargets=showTargets.not(similarTargets);hideTargets=hideTargets.not(similarTargets);}}
|
||||
this._bind(showTargets,showEvents,showCallback);this._bind(hideTargets,hideEvents,hideCallback);};PROTOTYPE._assignInitialEvents=function(event){var options=this.options,showTarget=options.show.target,hideTarget=options.hide.target,showEvents=options.show.event?$.trim(''+options.show.event).split(' '):[],hideEvents=options.hide.event?$.trim(''+options.hide.event).split(' '):[];this._bind(this.elements.target,['remove','removeqtip'],function(){this.destroy(true);},'destroy');if(/mouse(over|enter)/i.test(options.show.event)&&!/mouse(out|leave)/i.test(options.hide.event)){hideEvents.push('mouseleave');}
|
||||
this._bind(showTarget,'mousemove',function(moveEvent){this._storeMouse(moveEvent);this.cache.onTarget=TRUE;});function hoverIntent(hoverEvent){if(this.disabled||this.destroyed){return FALSE;}
|
||||
this.cache.event=hoverEvent&&$.event.fix(hoverEvent);this.cache.target=hoverEvent&&$(hoverEvent.target);clearTimeout(this.timers.show);this.timers.show=delay.call(this,function(){this.render(typeof hoverEvent==='object'||options.show.ready);},options.prerender?0:options.show.delay);}
|
||||
this._bindEvents(showEvents,hideEvents,showTarget,hideTarget,hoverIntent,function(){if(!this.timers){return FALSE;}
|
||||
clearTimeout(this.timers.show);});if(options.show.ready||options.prerender){hoverIntent.call(this,event);}};PROTOTYPE._assignEvents=function(){var self=this,options=this.options,posOptions=options.position,tooltip=this.tooltip,showTarget=options.show.target,hideTarget=options.hide.target,containerTarget=posOptions.container,viewportTarget=posOptions.viewport,documentTarget=$(document),windowTarget=$(window),showEvents=options.show.event?$.trim(''+options.show.event).split(' '):[],hideEvents=options.hide.event?$.trim(''+options.hide.event).split(' '):[];$.each(options.events,function(name,callback){self._bind(tooltip,name==='toggle'?['tooltipshow','tooltiphide']:['tooltip'+name],callback,null,tooltip);});if(/mouse(out|leave)/i.test(options.hide.event)&&options.hide.leave==='window'){this._bind(documentTarget,['mouseout','blur'],function(event){if(!/select|option/.test(event.target.nodeName)&&!event.relatedTarget){this.hide(event);}});}
|
||||
if(options.hide.fixed){hideTarget=hideTarget.add(tooltip.addClass(CLASS_FIXED));}
|
||||
else if(/mouse(over|enter)/i.test(options.show.event)){this._bind(hideTarget,'mouseleave',function(){clearTimeout(this.timers.show);});}
|
||||
if((''+options.hide.event).indexOf('unfocus')>-1){this._bind(containerTarget.closest('html'),['mousedown','touchstart'],function(event){var elem=$(event.target),enabled=this.rendered&&!this.tooltip.hasClass(CLASS_DISABLED)&&this.tooltip[0].offsetWidth>0,isAncestor=elem.parents(SELECTOR).filter(this.tooltip[0]).length>0;if(elem[0]!==this.target[0]&&elem[0]!==this.tooltip[0]&&!isAncestor&&!this.target.has(elem[0]).length&&enabled){this.hide(event);}});}
|
||||
if('number'===typeof options.hide.inactive){this._bind(showTarget,'qtip-'+this.id+'-inactive',inactiveMethod,'inactive');this._bind(hideTarget.add(tooltip),QTIP.inactiveEvents,inactiveMethod);}
|
||||
this._bindEvents(showEvents,hideEvents,showTarget,hideTarget,showMethod,hideMethod);this._bind(showTarget.add(tooltip),'mousemove',function(event){if('number'===typeof options.hide.distance){var origin=this.cache.origin||{},limit=this.options.hide.distance,abs=Math.abs;if(abs(event.pageX-origin.pageX)>=limit||abs(event.pageY-origin.pageY)>=limit){this.hide(event);}}
|
||||
this._storeMouse(event);});if(posOptions.target==='mouse'){if(posOptions.adjust.mouse){if(options.hide.event){this._bind(showTarget,['mouseenter','mouseleave'],function(event){if(!this.cache){return FALSE;}
|
||||
this.cache.onTarget=event.type==='mouseenter';});}
|
||||
this._bind(documentTarget,'mousemove',function(event){if(this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass(CLASS_DISABLED)&&this.tooltip[0].offsetWidth>0){this.reposition(event);}});}}
|
||||
if(posOptions.adjust.resize||viewportTarget.length){this._bind($.event.special.resize?viewportTarget:windowTarget,'resize',repositionMethod);}
|
||||
if(posOptions.adjust.scroll){this._bind(windowTarget.add(posOptions.container),'scroll',repositionMethod);}};PROTOTYPE._unassignEvents=function(){var options=this.options,showTargets=options.show.target,hideTargets=options.hide.target,targets=$.grep([this.elements.target[0],this.rendered&&this.tooltip[0],options.position.container[0],options.position.viewport[0],options.position.container.closest('html')[0],window,document],function(i){return typeof i==='object';});if(showTargets&&showTargets.toArray){targets=targets.concat(showTargets.toArray());}
|
||||
if(hideTargets&&hideTargets.toArray){targets=targets.concat(hideTargets.toArray());}
|
||||
this._unbind(targets)._unbind(targets,'destroy')._unbind(targets,'inactive');};$(function(){delegate(SELECTOR,['mouseenter','mouseleave'],function(event){var state=event.type==='mouseenter',tooltip=$(event.currentTarget),target=$(event.relatedTarget||event.target),options=this.options;if(state){this.focus(event);tooltip.hasClass(CLASS_FIXED)&&!tooltip.hasClass(CLASS_DISABLED)&&clearTimeout(this.timers.hide);}
|
||||
else{if(options.position.target==='mouse'&&options.position.adjust.mouse&&options.hide.event&&options.show.target&&!target.closest(options.show.target[0]).length){this.hide(event);}}
|
||||
tooltip.toggleClass(CLASS_HOVER,state);});delegate('['+ATTR_ID+']',INACTIVE_EVENTS,inactiveMethod);});;function init(elem,id,opts){var obj,posOptions,attr,config,title,docBody=$(document.body),newTarget=elem[0]===document?docBody:elem,metadata=elem.metadata?elem.metadata(opts.metadata):NULL,metadata5=opts.metadata.type==='html5'&&metadata?metadata[opts.metadata.name]:NULL,html5=elem.data(opts.metadata.name||'qtipopts');try{html5=typeof html5==='string'?$.parseJSON(html5):html5;}
|
||||
catch(e){}
|
||||
config=$.extend(TRUE,{},QTIP.defaults,opts,typeof html5==='object'?sanitizeOptions(html5):NULL,sanitizeOptions(metadata5||metadata));posOptions=config.position;config.id=id;if('boolean'===typeof config.content.text){attr=elem.attr(config.content.attr);if(config.content.attr!==FALSE&&attr){config.content.text=attr;}
|
||||
else{return FALSE;}}
|
||||
if(!posOptions.container.length){posOptions.container=docBody;}
|
||||
if(posOptions.target===FALSE){posOptions.target=newTarget;}
|
||||
if(config.show.target===FALSE){config.show.target=newTarget;}
|
||||
if(config.show.solo===TRUE){config.show.solo=posOptions.container.closest('body');}
|
||||
if(config.hide.target===FALSE){config.hide.target=newTarget;}
|
||||
if(config.position.viewport===TRUE){config.position.viewport=posOptions.container;}
|
||||
posOptions.container=posOptions.container.eq(0);posOptions.at=new CORNER(posOptions.at,TRUE);posOptions.my=new CORNER(posOptions.my);if(elem.data(NAMESPACE)){if(config.overwrite){elem.qtip('destroy',true);}
|
||||
else if(config.overwrite===FALSE){return FALSE;}}
|
||||
elem.attr(ATTR_HAS,id);if(config.suppress&&(title=elem.attr('title'))){elem.removeAttr('title').attr(oldtitle,title).attr('title','');}
|
||||
obj=new QTip(elem,config,id,!!attr);elem.data(NAMESPACE,obj);return obj;}
|
||||
QTIP=$.fn.qtip=function(options,notation,newValue)
|
||||
{var command=(''+options).toLowerCase(),returned=NULL,args=$.makeArray(arguments).slice(1),event=args[args.length-1],opts=this[0]?$.data(this[0],NAMESPACE):NULL;if(!arguments.length&&opts||command==='api'){return opts;}
|
||||
else if('string'===typeof options){this.each(function(){var api=$.data(this,NAMESPACE);if(!api){return TRUE;}
|
||||
if(event&&event.timeStamp){api.cache.event=event;}
|
||||
if(notation&&(command==='option'||command==='options')){if(newValue!==undefined||$.isPlainObject(notation)){api.set(notation,newValue);}
|
||||
else{returned=api.get(notation);return FALSE;}}
|
||||
else if(api[command]){api[command].apply(api,args);}});return returned!==NULL?returned:this;}
|
||||
else if('object'===typeof options||!arguments.length){opts=sanitizeOptions($.extend(TRUE,{},options));return this.each(function(i){var api,id;id=$.isArray(opts.id)?opts.id[i]:opts.id;id=!id||id===FALSE||id.length<1||QTIP.api[id]?QTIP.nextid++:id;api=init($(this),id,opts);if(api===FALSE){return TRUE;}
|
||||
else{QTIP.api[id]=api;}
|
||||
$.each(PLUGINS,function(){if(this.initialize==='initialize'){this(api);}});api._assignInitialEvents(event);});}};$.qtip=QTip;QTIP.api={};;$.each({attr:function(attr,val){if(this.length){var self=this[0],title='title',api=$.data(self,'qtip');if(attr===title&&api&&api.options&&'object'===typeof api&&'object'===typeof api.options&&api.options.suppress){if(arguments.length<2){return $.attr(self,oldtitle);}
|
||||
if(api&&api.options.content.attr===title&&api.cache.attr){api.set('content.text',val);}
|
||||
return this.attr(oldtitle,val);}}
|
||||
return $.fn['attr'+replaceSuffix].apply(this,arguments);},clone:function(keepData){var elems=$.fn['clone'+replaceSuffix].apply(this,arguments);if(!keepData){elems.filter('['+oldtitle+']').attr('title',function(){return $.attr(this,oldtitle);}).removeAttr(oldtitle);}
|
||||
return elems;}},function(name,func){if(!func||$.fn[name+replaceSuffix]){return TRUE;}
|
||||
var old=$.fn[name+replaceSuffix]=$.fn[name];$.fn[name]=function(){return func.apply(this,arguments)||old.apply(this,arguments);};});if(!$.ui){$['cleanData'+replaceSuffix]=$.cleanData;$.cleanData=function(elems){for(var i=0,elem;(elem=$(elems[i])).length;i++){if(elem.attr(ATTR_HAS)){try{elem.triggerHandler('removeqtip');}
|
||||
catch(e){}}}
|
||||
$['cleanData'+replaceSuffix].apply(this,arguments);};};QTIP.version='3.0.3';QTIP.nextid=0;QTIP.inactiveEvents=INACTIVE_EVENTS;QTIP.zindex=15000;QTIP.defaults={prerender:FALSE,id:FALSE,overwrite:TRUE,suppress:TRUE,content:{text:TRUE,attr:'title',title:FALSE,button:FALSE},position:{my:'top left',at:'bottom right',target:FALSE,container:FALSE,viewport:FALSE,adjust:{x:0,y:0,mouse:TRUE,scroll:TRUE,resize:TRUE,method:'flipinvert flipinvert'},effect:function(api,pos){$(this).animate(pos,{duration:200,queue:FALSE});}},show:{target:FALSE,event:'mouseenter',effect:TRUE,delay:90,solo:FALSE,ready:FALSE,autofocus:FALSE},hide:{target:FALSE,event:'mouseleave',effect:TRUE,delay:0,fixed:FALSE,inactive:FALSE,leave:'window',distance:FALSE},style:{classes:'',widget:FALSE,width:FALSE,height:FALSE,def:TRUE},events:{render:NULL,move:NULL,show:NULL,hide:NULL,toggle:NULL,visible:NULL,hidden:NULL,focus:NULL,blur:NULL}};;var TIP,createVML,SCALE,PIXEL_RATIO,BACKING_STORE_RATIO,MARGIN='margin',BORDER='border',COLOR='color',BG_COLOR='background-color',TRANSPARENT='transparent',IMPORTANT=' !important',HASCANVAS=!!document.createElement('canvas').getContext,INVALID=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i;function camel(s){return s.charAt(0).toUpperCase()+s.slice(1);}
|
||||
var cssProps={},cssPrefixes=['Webkit','O','Moz','ms'];function vendorCss(elem,prop){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+' '+cssPrefixes.join(ucProp+' ')+ucProp).split(' '),cur,val,i=0;if(cssProps[prop]){return elem.css(cssProps[prop]);}
|
||||
while(cur=props[i++]){if((val=elem.css(cur))!==undefined){cssProps[prop]=cur;return val;}}}
|
||||
function intCss(elem,prop){return Math.ceil(parseFloat(vendorCss(elem,prop)));}
|
||||
if(!HASCANVAS){createVML=function(tag,props,style){return '<qtipvml:'+tag+' xmlns="urn:schemas-microsoft.com:vml" class="qtip-vml" '+(props||'')+
|
||||
' style="behavior: url(#default#VML); '+(style||'')+'" />';};}
|
||||
else{PIXEL_RATIO=window.devicePixelRatio||1;BACKING_STORE_RATIO=(function(){var context=document.createElement('canvas').getContext('2d');return context.backingStorePixelRatio||context.webkitBackingStorePixelRatio||context.mozBackingStorePixelRatio||context.msBackingStorePixelRatio||context.oBackingStorePixelRatio||1;})();SCALE=PIXEL_RATIO/BACKING_STORE_RATIO;}
|
||||
function Tip(qtip,options){this._ns='tip';this.options=options;this.offset=options.offset;this.size=[options.width,options.height];this.qtip=qtip;this.init(qtip);}
|
||||
$.extend(Tip.prototype,{init:function(qtip){var context,tip;tip=this.element=qtip.elements.tip=$('<div />',{'class':NAMESPACE+'-tip'}).prependTo(qtip.tooltip);if(HASCANVAS){context=$('<canvas />').appendTo(this.element)[0].getContext('2d');context.lineJoin='miter';context.miterLimit=100000;context.save();}
|
||||
else{context=createVML('shape','coordorigin="0,0"','position:absolute;');this.element.html(context+context);qtip._bind($('*',tip).add(tip),['click','mousedown'],function(event){event.stopPropagation();},this._ns);}
|
||||
qtip._bind(qtip.tooltip,'tooltipmove',this.reposition,this._ns,this);this.create();},_swapDimensions:function(){this.size[0]=this.options.height;this.size[1]=this.options.width;},_resetDimensions:function(){this.size[0]=this.options.width;this.size[1]=this.options.height;},_useTitle:function(corner){var titlebar=this.qtip.elements.titlebar;return titlebar&&(corner.y===TOP||corner.y===CENTER&&this.element.position().top+this.size[1]/2+this.options.offset<titlebar.outerHeight(TRUE));},_parseCorner:function(corner){var my=this.qtip.options.position.my;if(corner===FALSE||my===FALSE){corner=FALSE;}
|
||||
else if(corner===TRUE){corner=new CORNER(my.string());}
|
||||
else if(!corner.string){corner=new CORNER(corner);corner.fixed=TRUE;}
|
||||
return corner;},_parseWidth:function(corner,side,use){var elements=this.qtip.elements,prop=BORDER+camel(side)+'Width';return(use?intCss(use,prop):intCss(elements.content,prop)||intCss(this._useTitle(corner)&&elements.titlebar||elements.content,prop)||intCss(elements.tooltip,prop))||0;},_parseRadius:function(corner){var elements=this.qtip.elements,prop=BORDER+camel(corner.y)+camel(corner.x)+'Radius';return BROWSER.ie<9?0:intCss(this._useTitle(corner)&&elements.titlebar||elements.content,prop)||intCss(elements.tooltip,prop)||0;},_invalidColour:function(elem,prop,compare){var val=elem.css(prop);return!val||compare&&val===elem.css(compare)||INVALID.test(val)?FALSE:val;},_parseColours:function(corner){var elements=this.qtip.elements,tip=this.element.css('cssText',''),borderSide=BORDER+camel(corner[corner.precedance])+camel(COLOR),colorElem=this._useTitle(corner)&&elements.titlebar||elements.content,css=this._invalidColour,color=[];color[0]=css(tip,BG_COLOR)||css(colorElem,BG_COLOR)||css(elements.content,BG_COLOR)||css(elements.tooltip,BG_COLOR)||tip.css(BG_COLOR);color[1]=css(tip,borderSide,COLOR)||css(colorElem,borderSide,COLOR)||css(elements.content,borderSide,COLOR)||css(elements.tooltip,borderSide,COLOR)||elements.tooltip.css(borderSide);$('*',tip).add(tip).css('cssText',BG_COLOR+':'+TRANSPARENT+IMPORTANT+';'+BORDER+':0'+IMPORTANT+';');return color;},_calculateSize:function(corner){var y=corner.precedance===Y,width=this.options.width,height=this.options.height,isCenter=corner.abbrev()==='c',base=(y?width:height)*(isCenter?0.5:1),pow=Math.pow,round=Math.round,bigHyp,ratio,result,smallHyp=Math.sqrt(pow(base,2)+pow(height,2)),hyp=[this.border/base*smallHyp,this.border/height*smallHyp];hyp[2]=Math.sqrt(pow(hyp[0],2)-pow(this.border,2));hyp[3]=Math.sqrt(pow(hyp[1],2)-pow(this.border,2));bigHyp=smallHyp+hyp[2]+hyp[3]+(isCenter?0:hyp[0]);ratio=bigHyp/smallHyp;result=[round(ratio*width),round(ratio*height)];return y?result:result.reverse();},_calculateTip:function(corner,size,scale){scale=scale||1;size=size||this.size;var width=size[0]*scale,height=size[1]*scale,width2=Math.ceil(width/2),height2=Math.ceil(height/2),tips={br:[0,0,width,height,width,0],bl:[0,0,width,0,0,height],tr:[0,height,width,0,width,height],tl:[0,0,0,height,width,height],tc:[0,height,width2,0,width,height],bc:[0,0,width,0,width2,height],rc:[0,0,width,height2,0,height],lc:[width,0,width,height,0,height2]};tips.lt=tips.br;tips.rt=tips.bl;tips.lb=tips.tr;tips.rb=tips.tl;return tips[corner.abbrev()];},_drawCoords:function(context,coords){context.beginPath();context.moveTo(coords[0],coords[1]);context.lineTo(coords[2],coords[3]);context.lineTo(coords[4],coords[5]);context.closePath();},create:function(){var c=this.corner=(HASCANVAS||BROWSER.ie)&&this._parseCorner(this.options.corner);this.enabled=!!this.corner&&this.corner.abbrev()!=='c';if(this.enabled){this.qtip.cache.corner=c.clone();this.update();}
|
||||
this.element.toggle(this.enabled);return this.corner;},update:function(corner,position){if(!this.enabled){return this;}
|
||||
var elements=this.qtip.elements,tip=this.element,inner=tip.children(),options=this.options,curSize=this.size,mimic=options.mimic,round=Math.round,color,precedance,context,coords,bigCoords,translate,newSize,border;if(!corner){corner=this.qtip.cache.corner||this.corner;}
|
||||
if(mimic===FALSE){mimic=corner;}
|
||||
else{mimic=new CORNER(mimic);mimic.precedance=corner.precedance;if(mimic.x==='inherit'){mimic.x=corner.x;}
|
||||
else if(mimic.y==='inherit'){mimic.y=corner.y;}
|
||||
else if(mimic.x===mimic.y){mimic[corner.precedance]=corner[corner.precedance];}}
|
||||
precedance=mimic.precedance;if(corner.precedance===X){this._swapDimensions();}
|
||||
else{this._resetDimensions();}
|
||||
color=this.color=this._parseColours(corner);if(color[1]!==TRANSPARENT){border=this.border=this._parseWidth(corner,corner[corner.precedance]);if(options.border&&border<1&&!INVALID.test(color[1])){color[0]=color[1];}
|
||||
this.border=border=options.border!==TRUE?options.border:border;}
|
||||
else{this.border=border=0;}
|
||||
newSize=this.size=this._calculateSize(corner);tip.css({width:newSize[0],height:newSize[1],lineHeight:newSize[1]+'px'});if(corner.precedance===Y){translate=[round(mimic.x===LEFT?border:mimic.x===RIGHT?newSize[0]-curSize[0]-border:(newSize[0]-curSize[0])/2),round(mimic.y===TOP?newSize[1]-curSize[1]:0)];}
|
||||
else{translate=[round(mimic.x===LEFT?newSize[0]-curSize[0]:0),round(mimic.y===TOP?border:mimic.y===BOTTOM?newSize[1]-curSize[1]-border:(newSize[1]-curSize[1])/2)];}
|
||||
if(HASCANVAS){context=inner[0].getContext('2d');context.restore();context.save();context.clearRect(0,0,6000,6000);coords=this._calculateTip(mimic,curSize,SCALE);bigCoords=this._calculateTip(mimic,this.size,SCALE);inner.attr(WIDTH,newSize[0]*SCALE).attr(HEIGHT,newSize[1]*SCALE);inner.css(WIDTH,newSize[0]).css(HEIGHT,newSize[1]);this._drawCoords(context,bigCoords);context.fillStyle=color[1];context.fill();context.translate(translate[0]*SCALE,translate[1]*SCALE);this._drawCoords(context,coords);context.fillStyle=color[0];context.fill();}
|
||||
else{coords=this._calculateTip(mimic);coords='m'+coords[0]+','+coords[1]+' l'+coords[2]+
|
||||
','+coords[3]+' '+coords[4]+','+coords[5]+' xe';translate[2]=border&&/^(r|b)/i.test(corner.string())?BROWSER.ie===8?2:1:0;inner.css({coordsize:newSize[0]+border+' '+newSize[1]+border,antialias:''+(mimic.string().indexOf(CENTER)>-1),left:translate[0]-translate[2]*Number(precedance===X),top:translate[1]-translate[2]*Number(precedance===Y),width:newSize[0]+border,height:newSize[1]+border}).each(function(i){var $this=$(this);$this[$this.prop?'prop':'attr']({coordsize:newSize[0]+border+' '+newSize[1]+border,path:coords,fillcolor:color[0],filled:!!i,stroked:!i}).toggle(!!(border||i));!i&&$this.html(createVML('stroke','weight="'+border*2+'px" color="'+color[1]+'" miterlimit="1000" joinstyle="miter"'));});}
|
||||
window.opera&&setTimeout(function(){elements.tip.css({display:'inline-block',visibility:'visible'});},1);if(position!==FALSE){this.calculate(corner,newSize);}},calculate:function(corner,size){if(!this.enabled){return FALSE;}
|
||||
var self=this,elements=this.qtip.elements,tip=this.element,userOffset=this.options.offset,position={},precedance,corners;corner=corner||this.corner;precedance=corner.precedance;size=size||this._calculateSize(corner);corners=[corner.x,corner.y];if(precedance===X){corners.reverse();}
|
||||
$.each(corners,function(i,side){var b,bc,br;if(side===CENTER){b=precedance===Y?LEFT:TOP;position[b]='50%';position[MARGIN+'-'+b]=-Math.round(size[precedance===Y?0:1]/2)+userOffset;}
|
||||
else{b=self._parseWidth(corner,side,elements.tooltip);bc=self._parseWidth(corner,side,elements.content);br=self._parseRadius(corner);position[side]=Math.max(-self.border,i?bc:userOffset+(br>b?br:-b));}});position[corner[precedance]]-=size[precedance===X?0:1];tip.css({margin:'',top:'',bottom:'',left:'',right:''}).css(position);return position;},reposition:function(event,api,pos){if(!this.enabled){return;}
|
||||
var cache=api.cache,newCorner=this.corner.clone(),adjust=pos.adjusted,method=api.options.position.adjust.method.split(' '),horizontal=method[0],vertical=method[1]||method[0],shift={left:FALSE,top:FALSE,x:0,y:0},offset,css={},props;function shiftflip(direction,precedance,popposite,side,opposite){if(direction===SHIFT&&newCorner.precedance===precedance&&adjust[side]&&newCorner[popposite]!==CENTER){newCorner.precedance=newCorner.precedance===X?Y:X;}
|
||||
else if(direction!==SHIFT&&adjust[side]){newCorner[precedance]=newCorner[precedance]===CENTER?adjust[side]>0?side:opposite:newCorner[precedance]===side?opposite:side;}}
|
||||
function shiftonly(xy,side,opposite){if(newCorner[xy]===CENTER){css[MARGIN+'-'+side]=shift[xy]=offset[MARGIN+'-'+side]-adjust[side];}
|
||||
else{props=offset[opposite]!==undefined?[adjust[side],-offset[side]]:[-adjust[side],offset[side]];if((shift[xy]=Math.max(props[0],props[1]))>props[0]){pos[side]-=adjust[side];shift[side]=FALSE;}
|
||||
css[offset[opposite]!==undefined?opposite:side]=shift[xy];}}
|
||||
if(this.corner.fixed!==TRUE){shiftflip(horizontal,X,Y,LEFT,RIGHT);shiftflip(vertical,Y,X,TOP,BOTTOM);if(newCorner.string()!==cache.corner.string()||cache.cornerTop!==adjust.top||cache.cornerLeft!==adjust.left){this.update(newCorner,FALSE);}}
|
||||
offset=this.calculate(newCorner);if(offset.right!==undefined){offset.left=-offset.right;}
|
||||
if(offset.bottom!==undefined){offset.top=-offset.bottom;}
|
||||
offset.user=this.offset;shift.left=horizontal===SHIFT&&!!adjust.left;if(shift.left){shiftonly(X,LEFT,RIGHT);}
|
||||
shift.top=vertical===SHIFT&&!!adjust.top;if(shift.top){shiftonly(Y,TOP,BOTTOM);}
|
||||
this.element.css(css).toggle(!(shift.x&&shift.y||newCorner.x===CENTER&&shift.y||newCorner.y===CENTER&&shift.x));pos.left-=offset.left.charAt?offset.user:horizontal!==SHIFT||shift.top||!shift.left&&!shift.top?offset.left+this.border:0;pos.top-=offset.top.charAt?offset.user:vertical!==SHIFT||shift.left||!shift.left&&!shift.top?offset.top+this.border:0;cache.cornerLeft=adjust.left;cache.cornerTop=adjust.top;cache.corner=newCorner.clone();},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns);if(this.qtip.elements.tip){this.qtip.elements.tip.find('*').remove().end().remove();}}});TIP=PLUGINS.tip=function(api){return new Tip(api,api.options.style.tip);};TIP.initialize='render';TIP.sanitize=function(options){if(options.style&&'tip'in options.style){var opts=options.style.tip;if(typeof opts!=='object'){opts=options.style.tip={corner:opts};}
|
||||
if(!(/string|boolean/i).test(typeof opts.corner)){opts.corner=TRUE;}}};CHECKS.tip={'^position.my|style.tip.(corner|mimic|border)$':function(){this.create();this.qtip.reposition();},'^style.tip.(height|width)$':function(obj){this.size=[obj.width,obj.height];this.update();this.qtip.reposition();},'^content.title|style.(classes|widget)$':function(){this.update();}};$.extend(TRUE,QTIP.defaults,{style:{tip:{corner:TRUE,mimic:FALSE,width:6,height:6,border:TRUE,offset:0}}});;var MODAL,OVERLAY,MODALCLASS='qtip-modal',MODALSELECTOR='.'+MODALCLASS;OVERLAY=function()
|
||||
{var self=this,focusableElems={},current,prevState,elem;function focusable(element){if($.expr[':'].focusable){return $.expr[':'].focusable;}
|
||||
var isTabIndexNotNaN=!isNaN($.attr(element,'tabindex')),nodeName=element.nodeName&&element.nodeName.toLowerCase(),map,mapName,img;if('area'===nodeName){map=element.parentNode;mapName=map.name;if(!element.href||!mapName||map.nodeName.toLowerCase()!=='map'){return false;}
|
||||
img=$('img[usemap=#'+mapName+']')[0];return!!img&&img.is(':visible');}
|
||||
return /input|select|textarea|button|object/.test(nodeName)?!element.disabled:'a'===nodeName?element.href||isTabIndexNotNaN:isTabIndexNotNaN;}
|
||||
function focusInputs(blurElems){if(focusableElems.length<1&&blurElems.length){blurElems.not('body').blur();}
|
||||
else{focusableElems.first().focus();}}
|
||||
function stealFocus(event){if(!elem.is(':visible')){return;}
|
||||
var target=$(event.target),tooltip=current.tooltip,container=target.closest(SELECTOR),targetOnTop;targetOnTop=container.length<1?FALSE:parseInt(container[0].style.zIndex,10)>parseInt(tooltip[0].style.zIndex,10);if(!targetOnTop&&target.closest(SELECTOR)[0]!==tooltip[0]){focusInputs(target);}}
|
||||
$.extend(self,{init:function(){elem=self.elem=$('<div />',{id:'qtip-overlay',html:'<div></div>',mousedown:function(){return FALSE;}}).hide();$(document.body).bind('focusin'+MODALSELECTOR,stealFocus);$(document).bind('keydown'+MODALSELECTOR,function(event){if(current&¤t.options.show.modal.escape&&event.keyCode===27){current.hide(event);}});elem.bind('click'+MODALSELECTOR,function(event){if(current&¤t.options.show.modal.blur){current.hide(event);}});return self;},update:function(api){current=api;if(api.options.show.modal.stealfocus!==FALSE){focusableElems=api.tooltip.find('*').filter(function(){return focusable(this);});}
|
||||
else{focusableElems=[];}},toggle:function(api,state,duration){var tooltip=api.tooltip,options=api.options.show.modal,effect=options.effect,type=state?'show':'hide',visible=elem.is(':visible'),visibleModals=$(MODALSELECTOR).filter(':visible:not(:animated)').not(tooltip);self.update(api);if(state&&options.stealfocus!==FALSE){focusInputs($(':focus'));}
|
||||
elem.toggleClass('blurs',options.blur);if(state){elem.appendTo(document.body);}
|
||||
if(elem.is(':animated')&&visible===state&&prevState!==FALSE||!state&&visibleModals.length){return self;}
|
||||
elem.stop(TRUE,FALSE);if($.isFunction(effect)){effect.call(elem,state);}
|
||||
else if(effect===FALSE){elem[type]();}
|
||||
else{elem.fadeTo(parseInt(duration,10)||90,state?1:0,function(){if(!state){elem.hide();}});}
|
||||
if(!state){elem.queue(function(next){elem.css({left:'',top:''});if(!$(MODALSELECTOR).length){elem.detach();}
|
||||
next();});}
|
||||
prevState=state;if(current.destroyed){current=NULL;}
|
||||
return self;}});self.init();};OVERLAY=new OVERLAY();function Modal(api,options){this.options=options;this._ns='-modal';this.qtip=api;this.init(api);}
|
||||
$.extend(Modal.prototype,{init:function(qtip){var tooltip=qtip.tooltip;if(!this.options.on){return this;}
|
||||
qtip.elements.overlay=OVERLAY.elem;tooltip.addClass(MODALCLASS).css('z-index',QTIP.modal_zindex+$(MODALSELECTOR).length);qtip._bind(tooltip,['tooltipshow','tooltiphide'],function(event,api,duration){var oEvent=event.originalEvent;if(event.target===tooltip[0]){if(oEvent&&event.type==='tooltiphide'&&/mouse(leave|enter)/.test(oEvent.type)&&$(oEvent.relatedTarget).closest(OVERLAY.elem[0]).length){try{event.preventDefault();}
|
||||
catch(e){}}
|
||||
else if(!oEvent||oEvent&&oEvent.type!=='tooltipsolo'){this.toggle(event,event.type==='tooltipshow',duration);}}},this._ns,this);qtip._bind(tooltip,'tooltipfocus',function(event,api){if(event.isDefaultPrevented()||event.target!==tooltip[0]){return;}
|
||||
var qtips=$(MODALSELECTOR),newIndex=QTIP.modal_zindex+qtips.length,curIndex=parseInt(tooltip[0].style.zIndex,10);OVERLAY.elem[0].style.zIndex=newIndex-1;qtips.each(function(){if(this.style.zIndex>curIndex){this.style.zIndex-=1;}});qtips.filter('.'+CLASS_FOCUS).qtip('blur',event.originalEvent);tooltip.addClass(CLASS_FOCUS)[0].style.zIndex=newIndex;OVERLAY.update(api);try{event.preventDefault();}
|
||||
catch(e){}},this._ns,this);qtip._bind(tooltip,'tooltiphide',function(event){if(event.target===tooltip[0]){$(MODALSELECTOR).filter(':visible').not(tooltip).last().qtip('focus',event);}},this._ns,this);},toggle:function(event,state,duration){if(event&&event.isDefaultPrevented()){return this;}
|
||||
OVERLAY.toggle(this.qtip,!!state,duration);},destroy:function(){this.qtip.tooltip.removeClass(MODALCLASS);this.qtip._unbind(this.qtip.tooltip,this._ns);OVERLAY.toggle(this.qtip,FALSE);delete this.qtip.elements.overlay;}});MODAL=PLUGINS.modal=function(api){return new Modal(api,api.options.show.modal);};MODAL.sanitize=function(opts){if(opts.show){if(typeof opts.show.modal!=='object'){opts.show.modal={on:!!opts.show.modal};}
|
||||
else if(typeof opts.show.modal.on==='undefined'){opts.show.modal.on=TRUE;}}};QTIP.modal_zindex=QTIP.zindex-200;MODAL.initialize='render';CHECKS.modal={'^show.modal.(on|blur)$':function(){this.destroy();this.init();this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0);}};$.extend(TRUE,QTIP.defaults,{show:{modal:{on:FALSE,effect:TRUE,blur:TRUE,stealfocus:TRUE,escape:TRUE}}});;PLUGINS.viewport=function(api,position,posOptions,targetWidth,targetHeight,elemWidth,elemHeight)
|
||||
{var target=posOptions.target,tooltip=api.elements.tooltip,my=posOptions.my,at=posOptions.at,adjust=posOptions.adjust,method=adjust.method.split(' '),methodX=method[0],methodY=method[1]||method[0],viewport=posOptions.viewport,container=posOptions.container,adjusted={left:0,top:0},fixed,newMy,containerOffset,containerStatic,viewportWidth,viewportHeight,viewportScroll,viewportOffset;if(!viewport.jquery||target[0]===window||target[0]===document.body||adjust.method==='none'){return adjusted;}
|
||||
containerOffset=container.offset()||adjusted;containerStatic=container.css('position')==='static';fixed=tooltip.css('position')==='fixed';viewportWidth=viewport[0]===window?viewport.width():viewport.outerWidth(FALSE);viewportHeight=viewport[0]===window?viewport.height():viewport.outerHeight(FALSE);viewportScroll={left:fixed?0:viewport.scrollLeft(),top:fixed?0:viewport.scrollTop()};viewportOffset=viewport.offset()||adjusted;function calculate(side,otherSide,type,adjustment,side1,side2,lengthName,targetLength,elemLength){var initialPos=position[side1],mySide=my[side],atSide=at[side],isShift=type===SHIFT,myLength=mySide===side1?elemLength:mySide===side2?-elemLength:-elemLength/2,atLength=atSide===side1?targetLength:atSide===side2?-targetLength:-targetLength/2,sideOffset=viewportScroll[side1]+viewportOffset[side1]-(containerStatic?0:containerOffset[side1]),overflow1=sideOffset-initialPos,overflow2=initialPos+elemLength-(lengthName===WIDTH?viewportWidth:viewportHeight)-sideOffset,offset=myLength-(my.precedance===side||mySide===my[otherSide]?atLength:0)-(atSide===CENTER?targetLength/2:0);if(isShift){offset=(mySide===side1?1:-1)*myLength;position[side1]+=overflow1>0?overflow1:overflow2>0?-overflow2:0;position[side1]=Math.max(-containerOffset[side1]+viewportOffset[side1],initialPos-offset,Math.min(Math.max(-containerOffset[side1]+viewportOffset[side1]+(lengthName===WIDTH?viewportWidth:viewportHeight),initialPos+offset),position[side1],mySide==='center'?initialPos-myLength:1E9));}
|
||||
else{adjustment*=type===FLIPINVERT?2:0;if(overflow1>0&&(mySide!==side1||overflow2>0)){position[side1]-=offset+adjustment;newMy.invert(side,side1);}
|
||||
else if(overflow2>0&&(mySide!==side2||overflow1>0)){position[side1]-=(mySide===CENTER?-offset:offset)+adjustment;newMy.invert(side,side2);}
|
||||
if(position[side1]<viewportScroll[side1]&&-position[side1]>overflow2){position[side1]=initialPos;newMy=my.clone();}}
|
||||
return position[side1]-initialPos;}
|
||||
if(methodX!=='shift'||methodY!=='shift'){newMy=my.clone();}
|
||||
adjusted={left:methodX!=='none'?calculate(X,Y,methodX,adjust.x,LEFT,RIGHT,WIDTH,targetWidth,elemWidth):0,top:methodY!=='none'?calculate(Y,X,methodY,adjust.y,TOP,BOTTOM,HEIGHT,targetHeight,elemHeight):0,my:newMy};return adjusted;};;PLUGINS.polys={polygon:function(baseCoords,corner){var result={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:FALSE},i=0,next,coords=[],compareX=1,compareY=1,realX=0,realY=0,newWidth,newHeight;i=baseCoords.length;while(i--){next=[parseInt(baseCoords[--i],10),parseInt(baseCoords[i+1],10)];if(next[0]>result.position.right){result.position.right=next[0];}
|
||||
if(next[0]<result.position.left){result.position.left=next[0];}
|
||||
if(next[1]>result.position.bottom){result.position.bottom=next[1];}
|
||||
if(next[1]<result.position.top){result.position.top=next[1];}
|
||||
coords.push(next);}
|
||||
newWidth=result.width=Math.abs(result.position.right-result.position.left);newHeight=result.height=Math.abs(result.position.bottom-result.position.top);if(corner.abbrev()==='c'){result.position={left:result.position.left+result.width/2,top:result.position.top+result.height/2};}
|
||||
else{while(newWidth>0&&newHeight>0&&compareX>0&&compareY>0)
|
||||
{newWidth=Math.floor(newWidth/2);newHeight=Math.floor(newHeight/2);if(corner.x===LEFT){compareX=newWidth;}
|
||||
else if(corner.x===RIGHT){compareX=result.width-newWidth;}
|
||||
else{compareX+=Math.floor(newWidth/2);}
|
||||
if(corner.y===TOP){compareY=newHeight;}
|
||||
else if(corner.y===BOTTOM){compareY=result.height-newHeight;}
|
||||
else{compareY+=Math.floor(newHeight/2);}
|
||||
i=coords.length;while(i--)
|
||||
{if(coords.length<2){break;}
|
||||
realX=coords[i][0]-result.position.left;realY=coords[i][1]-result.position.top;if(corner.x===LEFT&&realX>=compareX||corner.x===RIGHT&&realX<=compareX||corner.x===CENTER&&(realX<compareX||realX>result.width-compareX)||corner.y===TOP&&realY>=compareY||corner.y===BOTTOM&&realY<=compareY||corner.y===CENTER&&(realY<compareY||realY>result.height-compareY)){coords.splice(i,1);}}}
|
||||
result.position={left:coords[0][0],top:coords[0][1]};}
|
||||
return result;},rect:function(ax,ay,bx,by){return{width:Math.abs(bx-ax),height:Math.abs(by-ay),position:{left:Math.min(ax,bx),top:Math.min(ay,by)}};},_angles:{tc:3/2,tr:7/4,tl:5/4,bc:1/2,br:1/4,bl:3/4,rc:2,lc:1,c:0},ellipse:function(cx,cy,rx,ry,corner){var c=PLUGINS.polys._angles[corner.abbrev()],rxc=c===0?0:rx*Math.cos(c*Math.PI),rys=ry*Math.sin(c*Math.PI);return{width:rx*2-Math.abs(rxc),height:ry*2-Math.abs(rys),position:{left:cx+rxc,top:cy+rys},adjustable:FALSE};},circle:function(cx,cy,r,corner){return PLUGINS.polys.ellipse(cx,cy,r,r,corner);}};;PLUGINS.svg=function(api,svg,corner)
|
||||
{var elem=svg[0],root=$(elem.ownerSVGElement),ownerDocument=elem.ownerDocument,strokeWidth2=(parseInt(svg.css('stroke-width'),10)||0)/2,frameOffset,mtx,transformed,len,next,i,points,result,position;while(!elem.getBBox){elem=elem.parentNode;}
|
||||
if(!elem.getBBox||!elem.parentNode){return FALSE;}
|
||||
switch(elem.nodeName){case 'ellipse':case 'circle':result=PLUGINS.polys.ellipse(elem.cx.baseVal.value,elem.cy.baseVal.value,(elem.rx||elem.r).baseVal.value+strokeWidth2,(elem.ry||elem.r).baseVal.value+strokeWidth2,corner);break;case 'line':case 'polygon':case 'polyline':points=elem.points||[{x:elem.x1.baseVal.value,y:elem.y1.baseVal.value},{x:elem.x2.baseVal.value,y:elem.y2.baseVal.value}];for(result=[],i=-1,len=points.numberOfItems||points.length;++i<len;){next=points.getItem?points.getItem(i):points[i];result.push.apply(result,[next.x,next.y]);}
|
||||
result=PLUGINS.polys.polygon(result,corner);break;default:result=elem.getBBox();result={width:result.width,height:result.height,position:{left:result.x,top:result.y}};break;}
|
||||
position=result.position;root=root[0];if(root.createSVGPoint){mtx=elem.getScreenCTM();points=root.createSVGPoint();points.x=position.left;points.y=position.top;transformed=points.matrixTransform(mtx);position.left=transformed.x;position.top=transformed.y;}
|
||||
if(ownerDocument!==document&&api.position.target!=='mouse'){frameOffset=$((ownerDocument.defaultView||ownerDocument.parentWindow).frameElement).offset();if(frameOffset){position.left+=frameOffset.left;position.top+=frameOffset.top;}}
|
||||
ownerDocument=$(ownerDocument);position.left+=ownerDocument.scrollLeft();position.top+=ownerDocument.scrollTop();return result;};;PLUGINS.imagemap=function(api,area,corner)
|
||||
{if(!area.jquery){area=$(area);}
|
||||
var shape=(area.attr('shape')||'rect').toLowerCase().replace('poly','polygon'),image=$('img[usemap="#'+area.parent('map').attr('name')+'"]'),coordsString=$.trim(area.attr('coords')),coordsArray=coordsString.replace(/,$/,'').split(','),imageOffset,coords,i,result,len;if(!image.length){return FALSE;}
|
||||
if(shape==='polygon'){result=PLUGINS.polys.polygon(coordsArray,corner);}
|
||||
else if(PLUGINS.polys[shape]){for(i=-1,len=coordsArray.length,coords=[];++i<len;){coords.push(parseInt(coordsArray[i],10));}
|
||||
result=PLUGINS.polys[shape].apply(this,coords.concat(corner));}
|
||||
else{return FALSE;}
|
||||
imageOffset=image.offset();imageOffset.left+=Math.ceil((image.outerWidth(FALSE)-image.width())/2);imageOffset.top+=Math.ceil((image.outerHeight(FALSE)-image.height())/2);result.position.left+=imageOffset.left;result.position.top+=imageOffset.top;return result;};;var IE6,BGIFRAME='<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';" '+
|
||||
' style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); '+
|
||||
'-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>';function Ie6(api){this._ns='ie6';this.qtip=api;this.init(api);}
|
||||
$.extend(Ie6.prototype,{_scroll:function(){var overlay=this.qtip.elements.overlay;overlay&&(overlay[0].style.top=$(window).scrollTop()+'px');},init:function(qtip){var tooltip=qtip.tooltip;if($('select, object').length<1){this.bgiframe=qtip.elements.bgiframe=$(BGIFRAME).appendTo(tooltip);qtip._bind(tooltip,'tooltipmove',this.adjustBGIFrame,this._ns,this);}
|
||||
this.redrawContainer=$('<div/>',{id:NAMESPACE+'-rcontainer'}).appendTo(document.body);if(qtip.elements.overlay&&qtip.elements.overlay.addClass('qtipmodal-ie6fix')){qtip._bind(window,['scroll','resize'],this._scroll,this._ns,this);qtip._bind(tooltip,['tooltipshow'],this._scroll,this._ns,this);}
|
||||
this.redraw();},adjustBGIFrame:function(){var tooltip=this.qtip.tooltip,dimensions={height:tooltip.outerHeight(FALSE),width:tooltip.outerWidth(FALSE)},plugin=this.qtip.plugins.tip,tip=this.qtip.elements.tip,tipAdjust,offset;offset=parseInt(tooltip.css('borderLeftWidth'),10)||0;offset={left:-offset,top:-offset};if(plugin&&tip){tipAdjust=plugin.corner.precedance==='x'?[WIDTH,LEFT]:[HEIGHT,TOP];offset[tipAdjust[1]]-=tip[tipAdjust[0]]();}
|
||||
this.bgiframe.css(offset).css(dimensions);},redraw:function(){if(this.qtip.rendered<1||this.drawing){return this;}
|
||||
var tooltip=this.qtip.tooltip,style=this.qtip.options.style,container=this.qtip.options.position.container,perc,width,max,min;this.qtip.drawing=1;if(style.height){tooltip.css(HEIGHT,style.height);}
|
||||
if(style.width){tooltip.css(WIDTH,style.width);}
|
||||
else{tooltip.css(WIDTH,'').appendTo(this.redrawContainer);width=tooltip.width();if(width%2<1){width+=1;}
|
||||
max=tooltip.css('maxWidth')||'';min=tooltip.css('minWidth')||'';perc=(max+min).indexOf('%')>-1?container.width()/100:0;max=(max.indexOf('%')>-1?perc:1*parseInt(max,10))||width;min=(min.indexOf('%')>-1?perc:1*parseInt(min,10))||0;width=max+min?Math.min(Math.max(width,min),max):width;tooltip.css(WIDTH,Math.round(width)).appendTo(container);}
|
||||
this.drawing=0;return this;},destroy:function(){this.bgiframe&&this.bgiframe.remove();this.qtip._unbind([window,this.qtip.tooltip],this._ns);}});IE6=PLUGINS.ie6=function(api){return BROWSER.ie===6?new Ie6(api):FALSE;};IE6.initialize='render';CHECKS.ie6={'^content|style$':function(){this.redraw();}};;}));}(window,document));
|
||||
@@ -0,0 +1 @@
|
||||
angular.module("fCsv",[]).factory("fCsv",function(){var n=function(n,r,t){if(n){r=r||",",t=t||!0;var e=[],f=[],l=0,i=n.split("\n"),s=i[0].split(r).length;t&&(f=i[0].split(r),l=1);for(var a=l;a<i.length;a++){var o={},g=i[a].split(new RegExp(r+'(?![^"]*"(?:(?:[^"]*"){2})*[^"]*$)'));if(g.length===s){if(t)for(var v=0;v<f.length;v++)o[f[v]]=g[v];else for(var u=0;u<g.length;u++)o[u]=g[u];e.push(o)}}return JSON.stringify(e)}};return{toJson:n}});
|
||||
@@ -0,0 +1 @@
|
||||
angular.module("toggle-switch",["ng"]).directive("toggleSwitch",["$compile",function($compile){return{restrict:"EA",replace:!0,require:"ngModel",scope:{isDisabled:"=",onLabel:"@",offLabel:"@",knobLabel:"@",html:"=",onChange:"&"},template:'<div class="ats-switch" ng-click="toggle()" ng-keypress="onKeyPress($event)" ng-class="{ \'disabled\': isDisabled }" role="switch" aria-checked="{{!!model}}"><div class="switch-animate" ng-class="{\'switch-off\': !model, \'switch-on\': model}"><span class="switch-left"></span><span class="knob"></span><span class="switch-right"></span></div></div>',compile:function(element,attrs){return angular.isUndefined(attrs.onLabel)&&(attrs.onLabel="On"),angular.isUndefined(attrs.offLabel)&&(attrs.offLabel="Off"),angular.isUndefined(attrs.knobLabel)&&(attrs.knobLabel=" "),angular.isUndefined(attrs.isDisabled)&&(attrs.isDisabled=!1),angular.isUndefined(attrs.html)&&(attrs.html=!1),angular.isUndefined(attrs.tabindex)&&(attrs.tabindex=0),function(scope,iElement,iAttrs,ngModel){iElement.attr("tabindex",attrs.tabindex),scope.toggle=function(){scope.isDisabled||(scope.model=!scope.model,ngModel.$setViewValue(scope.model)),scope.onChange()};var spaceCharCode=32;scope.onKeyPress=function($event){$event.charCode!=spaceCharCode||$event.altKey||$event.ctrlKey||$event.metaKey||scope.toggle();$event.preventDefault()},ngModel.$formatters.push(function(modelValue){return modelValue}),ngModel.$parsers.push(function(viewValue){return viewValue}),ngModel.$viewChangeListeners.push(function(){scope.$eval(attrs.ngChange)}),ngModel.$render=function(){scope.model=ngModel.$viewValue};var bindSpan=function(span,html){span=angular.element(span);var bindAttributeName=html===!0?"ng-bind-html":"ng-bind";span.removeAttr("ng-bind-html"),span.removeAttr("ng-bind"),angular.element(span).hasClass("switch-left")&&span.attr(bindAttributeName,"onLabel"),span.hasClass("knob")&&span.attr(bindAttributeName,"knobLabel"),span.hasClass("switch-right")&&span.attr(bindAttributeName,"offLabel"),$compile(span)(scope,function(cloned,scope){span.replaceWith(cloned)})},bindSwitch=function(iElement,html){angular.forEach(iElement[0].children[0].children,function(span,index){bindSpan(span,html)})};scope.$watch("html",function(newValue){bindSwitch(iElement,newValue)})}}}}]);
|
||||
@@ -0,0 +1,9 @@
|
||||
angular.module('quartermaester', ['ui.bootstrap', 'uiGmapgoogle-maps', '$q-spread', 'fCsv', 'toggle-switch', 'rzModule'])
|
||||
|
||||
.config(function(uiGmapGoogleMapApiProvider) {
|
||||
uiGmapGoogleMapApiProvider.configure({
|
||||
key: 'AIzaSyA805RWgioHgUbrtVo9sWAnk_UWT9_xDXE',
|
||||
//v: '3.20', //defaults to latest 3.X anyhow
|
||||
libraries: 'weather,geometry,visualization'
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,378 @@
|
||||
angular.module('quartermaester')
|
||||
|
||||
.controller("mapCtrl", function($scope, $filter, $timeout, uiGmapGoogleMapApi, qmCsv) {
|
||||
|
||||
var qmData = {};
|
||||
$scope.state = "slider";
|
||||
$scope.search = "";
|
||||
$scope.slider = {
|
||||
show: "episodes",
|
||||
currentEpisode: 0,
|
||||
currentChapter: 0
|
||||
};
|
||||
$scope.options = {
|
||||
characterPaths: true,
|
||||
houseHeraldry: false,
|
||||
geographicRegions: false,
|
||||
politicalAllegiances: false,
|
||||
characters: {}
|
||||
};
|
||||
$scope.map = {
|
||||
center: {
|
||||
latitude: 1.3182,
|
||||
longitude: -105.9960
|
||||
},
|
||||
zoom: 4,
|
||||
options: {
|
||||
maxZoom: 5,
|
||||
minZoom: 1,
|
||||
disableDefaultUI: true,
|
||||
zoomControl: true
|
||||
},
|
||||
events: {
|
||||
click: mapClick
|
||||
},
|
||||
control: {},
|
||||
locationClick: locationClick,
|
||||
heraldryClick: heraldryClick,
|
||||
characterClick: characterClick,
|
||||
loyaltyRangeClick: loyaltyRangeClick
|
||||
};
|
||||
$scope.mapModels = {
|
||||
towns: [],
|
||||
heraldry: [],
|
||||
characters: [],
|
||||
paths: [],
|
||||
regions: [],
|
||||
loyaltyRanges: [],
|
||||
editableLoyaltyRanges: []
|
||||
};
|
||||
$scope.episodes = [];
|
||||
$scope.chapters = [];
|
||||
$scope.searchResults = [];
|
||||
$scope.clickHistory = [];
|
||||
$scope.toState = toState;
|
||||
$scope.slideTo = slideTo;
|
||||
$scope.panTo = panTo;
|
||||
$scope.resultClick = resultClick;
|
||||
$scope.refreshMap = refreshMap;
|
||||
$scope.locationDetail = null;
|
||||
$scope.lastClick = null;
|
||||
|
||||
// Set up promises
|
||||
uiGmapGoogleMapApi.then(onMapLoad);
|
||||
qmCsv.loadData().then(addToScope);
|
||||
|
||||
|
||||
//////////////////
|
||||
|
||||
function addToScope(d) {
|
||||
qmData = d;
|
||||
|
||||
for (var i=0;i<qmData.loyaltyRanges.length; i++) {
|
||||
qmData.loyaltyRanges[i].events = {
|
||||
click: loyaltyRangeClick
|
||||
};
|
||||
}
|
||||
|
||||
// Add data from CSV files into $scope
|
||||
$scope.episodes = qmData.episodes;
|
||||
$scope.chapters = qmData.chapters;
|
||||
$scope.characters = qmData.characters;
|
||||
$scope.searchResults = qmData.searchResults;
|
||||
$scope.mapModels.regions = qmData.regions;
|
||||
|
||||
$scope.$watch('slider', refreshMap, true);
|
||||
$scope.$watch('options', refreshMap, true);
|
||||
$scope.$watch('options.characters', panToCharacter, true);
|
||||
|
||||
for (var i=0;i<qmData.characters.length; i++) {
|
||||
$scope.options.characters[qmData.characters[i].key] = false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function refreshMap() {
|
||||
// Redraw map with new slider values
|
||||
$scope.mapModels.towns = $filter('qmSlider')(qmData.towns, $scope.slider);
|
||||
$scope.mapModels.heraldry = $scope.options.houseHeraldry ? $filter('qmSlider')(qmData.heraldry, $scope.slider) : [];
|
||||
$scope.mapModels.characters = $filter('qmSlider')(qmData.characterMarkers, $scope.slider, $scope.options);
|
||||
$scope.belligerents = $filter('qmSlider')(qmData.belligerents, $scope.slider);
|
||||
var staticPaths = $filter('qmSlider')(qmData.characterPaths, $scope.slider, $scope.options);
|
||||
$scope.mapModels.paths = angular.copy(staticPaths);
|
||||
$scope.mapModels.editablePaths = angular.copy(staticPaths).map(function(path) {
|
||||
path.static = false;
|
||||
path.editable = true;
|
||||
return path;
|
||||
});
|
||||
|
||||
$scope.mapModels.loyaltyRanges = $filter('qmSlider')(qmData.loyaltyRanges, $scope.slider);
|
||||
$scope.mapModels.editableLoyaltyRanges = angular.copy($scope.mapModels.loyaltyRanges).map(function(polygon) {
|
||||
polygon.static = false;
|
||||
polygon.editable = true;
|
||||
return polygon;
|
||||
});
|
||||
}
|
||||
|
||||
function panToCharacter(newValue, oldValue) {
|
||||
for (var character in newValue) {
|
||||
if (newValue[character] && !oldValue[character]) {
|
||||
var characterMarkers = $filter('filter')($scope.mapModels.characters, {character: {key: character}});
|
||||
if (characterMarkers.length==0) return false;
|
||||
|
||||
var coords = characterMarkers[characterMarkers.length-1].coords
|
||||
$scope.map.control.getGMap().panTo({lat: coords.latitude, lng: coords.longitude});
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function toState(stateName) {
|
||||
$scope.state = stateName;
|
||||
if (stateName=="search") $timeout(function() {
|
||||
document.getElementById("searchInput").focus();
|
||||
});
|
||||
if (stateName=="edit") refreshMap();
|
||||
// if (stateName=="slider-full") $timeout(function() {
|
||||
// console.log(document.getElementById("slide-"+$scope.slider.show).getElementsByClassName("rz-pointer"));
|
||||
// document.getElementById("slide-"+$scope.slider.show).getElementsByClassName("rz-pointer")[0].focus();
|
||||
// });
|
||||
}
|
||||
|
||||
function slideTo(input) {
|
||||
var books = qmData.books.map(function(book) {return book.abbreviation;});
|
||||
var measure = ($scope.slider.show=="episodes") ? "currentEpisode" : "currentChapter";
|
||||
var sliderMax = ($scope.slider.show=="episodes") ? $scope.episodes.length-1 : $scope.chapters.length-1;
|
||||
switch (input) {
|
||||
case -10:
|
||||
if ($scope.slider[measure]==0) break;
|
||||
if ($scope.slider.show=="episodes") $scope.slider[measure] = Math.floor(($scope.slider[measure]-1)/10)*10;
|
||||
else {
|
||||
for (var bookId=4; bookId>=0; bookId--) {
|
||||
var prologue = parseInt(qmData.books[bookId].precedingChapters, 10);
|
||||
if (prologue > $scope.slider[measure]-1) continue;
|
||||
$scope.slider[measure] = prologue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case -1:
|
||||
if ($scope.slider[measure]>0) $scope.slider[measure]--;
|
||||
break;
|
||||
case 1:
|
||||
if ($scope.slider[measure]<sliderMax) $scope.slider[measure]++;
|
||||
break;
|
||||
case 10:
|
||||
if ($scope.slider[measure]==sliderMax) break;
|
||||
if ($scope.slider.show=="episodes") $scope.slider[measure] = Math.min(sliderMax, Math.ceil(($scope.slider[measure]+2)/10)*10-1);
|
||||
else {
|
||||
if ($scope.slider[measure] >= 270) {
|
||||
$scope.slider[measure] = 344;
|
||||
break;
|
||||
}
|
||||
for (var bookId=0; bookId<=4; bookId++) {
|
||||
var epilogue = parseInt(qmData.books[bookId].precedingChapters, 10)-1;
|
||||
if (epilogue < $scope.slider[measure]+1) continue;
|
||||
$scope.slider[measure] = epilogue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$scope.state = "slider";
|
||||
if (input.indexOf("-")<0) {
|
||||
// HBO show
|
||||
$scope.slider.show = "episodes";
|
||||
$scope.slider.currentEpisode = qmCsv.getEpisodeId(input);
|
||||
// var reMatch = /S(\d)E0?(\d+)/.exec(input);
|
||||
// $scope.slider.currentEpisode = 10*(parseInt(reMatch[1])-1) + parseInt(reMatch[2])-1;
|
||||
} else {
|
||||
$scope.slider.show = "chapters";
|
||||
// $scope.slider.currentChapter = qmCsv.getChapterId(input);
|
||||
var reMatch = /(\w{4})\-(\d+)/.exec(input);
|
||||
var bookId = books.indexOf(reMatch[1]);
|
||||
$scope.slider.currentChapter = parseInt(qmData.books[bookId].precedingChapters, 10) + parseInt(reMatch[2], 10);
|
||||
}
|
||||
break;
|
||||
}
|
||||
$scope.$broadcast('rzSliderForceRender');
|
||||
}
|
||||
|
||||
function panTo(input) {
|
||||
var location = $filter('filter')($scope.map.locations, {key: input})[0];
|
||||
$scope.map.control.getGMap().panTo({lat: location.coords.latitude, lng: location.coords.longitude});
|
||||
$scope.locationDetail = location;
|
||||
$scope.state = "location";
|
||||
}
|
||||
|
||||
function resultClick(model) {
|
||||
switch (model.icon) {
|
||||
case "glyphicon-map-marker":
|
||||
var town = $filter('filter')($scope.mapModels.towns, {key: model.key})[0];
|
||||
$scope.map.control.getGMap().panTo({lat: town.coords.latitude, lng: town.coords.longitude});
|
||||
$scope.locationDetail = town;
|
||||
$scope.state = "location";
|
||||
break;
|
||||
|
||||
case "glyphicon-user":
|
||||
$scope.options.characters[model.key] = true;
|
||||
var character = $filter('filter')($scope.characters, {key: model.key})[0];
|
||||
var allCharacterMarkers = $filter('qmSlider')(qmData.characterMarkers, $scope.slider, $scope.options);
|
||||
var matchedCharacterMarkers = $filter('filter')(allCharacterMarkers, {character: {key: model.key}});
|
||||
$scope.locationDetail = {
|
||||
name: "",
|
||||
url: "",
|
||||
house: character.name,
|
||||
houseImg: character.house.img,
|
||||
houseUrl: character.url,
|
||||
direct: "#"
|
||||
};
|
||||
$scope.state = "location";
|
||||
if (matchedCharacterMarkers.length==0) break;
|
||||
var thisCharacterMarker = matchedCharacterMarkers[0];
|
||||
$scope.map.control.getGMap().panTo({lat: thisCharacterMarker.coords.latitude, lng: thisCharacterMarker.coords.longitude});
|
||||
$scope.locationDetail.name = thisCharacterMarker.town.name;
|
||||
$scope.locationDetail.url = thisCharacterMarker.town.url;
|
||||
$scope.locationDetail.direct = ($scope.slider.show=="episodes") ? thisCharacterMarker.episode.url : thisCharacterMarker.chapter.url;
|
||||
break;
|
||||
|
||||
case "glyphicon-home":
|
||||
var house = $filter('filter')(qmData.heraldry, {seat: model.subtitle})[0];
|
||||
$scope.map.control.getGMap().panTo({lat: house.coords.latitude, lng: house.coords.longitude});
|
||||
$scope.locationDetail = {
|
||||
name: house.seat,
|
||||
url: house.seatUrl,
|
||||
house: house.name,
|
||||
houseImg: house.houseImg,
|
||||
houseUrl: house.url,
|
||||
direct: house.direct
|
||||
};
|
||||
$scope.state = "location";
|
||||
break;
|
||||
|
||||
case "glyphicon-facetime-video":
|
||||
case "glyphicon-book":
|
||||
slideTo(model.abbr);
|
||||
break;
|
||||
|
||||
default:
|
||||
console.log("resultClick", model);
|
||||
}
|
||||
}
|
||||
|
||||
function locationClick(marker, eventName, model) {
|
||||
$scope.locationDetail = model;
|
||||
$scope.state = "location";
|
||||
}
|
||||
|
||||
function heraldryClick(marker, eventName, model) {
|
||||
$scope.locationDetail = {
|
||||
name: model.seat,
|
||||
url: model.seatUrl,
|
||||
house: model.name,
|
||||
houseImg: model.houseImg,
|
||||
houseUrl: model.url,
|
||||
direct: model.direct
|
||||
};
|
||||
$scope.state = "location";
|
||||
}
|
||||
|
||||
function characterClick(marker, eventName, model) {
|
||||
$scope.locationDetail = {
|
||||
name: model.town.name,
|
||||
url: model.town.url,
|
||||
house: model.character.name,
|
||||
houseImg: model.character.houseImg,
|
||||
houseUrl: model.character.url,
|
||||
direct: ($scope.slider.show=="episodes") ? model.episode.url : model.chapter.url
|
||||
};
|
||||
$scope.state = "location";
|
||||
}
|
||||
|
||||
function loyaltyRangeClick(e, eventName, model) {
|
||||
var keyMatch = /(.+)\-\d+\w?$/.exec(model.key);
|
||||
var matchingBelligerant = $filter('filter')(qmData.belligerents, {key: keyMatch[1]})[0];
|
||||
var filtered = $filter('filter')(qmData.belligerents, {key: keyMatch[1]});
|
||||
|
||||
$scope.locationDetail = {
|
||||
house: matchingBelligerant.title + " " + matchingBelligerant.name,
|
||||
houseImg: matchingBelligerant.houseImg,
|
||||
houseUrl: matchingBelligerant.url
|
||||
};
|
||||
$scope.state = "location";
|
||||
}
|
||||
|
||||
function mapClick(a, b, c, d) {
|
||||
$scope.state = "slider";
|
||||
//console.log(a, b, c, d);
|
||||
//console.log("lng", c[0].latLng.lng());
|
||||
//$scope.lastClick = JSON;
|
||||
//console.log($scope.mapModels.paths);
|
||||
addClickToEditor(c[0].latLng.lat(), c[0].latLng.lng());
|
||||
|
||||
// $scope.map.control.getGMap().setMapTypeId("SATELLITE");
|
||||
// console.log($scope.map.control.getGMap());
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function addClickToEditor(latitude, longitude) {
|
||||
$scope.clickHistory.push({
|
||||
latitude: latitude,
|
||||
longitude: longitude
|
||||
});
|
||||
}
|
||||
|
||||
function getTileCode(a,b) {
|
||||
//converts tile x,y into keyhole string
|
||||
var c=Math.pow(2,b);
|
||||
var d=a.x;
|
||||
var e=a.y;
|
||||
var f="t";
|
||||
for(var g=0;g<b;g++){
|
||||
c=c/2;
|
||||
if(e<c){
|
||||
if(d<c){f+="q"}
|
||||
else{f+="r";d-=c}
|
||||
}
|
||||
else{
|
||||
if(d<c){f+="t";e-=c}
|
||||
else{f+="s";d-=c;e-=c}
|
||||
}
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
||||
function onMapLoad(maps) {
|
||||
|
||||
var quartermaesterMapType = new maps.ImageMapType({
|
||||
getTileUrl: function(coord, zoom) {
|
||||
var tileRange = 1 << zoom;
|
||||
if (coord.x < 0 || coord.x >= tileRange) return false;
|
||||
if (coord.y < 0 || coord.y >= tileRange) return false;
|
||||
return "tiles/" + getTileCode(coord, zoom) + ".jpg";
|
||||
},
|
||||
tileSize: new maps.Size(256, 256),
|
||||
maxZoom: 9,
|
||||
minZoom: 0,
|
||||
radius: 1738000,
|
||||
name: 'TWOIAF'
|
||||
});
|
||||
|
||||
$scope.$watch("map.control", function( mapControl, emptyObj ) {
|
||||
$scope.map.control.getGMap().mapTypes.set('quartermaester', quartermaesterMapType);
|
||||
$scope.map.control.getGMap().setMapTypeId('quartermaester');
|
||||
});
|
||||
|
||||
|
||||
// Add background to .rz-bar
|
||||
var rzbars = document.getElementsByClassName("rz-bar");
|
||||
rzbars[0].innerHTML = "<span class='odd'>1</span><span>2</span><span class='odd'>3</span><span>4</span><span class='odd'>5</span><span>6</span>";
|
||||
rzbars[2].innerHTML = "<span class='odd'>AGOT</span><span>ACOK</span><span class='odd'>ASOS</span><span>AFFC</span><span class='odd'>ADWD</span>";
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@@ -0,0 +1,61 @@
|
||||
angular.module('quartermaester')
|
||||
|
||||
.factory('User', function (Organisation) {
|
||||
|
||||
/**
|
||||
* Constructor, with class name
|
||||
*/
|
||||
function User(firstName, lastName, role, organisation) {
|
||||
// Public properties, assigned to the instance ('this')
|
||||
this.firstName = firstName;
|
||||
this.lastName = lastName;
|
||||
this.role = role;
|
||||
this.organisation = organisation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Public method, assigned to prototype
|
||||
*/
|
||||
User.prototype.getFullName = function () {
|
||||
return this.firstName + ' ' + this.lastName;
|
||||
};
|
||||
|
||||
/**
|
||||
* Private property
|
||||
*/
|
||||
var possibleRoles = ['admin', 'editor', 'guest'];
|
||||
|
||||
/**
|
||||
* Private function
|
||||
*/
|
||||
function checkRole(role) {
|
||||
return possibleRoles.indexOf(role) !== -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Static property
|
||||
* Using copy to prevent modifications to private property
|
||||
*/
|
||||
User.possibleRoles = angular.copy(possibleRoles);
|
||||
|
||||
/**
|
||||
* Static method, assigned to class
|
||||
* Instance ('this') is not available in static context
|
||||
*/
|
||||
User.build = function (data) {
|
||||
if (!checkRole(data.role)) {
|
||||
return;
|
||||
}
|
||||
return new User(
|
||||
data.first_name,
|
||||
data.last_name,
|
||||
data.role,
|
||||
Organisation.build(data.organisation) // another model
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Return the constructor function
|
||||
*/
|
||||
return User;
|
||||
})
|
||||
@@ -0,0 +1 @@
|
||||
!function(e){"use strict";e.module("$q-spread",[]).config(["$provide",function(e){e.decorator("$q",["$delegate",function(e){var r=e.defer;return e.defer=function(){var e=r().promise.constructor.prototype;return Object.defineProperty(e,"spread",{value:function(e,r){function n(r){return e.apply(void 0,r)}return this.then(n,r)},writable:!0,enumerable:!1}),r()},e}])}])}(window.angular);
|
||||
@@ -0,0 +1,504 @@
|
||||
angular.module('quartermaester')
|
||||
|
||||
.factory('qmCsv', function($q, $http, $filter, fCsv) {
|
||||
|
||||
var csvLocation = (window.location.protocol=="file:") ? "https://raw.githubusercontent.com/carpiediem/carpiediem.github.io/master/quartermaester/data/" : "data/";
|
||||
return {
|
||||
loadData: loadData,
|
||||
getEpisodeId: getEpisodeId,
|
||||
//getChapterId: getChapterId
|
||||
};
|
||||
|
||||
///////////////////////////////
|
||||
|
||||
function loadData() {
|
||||
return $q.all([
|
||||
getFile('books.csv'),
|
||||
getFile('chapters.csv'),
|
||||
getFile('seasons.csv'),
|
||||
getFile('episodes.csv'),
|
||||
getFile('houses.csv'),
|
||||
getFile('characters.csv'),
|
||||
getFile('regions.csv'),
|
||||
getFile('loyaltyRanges.csv'),
|
||||
getFile('towns.csv'),
|
||||
getFile('borders.csv'),
|
||||
getFile('loyaltyRangeEdges.csv'),
|
||||
getFile('stops.csv'),
|
||||
getFile('waypoints.csv'),
|
||||
getFile('paths.csv'),
|
||||
getFile('belligerents.csv')
|
||||
]).spread(parseData);
|
||||
}
|
||||
|
||||
function parseData(books, chapters, seasons, episodes, houses, characters, regions, loyaltyRanges, towns, borders, loyaltyRangeEdges, stops, waypoints, paths, belligerents) {
|
||||
var qmData = {
|
||||
borderArrays: {},
|
||||
lrEdgeArrays: {},
|
||||
waypointArrays: {},
|
||||
bookLookup: {}
|
||||
};
|
||||
|
||||
|
||||
for (var i=0; i<borders.length; i++) {
|
||||
if (!(borders[i].name in qmData.borderArrays))
|
||||
qmData.borderArrays[borders[i].name] = [];
|
||||
qmData.borderArrays[borders[i].name].push(borders[i]);
|
||||
}
|
||||
|
||||
for (var i=0; i<loyaltyRangeEdges.length; i++) {
|
||||
if (!(loyaltyRangeEdges[i].key in qmData.lrEdgeArrays))
|
||||
qmData.lrEdgeArrays[loyaltyRangeEdges[i].key] = [];
|
||||
qmData.lrEdgeArrays[loyaltyRangeEdges[i].key].push(loyaltyRangeEdges[i]);
|
||||
}
|
||||
|
||||
for (var i=0; i<waypoints.length; i++) {
|
||||
if (!(waypoints[i].key in qmData.waypointArrays))
|
||||
qmData.waypointArrays[waypoints[i].key] = [];
|
||||
qmData.waypointArrays[waypoints[i].key].push(waypoints[i]);
|
||||
}
|
||||
|
||||
for (var i=0; i<books.length; i++) {
|
||||
qmData.bookLookup[books[i].abbreviation] = books[i];
|
||||
}
|
||||
|
||||
qmData.episodes = episodes.map(episodeModel);
|
||||
qmData.chapters = chapters.map(chapterModel);
|
||||
qmData.books = books;
|
||||
qmData.regions = regions.map(regionModel);
|
||||
qmData.characters = characters.map(characterModel);
|
||||
qmData.belligerents = belligerents.map(belligerentModel);
|
||||
qmData.loyaltyRanges = loyaltyRanges.map(loyaltyRangeModel);
|
||||
qmData.towns = getTownMarkers(towns, houses);
|
||||
qmData.heraldry = houses.map(heraldryMarkerModel);
|
||||
qmData.characterMarkers = stops.map(characterMarkerModel);
|
||||
qmData.characterPaths = paths.map(characterPathModel);
|
||||
|
||||
qmData.searchResults = [].concat(
|
||||
towns.map(townSearchModel),
|
||||
characters.map(characterSearchModel),
|
||||
houses.map(houseSearchModel),
|
||||
episodes.map(episodeSearchModel),
|
||||
chapters.map(chapterSearchModel)
|
||||
);
|
||||
|
||||
|
||||
return qmData;
|
||||
|
||||
|
||||
function episodeModel(episode) {
|
||||
var epNumber = (episode.episode.length==2) ? episode.episode : "0"+episode.episode;
|
||||
return {
|
||||
name: "S" + episode.season + "E" + epNumber + ": " + episode.title,
|
||||
url: (episode.awoiaf=="") ? "https://en.wikipedia.org/wiki/"+episode.wikipedia.replace(/"/g,"") : "http://awoiaf.westeros.org/index.php/"+episode.awoiaf.replace(/"/g,"")
|
||||
};
|
||||
}
|
||||
|
||||
function episodeSearchModel(episode) {
|
||||
var epNumber = (episode.episode.length==2) ? episode.episode : "0"+episode.episode;
|
||||
return {
|
||||
icon: "glyphicon-facetime-video",
|
||||
title: episode.title,
|
||||
subtitle: "HBO episode",
|
||||
abbr: "S" + episode.season + "E" + epNumber,
|
||||
click: function(){slideTo(this.abbr)}
|
||||
};
|
||||
}
|
||||
|
||||
function chapterModel(chapter) {
|
||||
return {
|
||||
name: books[chapter.book].abbreviation + "-" + chapter.chapter + ": " + chapter.title,
|
||||
url: "http://awoiaf.westeros.org/index.php/"+chapter.awoiaf
|
||||
};
|
||||
}
|
||||
|
||||
function chapterSearchModel(chapter) {
|
||||
return {
|
||||
icon: "glyphicon-book",
|
||||
title: chapter.title,
|
||||
subtitle: books[chapter.book].title,
|
||||
abbr: books[chapter.book].abbreviation + "-" + chapter.chapter,
|
||||
click: function(){slideTo(this.abbr)}
|
||||
};
|
||||
}
|
||||
|
||||
function getTownMarkers(towns, houses) {
|
||||
var output = [];
|
||||
var matchingHouses = [];
|
||||
for (var townId=0; townId<towns.length; townId++) {
|
||||
var town = towns[townId];
|
||||
var matchingHouses = $filter('filter')(houses, {seatKey: town.key});
|
||||
|
||||
// Towns without nobility or other locations
|
||||
if (matchingHouses.length==0) output.push({
|
||||
key: town.key,
|
||||
name: decodeURI(town.key).replace(/_/g," "),
|
||||
url: "http://awoiaf.westeros.org/index.php/" + town.key,
|
||||
house: "No known lord",
|
||||
houseUrl: null,
|
||||
timing: {
|
||||
episodes: [0,999],
|
||||
chapters: [0,999]
|
||||
},
|
||||
direct: "#@" + town.key,
|
||||
coords: {
|
||||
latitude: parseFloat(town.latitude),
|
||||
longitude: parseFloat(town.longitude)
|
||||
},
|
||||
options: {
|
||||
icon: {path: 0, strokeOpacity: 0, scale: 3}
|
||||
}
|
||||
});
|
||||
|
||||
for (var houseId=0; houseId<matchingHouses.length; houseId++) {
|
||||
var house = matchingHouses[houseId];
|
||||
output.push({
|
||||
key: town.key,
|
||||
name: decodeURI(town.key).replace(/_/g," "),
|
||||
url: "http://awoiaf.westeros.org/index.php/" + town.key,
|
||||
house: decodeURI(house.wikiKey).replace(/_/g," "),
|
||||
houseUrl: "http://awoiaf.westeros.org/index.php/" + house.wikiKey,
|
||||
houseImg: house.img,
|
||||
timing: {
|
||||
episodes: [
|
||||
parseInt(house.firstEpisode, 10) || 0,
|
||||
parseInt(house.lastEpisode , 10) || 999
|
||||
],
|
||||
chapters: [
|
||||
parseInt(house.firstChapter, 10) || 0,
|
||||
parseInt(house.lastChapter , 10) || 999
|
||||
]
|
||||
},
|
||||
direct: "#@" + town.key,
|
||||
coords: {
|
||||
latitude: parseFloat(town.latitude),
|
||||
longitude: parseFloat(town.longitude)
|
||||
},
|
||||
options: {
|
||||
// zindex: 2, // bug prevents this form working
|
||||
icon: {path: 0, strokeOpacity: 0, scale: 3}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
function townSearchModel(town) {
|
||||
return {
|
||||
icon: "glyphicon-map-marker",
|
||||
key: town.key,
|
||||
title: decodeURI(town.key).replace(/_/g," "),
|
||||
subtitle: town.region.replace(/_/g," ")
|
||||
};
|
||||
}
|
||||
|
||||
function characterModel(character) {
|
||||
if (character.house!="") var matchingHouse = $filter('filter')(houses, {wikiKey: character.house})[0];
|
||||
return {
|
||||
key: character.key,
|
||||
name: character.name,
|
||||
url: "http://awoiaf.westeros.org/index.php/" + character.key,
|
||||
color: character.markerColor,
|
||||
pin: "https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=" + character.letter + "|" + character.markerColor.substring(1,7) + "|" + character.letterColor.substring(1,7),
|
||||
house: (character.house=="") ? "" : {
|
||||
name: decodeURI(matchingHouse.wikiKey).replace(/_/g," "),
|
||||
url: "http://awoiaf.westeros.org/index.php/" + matchingHouse.wikiKey,
|
||||
img: matchingHouse.img
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function characterSearchModel(character) {
|
||||
return {
|
||||
icon: "glyphicon-user",
|
||||
key: character.key,
|
||||
title: character.name,
|
||||
subtitle: "", //decodeURI(character.house).replace(/_/g," ")
|
||||
};
|
||||
}
|
||||
|
||||
function heraldryMarkerModel(house, index) {
|
||||
if (house.seatKey=="") {
|
||||
var coords = {
|
||||
latitude: parseFloat(house.lat),
|
||||
longitude: parseFloat(house.lng)
|
||||
};
|
||||
} else {
|
||||
var matchingTown = $filter('filter')(qmData.towns, {key: house.seatKey})[0];
|
||||
var coords = matchingTown.coords;
|
||||
}
|
||||
house.isGreat = (house.isGreat=="TRUE");
|
||||
|
||||
return {
|
||||
key: "house-" + index,
|
||||
name: decodeURI(house.wikiKey).replace(/_/g," "),
|
||||
url: "http://awoiaf.westeros.org/index.php/" + house.wikiKey,
|
||||
seat: decodeURI(house.seatKey).replace(/_/g," ") || house.clue || "unknown",
|
||||
seatUrl: "http://awoiaf.westeros.org/index.php/" + house.seatKey,
|
||||
houseImg: house.img,
|
||||
timing: {
|
||||
episodes: [
|
||||
parseInt(house.firstEpisode, 10) || 0,
|
||||
parseInt(house.lastEpisode , 10) || 999
|
||||
],
|
||||
chapters: [
|
||||
parseInt(house.firstChapter, 10) || 0,
|
||||
parseInt(house.lastChapter , 10) || 999
|
||||
]
|
||||
},
|
||||
direct: "#@" + house.seatKey,
|
||||
coords: coords,
|
||||
options: {
|
||||
// zindex: 1, // bug prevents this form working
|
||||
icon: {
|
||||
url: house.img,
|
||||
scaledSize: house.isGreat ? {height:60, width:50} : {height:30, width:25},
|
||||
anchor: house.isGreat ? {x:30, y:25} : {x:15, y:12}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function houseSearchModel(house) {
|
||||
return {
|
||||
icon: "glyphicon-home",
|
||||
title: decodeURI(house.wikiKey).replace(/_/g," "),
|
||||
subtitle: (house.seatKey=="") ? house.clue : decodeURI(house.seatKey).replace(/_/g," ")
|
||||
};
|
||||
}
|
||||
|
||||
function regionModel(region) {
|
||||
return {
|
||||
key: region.key,
|
||||
fill: {
|
||||
color: region.color,
|
||||
opacity: 0.5
|
||||
},
|
||||
stroke: {weight: 0},
|
||||
path: qmData.borderArrays[region.key]
|
||||
};
|
||||
}
|
||||
|
||||
function loyaltyRangeModel(loyaltyRange) {
|
||||
var keyMatch = /(.+)\-\d+\w?$/.exec(loyaltyRange.key);
|
||||
var matchingBelligerant = $filter('filter')(qmData.belligerents, {key: keyMatch[1]})[0];
|
||||
return {
|
||||
key: loyaltyRange.key,
|
||||
fill: {
|
||||
color: matchingBelligerant.color,
|
||||
opacity: 0.5
|
||||
},
|
||||
stroke: {weight: 0},
|
||||
path: qmData.lrEdgeArrays[loyaltyRange.key],
|
||||
timing: {
|
||||
episodes: [getEpisodeId(loyaltyRange.firstEpisode), getEpisodeId(loyaltyRange.lastEpisode)],
|
||||
chapters: [getChapterId(loyaltyRange.firstChapter), getChapterId(loyaltyRange.lastChapter)]
|
||||
},
|
||||
clickable: true
|
||||
};
|
||||
}
|
||||
|
||||
function characterMarkerModel(stop, index, fullArray) {
|
||||
var matchingCharacter = $filter('filter')(qmData.characters, {key: stop.character})[0];
|
||||
var coords = (stop.town=="") ? {latitude:parseFloat(stop.latitude), longitude:parseFloat(stop.longitude)} : $filter('filter')(qmData.towns, {key: stop.town})[0].coords;
|
||||
|
||||
var firstChapter = getChapterId(stop.firstChapter);
|
||||
var lastChapter = (firstChapter==-1) ? -1 : 999;
|
||||
var firstEpisode = getEpisodeId(stop.firstEpisode);
|
||||
var lastEpisode = (firstEpisode==-1) ? -1 : 999;
|
||||
for (var stopId=index+1; stopId<fullArray.length; stopId++) {
|
||||
if (lastChapter!=999 && lastEpisode!=999) break;
|
||||
if (fullArray[stopId].character != stop.character) break;
|
||||
if (lastChapter==999 && fullArray[stopId].firstChapter!="") lastChapter = getChapterId(fullArray[stopId].firstChapter)-1;
|
||||
if (lastEpisode==999 && fullArray[stopId].firstEpisode!="") lastEpisode = getEpisodeId(fullArray[stopId].firstEpisode)-1;
|
||||
}
|
||||
|
||||
var iconUrl = matchingCharacter.pin;
|
||||
if (stop.isLost=="TRUE") iconUrl = iconUrl.replace(/letter\&chld\=\w/, "icon&chld=glyphish_squiggle");
|
||||
if (stop.isDead=="TRUE") iconUrl = iconUrl.replace(/letter\&chld\=\w/, "icon&chld=glyphish_skull");
|
||||
|
||||
return {
|
||||
key: "stop-" + index,
|
||||
character: {
|
||||
key: matchingCharacter.key,
|
||||
name: matchingCharacter.name,
|
||||
url: "http://awoiaf.westeros.org/index.php/" + matchingCharacter.key,
|
||||
houseImg: matchingCharacter.house.img
|
||||
},
|
||||
episode: qmData.episodes[firstEpisode],
|
||||
chapter: qmData.chapters[firstChapter],
|
||||
town: {
|
||||
name: (stop.town=="") ? stop.clue : decodeURI(stop.town).replace(/_/g," "),
|
||||
url: (stop.town=="") ? "#" : "http://awoiaf.westeros.org/index.php/" + stop.town
|
||||
},
|
||||
timing: {
|
||||
episodes: [firstEpisode, lastEpisode],
|
||||
chapters: [firstChapter, lastChapter]
|
||||
},
|
||||
coords: coords,
|
||||
options: {
|
||||
icon: { url: iconUrl }
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function characterPathModel(path, index) {
|
||||
var reMatch = /([\w\_\(\)]+)\-\d+/.exec(path.key);
|
||||
//console.log(reMatch[1]);
|
||||
var matchingCharacter = $filter('filter')(qmData.characters, {key: reMatch[1]})[0];
|
||||
var firstChapter = getChapterId(path.firstChapter);
|
||||
var firstEpisode = getEpisodeId(path.firstEpisode);
|
||||
console.log(path.key, qmData.waypointArrays[path.key]);
|
||||
var waypoints = qmData.waypointArrays[path.key].map(waypointModel);
|
||||
var icons = [];
|
||||
if (path.arrows=="TRUE") icons.push({
|
||||
icon: { path: 2 }, //google.maps.SymbolPath.BACKWARD_OPEN_ARROW
|
||||
offset: '25px',
|
||||
repeat: '100px'
|
||||
});
|
||||
|
||||
return {
|
||||
key: path.key,
|
||||
character: { key: matchingCharacter.key },
|
||||
path: waypoints,
|
||||
stroke: {
|
||||
color: matchingCharacter.color,
|
||||
weight: 3
|
||||
},
|
||||
editable: false,
|
||||
static: true,
|
||||
icons: icons,
|
||||
timing: {
|
||||
episodes: [
|
||||
firstEpisode,
|
||||
(firstEpisode==-1) ? -1 : 999
|
||||
],
|
||||
chapters: [
|
||||
firstChapter,
|
||||
(firstChapter==-1) ? -1 : 999
|
||||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function waypointModel(waypoint) {
|
||||
if (waypoint.location=="") return {
|
||||
latitude: parseFloat(waypoint.latitude),
|
||||
longitude: parseFloat(waypoint.longitude),
|
||||
location: ""
|
||||
};
|
||||
var matchingTown = $filter('filter')(qmData.towns, {key: waypoint.location})[0];
|
||||
return {
|
||||
latitude: matchingTown.coords.latitude,
|
||||
longitude: matchingTown.coords.longitude,
|
||||
location: waypoint.location
|
||||
};
|
||||
}
|
||||
|
||||
function belligerentModel(belligerent) {
|
||||
var matchingHouse = $filter('filter')(houses, {wikiKey: belligerent.house})[0];
|
||||
return {
|
||||
key: belligerent.key,
|
||||
title: belligerent.title,
|
||||
name: belligerent.name,
|
||||
url: "http://awoiaf.westeros.org/index.php/" + belligerent.key,
|
||||
houseImg: matchingHouse.img,
|
||||
houseUrl: "http://awoiaf.westeros.org/index.php/" + belligerent.house,
|
||||
color: belligerent.color,
|
||||
timing: {
|
||||
episodes: [
|
||||
getEpisodeId(belligerent.firstEpisode),
|
||||
getEpisodeId(belligerent.lastEpisode)
|
||||
],
|
||||
chapters: [
|
||||
getChapterId(belligerent.firstChapter),
|
||||
getChapterId(belligerent.lastChapter)
|
||||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function getChapterId(chapterKey) {
|
||||
//AGOT-2 to 2
|
||||
if (chapterKey=="") return -1;
|
||||
if (chapterKey=="TWOW-?") return 344;
|
||||
if (chapterKey=="TWOW-???") return 344;
|
||||
var reMatch = /(\w{4})\-(\d+)/.exec(chapterKey);
|
||||
var precedingChapters = parseInt(qmData.bookLookup[ reMatch[1] ].precedingChapters, 10)
|
||||
return precedingChapters + parseInt(reMatch[2], 10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function getFile(filename) {
|
||||
return $http
|
||||
.get(csvLocation + filename)
|
||||
.then(getDataAttr)
|
||||
.then(fCsv.toJson)
|
||||
// .then(function(json){
|
||||
// // Remove \" characters from strings
|
||||
// })
|
||||
.then(angular.fromJson)
|
||||
}
|
||||
|
||||
function getDataAttr(resp) {
|
||||
return resp.data;
|
||||
}
|
||||
|
||||
function getEpisodeId(episodeKey) {
|
||||
//S1E01 to 0
|
||||
if (episodeKey=="") return -1;
|
||||
var reMatch = /S(\d)E(\d\d)/.exec(episodeKey);
|
||||
return 10*(parseInt(reMatch[1], 10)-1) + parseInt(reMatch[2], 10)-1;
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
.filter('qmSlider', function() {
|
||||
|
||||
// In the return function, we must pass in a single parameter which will be the data we will work on.
|
||||
// We have the ability to support multiple other parameters that can be passed into the filter optionally
|
||||
return function(inputArray, slider, options) {
|
||||
|
||||
var outputArray = [];
|
||||
var currentValue = (slider.show=="episodes") ? slider.currentEpisode : slider.currentChapter;
|
||||
|
||||
for (var i=0; i<inputArray.length; i++) {
|
||||
if (currentValue < inputArray[i].timing[slider.show][0]) continue;
|
||||
if (currentValue > inputArray[i].timing[slider.show][1]) continue;
|
||||
if (typeof options !== "undefined" && typeof inputArray[i].character.key !== "undefined") {
|
||||
if (!options.characters[ inputArray[i].character.key ]) continue;
|
||||
}
|
||||
outputArray.push(inputArray[i]);
|
||||
}
|
||||
|
||||
return outputArray;
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
.directive('qmList', function ($window) {
|
||||
return {
|
||||
restrict: 'A',
|
||||
link: function (scope, elem, attrs) {
|
||||
var winHeight = $window.innerHeight;
|
||||
// var listHeight = attrs.qmList ? 41*parseInt(attrs.qmList, 10) : 0;
|
||||
// if (listHeight>winHeight) elem.css('height', winHeight - 48 + 'px');
|
||||
elem.css('height', winHeight - 55 + 'px');
|
||||
}
|
||||
};
|
||||
});
|
||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |