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