character markers are visible & react to slider (but not switches)
This commit is contained in:
@@ -20,6 +20,10 @@ html, body, ui-gmap-google-map, .angular-google-map, .angular-google-map-contain
|
|||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
|
width: 280px;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
#side h1 span.glyphicon {
|
#side h1 span.glyphicon {
|
||||||
|
|||||||
+57
-58
@@ -1,58 +1,57 @@
|
|||||||
key,name,letter,markerColor,letterColor,house,awoiaf,firstChapter,firstEpisode
|
key,name,letter,markerColor,letterColor,house,firstChapter,firstEpisode
|
||||||
eddard,Eddard Stark,E,#505050,#000000,House_Stark,Eddard_Stark,,
|
Eddard_Stark,Eddard Stark,E,#505050,#FFFFFF,House_Stark,,
|
||||||
catelyn,Catelyn Stark,C,#635C77,#000000,House_Stark,Catelyn_Stark,,
|
Catelyn_Stark,Catelyn Stark,C,#635C77,#FFFFFF,House_Stark,,
|
||||||
robb,Robb Stark,R,#606060,#000000,House_Stark,Robb_Stark,,
|
Robb_Stark,Robb Stark,R,#606060,#FFFFFF,House_Stark,,
|
||||||
sansa,Sansa Stark,S,#707070,#000000,House_Stark,Sansa_Stark,,
|
Sansa_Stark,Sansa Stark,S,#707070,#FFFFFF,House_Stark,,
|
||||||
bran,Bran Stark,B,#808080,#000000,House_Stark,Bran_Stark,,
|
Bran_Stark,Bran Stark,B,#808080,#FFFFFF,House_Stark,,
|
||||||
arya,Arya Stark,A,#909090,#000000,House_Stark,Arya_Stark,,
|
Arya_Stark,Arya Stark,A,#909090,#FFFFFF,House_Stark,,
|
||||||
rickon,Rickon Stark,r,#A0A0A0,#000000,House_Stark,Rickon_Stark,,
|
Rickon_Stark,Rickon Stark,r,#A0A0A0,#FFFFFF,House_Stark,,
|
||||||
benjen,Benjen Stark,U,#B0B0B0,#000000,House_Stark,Benjen_Stark,,
|
Benjen_Stark,Benjen Stark,U,#B0B0B0,#FFFFFF,House_Stark,,
|
||||||
jon,Jon Snow,J,#837171,#000000,House_Stark,Jon_Snow,,
|
Jon_Snow,Jon Snow,J,#837171,#FFFFFF,House_Stark,,
|
||||||
viserys,Viserys Targaryen,V,#000000,#FF0000,House_Targaryen,Viserys_Targaryen,,
|
Viserys_Targaryen,Viserys Targaryen,V,#000000,#FF0000,House_Targaryen,,
|
||||||
daenerys,Daenerys Targaryen,D,#000000,#FF0000,House_Targaryen,Daenerys_Targaryen,,
|
Daenerys_Targaryen,Daenerys Targaryen,D,#000000,#FF0000,House_Targaryen,,
|
||||||
aegon,Aegon Targaryen,A,#000000,#FF0000,House_Targaryen,Aegon_Targaryen,ADWD-18,never
|
Aegon_Targaryen,Aegon Targaryen,A,#000000,#FF0000,House_Targaryen,ADWD-18,never
|
||||||
drogon,Drogon,d,#000000,#FF0000,,Drogon,AGOT-72,S1E10
|
Drogon,Drogon,d,#000000,#FF0000,,AGOT-72,S1E10
|
||||||
rhaegal,Rhaegal,r,#000000,#FF0000,,Rhaegal,AGOT-72,S1E10
|
Rhaegal,Rhaegal,r,#000000,#FF0000,,AGOT-72,S1E10
|
||||||
viserion,Viserion,v,#000000,#FF0000,,Viserion,AGOT-72,S1E10
|
Viserion,Viserion,v,#000000,#FF0000,,AGOT-72,S1E10
|
||||||
tywin,Tywin Lannister,T,#FF0000,#FFFF00,House_Lannister,Tywin_Lannister,,
|
Tywin_Lannister,Tywin Lannister,T,#FF0000,#FFFF00,House_Lannister,,
|
||||||
jaime,Jaime Lannister,J,#D80000,#FFFF00,House_Lannister,Jaime_Lannister,,
|
Jaime_Lannister,Jaime Lannister,J,#D80000,#FFFF00,House_Lannister,,
|
||||||
cersei,Cersei Lannister,C,#B80000,#FFFF00,House_Lannister,Cersei_Lannister,,
|
Cersei_Lannister,Cersei Lannister,C,#B80000,#FFFF00,House_Lannister,,
|
||||||
tyrion,Tyrion Lannister,T,#A00000,#FFFF00,House_Lannister,Tyrion_Lannister,,
|
Tyrion_Lannister,Tyrion Lannister,T,#A00000,#FFFF00,House_Lannister,,
|
||||||
lancel,Lancel Lannister,L,#900000,#FFFF00,House_Lannister,Lancel_Lannister,,
|
Lancel_Lannister,Lancel Lannister,L,#900000,#FFFF00,House_Lannister,,
|
||||||
joffrey,Joffrey Baratheon,j,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,Joffrey_Baratheon,,
|
Joffrey_Baratheon,Joffrey Baratheon,j,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,,
|
||||||
myrcella,Myrcella Baratheon,m,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,Myrcella_Baratheon,,
|
Myrcella_Baratheon,Myrcella Baratheon,m,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,,
|
||||||
tommen,Tommen Baratheon,t,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,,,
|
,Tommen Baratheon,t,#FF2700,#000000,House_Baratheon_of_King%27s_Landing,,
|
||||||
robert,Robert Baratheon,R,#F3CD18,#000000,House_Baratheon,Robert_Baratheon,,
|
Robert_Baratheon,Robert Baratheon,R,#F3CD18,#000000,House_Baratheon,,
|
||||||
stannis,Stannis Baratheon,S,#C68D14,#000000,House_Baratheon_of_Dragonstone,Stannis_Baratheon,,
|
Stannis_Baratheon,Stannis Baratheon,S,#C68D14,#000000,House_Baratheon_of_Dragonstone,,
|
||||||
renly,Renly Baratheon,r,#C6A714,#000000,House_Baratheon,Renly_Baratheon,,
|
Renly_Baratheon,Renly Baratheon,r,#C6A714,#000000,House_Baratheon,,
|
||||||
loras,Loras Tyrell,L,#006600,#FFFF00,House_Tyrell,Loras_Tyrell,,
|
Loras_Tyrell,Loras Tyrell,L,#006600,#FFFF00,House_Tyrell,,
|
||||||
maraery,Margaery Tyrell,M,#027C02,#FFFF00,House_Tyrell,Margaery_Tyrell,,
|
Margaery_Tyrell,Margaery Tyrell,M,#027C02,#FFFF00,House_Tyrell,,
|
||||||
olenna,Olenna Tyrell,O,#0D8F0D,#FFFF00,House_Tyrell,Olenna_Tyrell,,
|
Olenna_Tyrell,Olenna Tyrell,O,#0D8F0D,#FFFF00,House_Tyrell,,
|
||||||
theon,Theon Greyjoy,T,#FF9700,#000000,House_Greyjoy,Theon_Greyjoy,,
|
Theon_Greyjoy,Theon Greyjoy,T,#FF9700,#000000,House_Greyjoy,,
|
||||||
asha,Yara/Asha Greyjoy,Y,#E68801,#000000,House_Greyjoy,Asha_Greyjoy,,
|
Asha_Greyjoy,Yara/Asha Greyjoy,Y,#E68801,#000000,House_Greyjoy,,
|
||||||
euron,Euron Greyjoy,E,#C67400,#000000,House_Greyjoy,Euron_Greyjoy,,
|
Euron_Greyjoy,Euron Greyjoy,E,#C67400,#000000,House_Greyjoy,,
|
||||||
victarion,Victarion Greyjoy,V,#D78004,#000000,House_Greyjoy,Victarion_Greyjoy,,
|
Victarion_Greyjoy,Victarion Greyjoy,V,#D78004,#000000,House_Greyjoy,,
|
||||||
brienne,Brienne of Tarth,B,#FF00FF,#FFFFFF,House_Tarth,Brienne_of_Tarth,,
|
Brienne_of_Tarth,Brienne of Tarth,B,#FF00FF,#FFFFFF,House_Tarth,,
|
||||||
davos,Davos Seaworth,D,#505050,#FFFFFF,House_Seaworth,Davos,,
|
Davos,Davos Seaworth,D,#505050,#FFFFFF,House_Seaworth,,
|
||||||
samwell,Samwell Tarly,S,#006300,#000000,House_Tarly,Samwell_Tarly,,
|
Samwell_Tarly,Samwell Tarly,S,#006300,#000000,House_Tarly,,
|
||||||
barristan,Barristan Selmy,B,#A55D34,#FCFC06,House_Selmy,Barristan_Selmy,,
|
Barristan_Selmy,Barristan Selmy,B,#A55D34,#FCFC06,House_Selmy,,
|
||||||
petyr,Petyr Baelish,P,#006300,#FFFFFF,House_Baelish,Petyr_Baelish,,
|
Petyr_Baelish,Petyr Baelish,P,#006300,#FFFFFF,House_Baelish,,
|
||||||
jeor,Jeor Mormont,J,#66C366,#000000,House_Mormont,Jeor_Mormont,,
|
Jeor_Mormont,Jeor Mormont,J,#66C366,#000000,House_Mormont,,
|
||||||
jorah,Jorah Mormont,J,#66C366,#000000,House_Mormont,Jorah_Mormont,,
|
Jorah_Mormont,Jorah Mormont,J,#66C366,#000000,House_Mormont,,
|
||||||
arianne,Arianne Martell,A,#AD011B,#000000,House_Martell,Arianne_Martell,0,never
|
Arianne_Martell,Arianne Martell,A,#AD011B,#000000,House_Martell,0,never
|
||||||
oberyn,Oberyn Martell,O,#96051A,#000000,House_Martell,Oberyn_Martell,,
|
Oberyn_Martell,Oberyn Martell,O,#96051A,#000000,House_Martell,,
|
||||||
ellaria,Ellaria Sand,E,#942938,#000000,House_Martell,Ellaria_Sand,,
|
Ellaria_Sand,Ellaria Sand,E,#942938,#000000,House_Martell,,
|
||||||
sandor,Sandor Clegane,S,#FCFF00,#2D2D2D,House_Clegane,Sandor_Clegane,,
|
Sandor_Clegane,Sandor Clegane,S,#FCFF00,#2D2D2D,House_Clegane,,
|
||||||
gregor,Gregor Clegane,G,#EAED00,#2D2D2D,House_Clegane,Gregor_Clegane,,
|
Gregor_Clegane,Gregor Clegane,G,#EAED00,#2D2D2D,House_Clegane,,
|
||||||
roose,Roose Bolton,R,#E24334,#000000,House_Bolton,Roose_Bolton,,
|
Roose_Bolton,Roose Bolton,R,#E24334,#000000,House_Bolton,,
|
||||||
ramsey,Ramsay Snow,r,#CA4133,#000000,House_Bolton,Ramsay_Snow,,
|
Ramsay_Snow,Ramsay Snow,r,#CA4133,#000000,House_Bolton,,
|
||||||
gendry,Gendry,G,#FFD200,#000000,,Gendry,,
|
Gendry,Gendry,G,#FFD200,#000000,,,
|
||||||
bronn,Bronn,B,#742296,#FFFFFF,,Bronn,,
|
Bronn,Bronn,B,#742296,#FFFFFF,,,
|
||||||
melisandre,Melisandre,M,#FF0000,#FFFFFF,,Melisandre,,
|
Melisandre,Melisandre,M,#FF0000,#FFFFFF,,,
|
||||||
varys,Varys,V,#9D0083,#000000,,Varys,,
|
Varys,Varys,V,#9D0083,#000000,,,
|
||||||
qyburn,Qyburn,Q,#A639D3,#FFFFFF,,Qyburn,,
|
Qyburn,Qyburn,Q,#A639D3,#FFFFFF,,,
|
||||||
osha,Osha,O,#0043BD,#FFFFFF,,Osha,,
|
Osha,Osha,O,#0043BD,#FFFFFF,,,
|
||||||
mance,Mance Rayder,M,#3F7AE4,#FFFFFF,,Mance_Rayder,,
|
Mance_Rayder,Mance Rayder,M,#3F7AE4,#FFFFFF,,,
|
||||||
ygritte,Ygritte,Y,#4485FC,#FFFFFF,,Ygritte,,
|
Ygritte,Ygritte,Y,#4485FC,#FFFFFF,,,
|
||||||
tormund,Tormund,T,#3B6FCF,#FFFFFF,,Tormund,,
|
Tormund,Tormund,T,#3B6FCF,#FFFFFF,,,
|
||||||
nightking,The Night King,N,#FFFFFF,#000000,,Others,never,S5E08
|
|
||||||
|
@@ -0,0 +1,5 @@
|
|||||||
|
path,firstChapter,firstEpisode
|
||||||
|
eddard-1,AGOT-1,S1E01
|
||||||
|
eddard-2,AGOT-12,S1E02
|
||||||
|
eddard-3,AGOT-15,S1E02
|
||||||
|
eddard-4,AGOT-20,S1E03
|
||||||
|
@@ -0,0 +1,24 @@
|
|||||||
|
character,town,clue,latitude,longitude,firstChapter,firstEpisode,isLost,isDead,isUnmentioned
|
||||||
|
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,Riverrun,,,,ACOK-39,S3E03,,,
|
||||||
|
@@ -0,0 +1,17 @@
|
|||||||
|
key,location,latitude,longitude
|
||||||
|
eddard-1,Winterfell,,
|
||||||
|
eddard-1,Execution_Holdfast,,
|
||||||
|
eddard-2,Winterfell,,
|
||||||
|
eddard-2,,64.6991,-124.8632
|
||||||
|
eddard-2,,57.9848,-122.4023
|
||||||
|
eddard-3,,57.9848,-122.4023
|
||||||
|
eddard-3,,44.59,-122.4023
|
||||||
|
eddard-3,,41.0462,-120.5566
|
||||||
|
eddard-3,,36.1733,-122.0507
|
||||||
|
eddard-3,,33.87,-121.5234
|
||||||
|
eddard-3,,26.4312,-114.1406
|
||||||
|
eddard-4,,26.4312,-114.1406
|
||||||
|
eddard-4,Darry,,
|
||||||
|
eddard-4,,16.0669,-109.5263
|
||||||
|
eddard-4,Hayford,,
|
||||||
|
eddard-4,King%27s_Landing,,
|
||||||
|
+18
-3
@@ -42,7 +42,6 @@
|
|||||||
models='mapModels.heraldry'
|
models='mapModels.heraldry'
|
||||||
coords="'coords'"
|
coords="'coords'"
|
||||||
options="'options'"
|
options="'options'"
|
||||||
visible="options.houseHeraldry"
|
|
||||||
click="map.heraldryClick"
|
click="map.heraldryClick"
|
||||||
idkey="'key'">
|
idkey="'key'">
|
||||||
</ui-gmap-markers>
|
</ui-gmap-markers>
|
||||||
@@ -57,6 +56,22 @@
|
|||||||
idKey="'key'">
|
idKey="'key'">
|
||||||
</ui-gmap-polygons>
|
</ui-gmap-polygons>
|
||||||
|
|
||||||
|
<!-- Character Markers -->
|
||||||
|
<ui-gmap-markers
|
||||||
|
models='mapModels.characters'
|
||||||
|
coords="'coords'"
|
||||||
|
options="'options'"
|
||||||
|
click="map.characterClick"
|
||||||
|
type="'spider'"
|
||||||
|
idkey="'key'">
|
||||||
|
</ui-gmap-markers>
|
||||||
|
|
||||||
|
<!-- Character Paths -->
|
||||||
|
<!-- <ui-gmap-polylines
|
||||||
|
models='mapModels.paths'
|
||||||
|
idkey="'key'">
|
||||||
|
</ui-gmap-polylines> -->
|
||||||
|
|
||||||
</ui-gmap-google-map>
|
</ui-gmap-google-map>
|
||||||
|
|
||||||
<div id="side" class=".col-xs-12 .col-md-3">
|
<div id="side" class=".col-xs-12 .col-md-3">
|
||||||
@@ -64,8 +79,8 @@
|
|||||||
<div id="slider" ng-show="state.substring(0,6)=='slider'">
|
<div id="slider" ng-show="state.substring(0,6)=='slider'">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="glyphicon glyphicon-menu-hamburger" ng-click="toState('menu')"></span>
|
<span class="glyphicon glyphicon-menu-hamburger" ng-click="toState('menu')"></span>
|
||||||
<span ng-show="slider.show=='episodes'" ng-bind="episodes[slider.currentEpisode].name" ng-click="toState('slider-full')"></span>
|
<span ng-show="slider.show=='episodes'" ng-bind="episodes[slider.currentEpisode].name" title="{{episodes[slider.currentEpisode].name}}" ng-click="toState('slider-full')"></span>
|
||||||
<span ng-show="slider.show=='chapters'" ng-bind="chapters[slider.currentChapter].name" ng-click="toState('slider-full')"></span>
|
<span ng-show="slider.show=='chapters'" ng-bind="chapters[slider.currentChapter].name" title="{{chapters[slider.currentChapter].name}}" ng-click="toState('slider-full')"></span>
|
||||||
</h1>
|
</h1>
|
||||||
<div id="slider-control" ng-show="state=='slider-full'">
|
<div id="slider-control" ng-show="state=='slider-full'">
|
||||||
<div class="btn-group btn-group-2" role="group">
|
<div class="btn-group btn-group-2" role="group">
|
||||||
|
|||||||
+7
-4
@@ -14,7 +14,8 @@ angular.module('quartermaester')
|
|||||||
characterPaths: true,
|
characterPaths: true,
|
||||||
houseHeraldry: false,
|
houseHeraldry: false,
|
||||||
geographicRegions: false,
|
geographicRegions: false,
|
||||||
politicalAllegiances: false
|
politicalAllegiances: false,
|
||||||
|
characters: []
|
||||||
};
|
};
|
||||||
$scope.map = {
|
$scope.map = {
|
||||||
center: {
|
center: {
|
||||||
@@ -34,7 +35,8 @@ angular.module('quartermaester')
|
|||||||
control: {},
|
control: {},
|
||||||
smgMapType: smgMapType,
|
smgMapType: smgMapType,
|
||||||
locationClick: locationClick,
|
locationClick: locationClick,
|
||||||
heraldryClick: heraldryClick
|
heraldryClick: heraldryClick,
|
||||||
|
characterClick: heraldryClick
|
||||||
};
|
};
|
||||||
$scope.mapModels = {
|
$scope.mapModels = {
|
||||||
towns: [],
|
towns: [],
|
||||||
@@ -80,7 +82,9 @@ angular.module('quartermaester')
|
|||||||
// Redraw map with new slider values
|
// Redraw map with new slider values
|
||||||
$scope.mapModels.towns = $filter('qmSlider')(qmData.towns, $scope.slider);
|
$scope.mapModels.towns = $filter('qmSlider')(qmData.towns, $scope.slider);
|
||||||
$scope.mapModels.heraldry = $scope.options.houseHeraldry ? $filter('qmSlider')(qmData.heraldry, $scope.slider) : [];
|
$scope.mapModels.heraldry = $scope.options.houseHeraldry ? $filter('qmSlider')(qmData.heraldry, $scope.slider) : [];
|
||||||
//console.log("heraldry", $scope.mapModels.heraldry);
|
$scope.mapModels.characters = $filter('qmSlider')(qmData.characterMarkers, $scope.slider); //$filter('qmCharacters')(qmData.characterMarkers, $scope.options.characters, $scope.slider);
|
||||||
|
$scope.mapModels.paths = qmData.characterPaths;
|
||||||
|
console.log("qmData.characterPaths", qmData.characterPaths);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -94,7 +98,6 @@ angular.module('quartermaester')
|
|||||||
}
|
}
|
||||||
|
|
||||||
function slideTo(input) {
|
function slideTo(input) {
|
||||||
console.log("qmData", qmData);
|
|
||||||
var books = qmData.books.map(function(book) {return book.abbreviation;});
|
var books = qmData.books.map(function(book) {return book.abbreviation;});
|
||||||
var measure = ($scope.slider.show=="episodes") ? "currentEpisode" : "currentChapter";
|
var measure = ($scope.slider.show=="episodes") ? "currentEpisode" : "currentChapter";
|
||||||
var sliderMax = ($scope.slider.show=="episodes") ? $scope.episodes.length-1 : $scope.chapters.length-1;
|
var sliderMax = ($scope.slider.show=="episodes") ? $scope.episodes.length-1 : $scope.chapters.length-1;
|
||||||
|
|||||||
+81
-18
@@ -53,11 +53,7 @@ angular.module('quartermaester')
|
|||||||
|
|
||||||
var csvLocation = "http://www.rslc.us/quartermaester/data/";
|
var csvLocation = "http://www.rslc.us/quartermaester/data/";
|
||||||
return {
|
return {
|
||||||
// get: getFile,
|
loadData: loadData
|
||||||
loadData: loadData,
|
|
||||||
// setHomes: setHomes,
|
|
||||||
// setHeraldry: setHeraldry,
|
|
||||||
// getCurrentOccupant: getCurrentOccupant
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
@@ -73,15 +69,16 @@ angular.module('quartermaester')
|
|||||||
getFile('regions.csv'),
|
getFile('regions.csv'),
|
||||||
getFile('towns.csv'),
|
getFile('towns.csv'),
|
||||||
getFile('borders.csv'),
|
getFile('borders.csv'),
|
||||||
// getFile('stops.csv'),
|
getFile('stops.csv'),
|
||||||
// getFile('waypoints.csv'),
|
getFile('waypoints.csv'),
|
||||||
// getFile('paths.csv')
|
getFile('paths.csv')
|
||||||
]).spread(parseData);
|
]).spread(parseData);
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseData(books, chapters, seasons, episodes, houses, characters, regions, towns, borders, stops, waypoints, paths) {
|
function parseData(books, chapters, seasons, episodes, houses, characters, regions, towns, borders, stops, waypoints, paths) {
|
||||||
var qmData = {
|
var qmData = {
|
||||||
borderArrays: {}
|
borderArrays: {},
|
||||||
|
bookLookup: {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -91,6 +88,10 @@ angular.module('quartermaester')
|
|||||||
qmData.borderArrays[borders[i].name].push(borders[i]);
|
qmData.borderArrays[borders[i].name].push(borders[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var i=0; i<books.length; i++) {
|
||||||
|
qmData.bookLookup[books[i].abbreviation] = books[i];
|
||||||
|
}
|
||||||
|
|
||||||
qmData.episodes = episodes.map(episodeModel);
|
qmData.episodes = episodes.map(episodeModel);
|
||||||
qmData.chapters = chapters.map(chapterModel);
|
qmData.chapters = chapters.map(chapterModel);
|
||||||
qmData.books = books;
|
qmData.books = books;
|
||||||
@@ -98,6 +99,7 @@ angular.module('quartermaester')
|
|||||||
qmData.characters = characters.map(characterModel);
|
qmData.characters = characters.map(characterModel);
|
||||||
qmData.towns = getTownMarkers(towns, houses);
|
qmData.towns = getTownMarkers(towns, houses);
|
||||||
qmData.heraldry = houses.map(heraldryMarkerModel);
|
qmData.heraldry = houses.map(heraldryMarkerModel);
|
||||||
|
qmData.characterMarkers = stops.map(characterMarkerModel);
|
||||||
|
|
||||||
|
|
||||||
qmData.searchResults = [].concat(
|
qmData.searchResults = [].concat(
|
||||||
@@ -108,6 +110,8 @@ angular.module('quartermaester')
|
|||||||
chapters.map(chapterSearchModel)
|
chapters.map(chapterSearchModel)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
qmData.characterPaths = [];
|
||||||
|
|
||||||
|
|
||||||
return qmData;
|
return qmData;
|
||||||
|
|
||||||
@@ -223,20 +227,18 @@ angular.module('quartermaester')
|
|||||||
}
|
}
|
||||||
|
|
||||||
function characterModel(character) {
|
function characterModel(character) {
|
||||||
var output = {
|
if (character.house!="") var matchingHouse = $filter('filter')(houses, {wikiKey: character.house})[0];
|
||||||
|
return {
|
||||||
|
key: character.key,
|
||||||
name: character.name,
|
name: character.name,
|
||||||
url: "http://awoiaf.westeros.org/index.php/" + character.awoiaf,
|
url: "http://awoiaf.westeros.org/index.php/" + character.key,
|
||||||
house: ""
|
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=="") ? "" : {
|
||||||
if (character.house!="") {
|
|
||||||
matchingHouse = $filter('filter')(houses, {wikiKey: character.house})[0];
|
|
||||||
output.house = {
|
|
||||||
name: decodeURI(matchingHouse.wikiKey).replace(/_/g," "),
|
name: decodeURI(matchingHouse.wikiKey).replace(/_/g," "),
|
||||||
url: "http://awoiaf.westeros.org/index.php/" + matchingHouse.wikiKey,
|
url: "http://awoiaf.westeros.org/index.php/" + matchingHouse.wikiKey,
|
||||||
img: matchingHouse.img
|
img: matchingHouse.img
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
return output;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function characterSearchModel(character) {
|
function characterSearchModel(character) {
|
||||||
@@ -311,6 +313,60 @@ angular.module('quartermaester')
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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: {
|
||||||
|
name: matchingCharacter.name,
|
||||||
|
url: "http://awoiaf.westeros.org/index.php/" + matchingCharacter.key
|
||||||
|
},
|
||||||
|
episode: qmData.episodes[firstEpisode],
|
||||||
|
chapter: qmData.chapters[firstChapter],
|
||||||
|
location: {
|
||||||
|
name: (stop.town=="") ? stop.clue : stop.town,
|
||||||
|
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 getChapterId(chapterKey) {
|
||||||
|
//AGOT-2 to 2
|
||||||
|
if (chapterKey=="") return -1;
|
||||||
|
var reMatch = /(\w{4})\-(\d+)/.exec(chapterKey);
|
||||||
|
var precedingChapters = parseInt(qmData.bookLookup[ reMatch[1] ].precedingChapters, 10)
|
||||||
|
return precedingChapters + parseInt(reMatch[2], 10);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -332,6 +388,13 @@ angular.module('quartermaester')
|
|||||||
return resp.data;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user