!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

Google
JSON
Børre Stenseth
Eksempler > uefa >Klubber i Europa

Fotballklubber i Europa

Hva
Geografisk plassering av fotballklubber i Europa

Det er bygget en webside som kombinerer flere komponenter:

  • Google maps, [1]
  • JSON data, se modulen JSON
  • Importerte widgets (iframe) fra SoccerWay [2]
  • Tabulator fra BarelyFitz Designs [3]

Prøv den også på mobiltelefonen.

Illustrasjonene nedenfor er øyeblikksbilder fra april 2013.

JSON

teamlist
Liste av klubber

Data om klubber og arenaer er samlet sammen fra klubbenes og arenaenes hjemmesider og fra Wikipedia. Det er en overkommelig jobb å samle/skrape dette i CSV-filer og så produsere JSON-filer.

Utdrag fra en JSON-fil som viser klubber i SpanskPrimera division:

var teamsES1={"tlist":[
{"ID" : "ES0001","Name": "Barcelona FC",
"Level":"1",
"Logo":"ES0001.png",
"Wiki":"http://en.wikipedia.org/wiki/Barcelona_FC"},
{"ID" : "ES0002","Name": "Club Atlético de Madrid",
"Level":"1",
"Logo":"ES0002.png",
"Wiki":"http://en.wikipedia.org/wiki/Club_Atl%C3%A9tico_de_Madrid"},
...]};

Tilsvarende som viser arenaer i Spansk Primera division:

var arenasES1={"alist":[
{"Name" : "Camp Nou",
"Lat":"41.3808333", "Lng":"2.12277777",
"Teamlist":"ES0001",
"Wiki":"http://en.wikipedia.org/wiki/Camp_nou",
"Capacity":"99000"},
{"Name" : "Vicente Calderón Stadium",
"Lat":"40.4017194","Lng":"-3.7206055",
"Teamlist":"ES0002",
"Wiki":"http://en.wikipedia.org/wiki/Vicente_Calder%C3%B3n_Stadium",
"Capacity":"55000"},
...
]};

Alle data som beskriver lag og arenaer lastes opp når websiden lastes. JSON-dataene inkluderes som i <script> - tagger. Det er altså ikke behov for serves-access når websiden første er lastet. I øyeblikket er de to øverste nivåene i Norge, Sverige, Danmark, England, Nederland, Frankrike, Tyskland, Spania og Portugal tatt med.

Kart

map
Kart med fotballarenaer

Kartet er basert på Googles Map API. Javascript kode som viser kart (utdrag):

// make markers for arenas
function makeMarker(arena,map){
    var lat=parseFloat(arena.Lat);
    var lng=parseFloat(arena.Lng);
    latmin=Math.min(latmin,lat);
    latmax=Math.max(latmax,lat);
    lngmin=Math.min(lngmin,lng);
    lngmax=Math.max(lngmax,lng);
    
    var latlng=new google.maps.LatLng(lat,lng);
    mrk=new google.maps.Marker({
              position:  latlng,
              map: map,
              visible:true, 
              title:arena.Name,
            });    
    google.maps.event.addListener(mrk, 'click', function(event) {
        curArena=arena;
        hiliteArena();
        hiliteTeamsFromArenaSelection();
    });
    return mrk;
}
// Viser fram et kart avgrenset av arenaene
function visKart()
{
    Markerlist=[];
    resetBounds();
    // plasser kartet i elementet med ID: map_canvas
    map = new google.maps.Map(document.getElementById("map_canvas"),{
        mapTypeId: google.maps.MapTypeId.HYBRID
    });
    for(ix=0;ix<arenaData.length;ix++){
        Markerlist.push(makeMarker(arenaData[ix],map));
    }
    mbounds=new google.maps.LatLngBounds(new google.maps.LatLng(latmin,lngmin),
                                         new google.maps.LatLng(latmax,lngmax));
    map.fitBounds(mbounds);       
}

Widgets

table
Tabell

Siden inneholder også den oppdaterte tabellen for den valgte ligaen. Denne komponenten leveres av SoccerWay [2] som har en masse data om fotball i hele verden. De tilbyr widgets som viser oppdaterte tabeller. En slik inkluderes på siden med en enkel iframe.

<iframe 
src="http://widgets.soccerway.com/widget/free...." 
width="350" height="500" scrolling="no" 
frameborder="0" marginwidth="0" marginheight="0">
</iframe>

En rekke spesifikasjoner er erstattet med ..... Soccerway har et verktøy der du kan spesifisere en rekke ting når du setter opp importformatet, vilken liga du vil ha, farger etc.

Firefox - GoogleMaps

Det er et problem med Mozilla Firefox og GoogleMaps som av og til fører til at Mozilla henger i en eller annen kommunikasjonsmodus med Google. Flere har rapportert dette problemet uten at jeg har funnet noen generell løsning. I det refererte eksempelet er dette foreløpig løst ved å anbefale en reload. Ikke ideelt, men det virker.

var browser=navigator.userAgent;
if(browser.indexOf("Firefox")!=-1)
{
	document.getElementById("FF-message").innerHTML=
		"If not showing team names, press: ctrl r";
}
Referanser
  1. Google Maps API Google code.google.com/apis/maps/index.html 14-03-2010
  1. Soccerway, fotballresultater fra hele verden soccerway.com www.soccerway.com/ 14-03-2010
  1. Tabifier Javascript BarelyFitz Designs www.barelyfitz.com/projects/tabber/ 14-03-2010
Vedlikehold

B. Stenseth, april 2013

( Velkommen ) Eksempler > uefa >Klubber i Europa ( Noen datasett )