import easyIO.*;
import java.util.*;
/** trekker ut lengde og breddekrad fra fil over postnummer(fil:postnummer.txt)
, lager file:kommuneKoordinater.txt*/
class VisVaksinasjonsData {
public static void main(String [] args) {
Kontroll kf = new Kontroll();
System.out.println("VisVaksinasjonsData Ferdig");
}
}
class Kommune{
double lat, lon;
String navn, fNavn;
int vaksineProsent;
Kommune(double lat, double lon, String navn, String fNavn) {
this.lat =lat;
this.lon= lon;
this.navn=navn;
this.fNavn = fNavn;
}
} // end Kommune
class HTMLSide{
// default
String mapType="hybrid", sted1="Nesodden", fylke="Akershus";
int zoomFaktor =14;
String markers="";
String hodet;
String bildeStart ;
String bunn ;
void addMarker (double lon, double lat, int prosent) {
bildeStart ="20) color = "blue";
if (prosent>40) color = "yellow";
if (prosent>60) color = "green";
if (prosent>80) color = "brown";
prosent = prosent/10; //only first digit
markers += "&markers=color:"+color+"|label:"+prosent+"|"+Format.align(lat,10,6).trim()+","+Format.align(lon,10,6).trim();
} // end addMarker
void skrivSide(Out fil){
hodet="
SykeData Kart_亚博娱乐官网_亚博pt手机客户端登录
"+
"" +
" Vaksinasjon mot fugleinfluensa for:"+fylke+"
" +
"
";
bunn ="&sensor=false" +
"&key=ABQIAAAA0o6JxfaYY16TZnSqmiWkZhRBaHFDNbX0x77MpCV2soDiOBxUcRQL4PXKuJk2DDpruAsGCZy_STMmsg\"" +
">
"+
"";
fil.outln(hodet);
fil.outln(bildeStart);
fil.out(markers);
fil.outln(bunn);
fil.close();
}// end skrivSide
}//end class HTMLSide
class Fylke{
String fNavn;
HashMap kommuner = new HashMap (25);
double getLon(){
double lon =0;
for (Kommune k : kommuner.values())
lon += k.lon;
return lon/kommuner.size();
} // end getLon
double getLat(){
double lat =0;
for (Kommune k : kommuner.values())
lat += k.lat;
return lat/kommuner.size();
} // end getLat
int getProsent(){
int p =0;
for (Kommune k : kommuner.values())
p += k.vaksineProsent;
return p/kommuner.size();
} // end getLat
Fylke(String navn) {
fNavn=navn;
}
} // end class Fylke
class Kontroll{
HashMap kom = new HashMap (500);
HashMap fylkene = new HashMap();
HTMLSide htmlSide;
void addMarkerKommune(String kNavn){
Kommune k= kom.get(kNavn);
htmlSide.markers="";
htmlSide.zoomFaktor =10;
htmlSide.sted1 =k.navn;
htmlSide.fylke =k.navn;
htmlSide.addMarker(k.lon, k.lat, k.vaksineProsent);
}// end addMarkerKommune
void addMarkerFylke(String fNavn){
Fylke f = fylkene.get(fNavn);
htmlSide.markers="";
htmlSide.zoomFaktor =8;
htmlSide.fylke =f.fNavn;
htmlSide.sted1 =f.fNavn;
for(Kommune k : f.kommuner.values())
htmlSide.addMarker(k.lon, k.lat, k.vaksineProsent);
}// end addMarkerFylke
void addMarkerNorge(){
htmlSide.zoomFaktor =4;
htmlSide.markers="";
htmlSide.sted1 ="Namsos";
htmlSide.fylke ="Norway";
for(Fylke f : fylkene.values())
htmlSide.addMarker(f.getLon(), f.getLat(), f.getProsent());
}// end addMarkerNorge
int skrivMeny(Out skjerm, In tast){
skjerm.out("Gi 1-kommune, 2- Fylke eller 3- Norge, 0= avslutt:");
int valg = tast.inInt();
skjerm.outln("\n\n");
return valg;
}// end skrivMeny();
String pad(String s, int len) {
int k = len - s.length();
String t="";
while (k-- >0) t+=" ";
return s + t;
}// end pad
Kontroll() {
int knum, knumMax =0,antKnum;
double lat,lon;
String kNavn, fNavn,pNavn,s;
char skille ;
Kommune k;
Fylke f;
In kommuner = new In("KommuneKoordinater.txt"); // les kommune, fylke, koordinater
In vaksine = new In("VaksinasjonsData.txt"); // led vaksinasjonsprosenter
// kommuner. readLine(); // skip heading
while (! kommuner.lastItem()) {
// read next line
kNavn = kommuner.inWord(",").trim(); // stopp p? komma
fNavn = kommuner.inWord(",").trim(); //skip blanke og stopp p? komma
lat = kommuner.inDouble(" ,");//skip blanke og stopp p? komma
lon = kommuner.inDouble(" ,");//skip blanke og stopp p? komma
k = new Kommune(lat,lon,kNavn, fNavn);
if (! fylkene.containsKey(fNavn)){
f = new Fylke(fNavn);
fylkene.put(fNavn,f);
} else f = fylkene.get(fNavn);
kom.put(kNavn,k); // bare kommune
f.kommuner.put(kNavn,k); // legg kommunen i riktig fylke
} // end les kommunedata
while (! vaksine.lastItem()) {
kNavn = vaksine.inWord(",").trim(); // stopp p? komma
int pct = vaksine.inInt();
kom.get(kNavn).vaksineProsent = pct; // finn kommune og sett prosent
} // opppdatert vaskinasjonsprosenter
kommuner.close();
vaksine.close();
// les kommado (tegn Norge, Fylket eller Kommune)
In tast = new In(); // ?pne tastaturet
Out skjerm= new Out();
int i =0;
int valg = 1;
while (valg !=0) {
htmlSide= new HTMLSide();
valg = skrivMeny(skjerm, tast);
switch (valg) {
case 0: break;
case 1: skjerm.out("Gi bare en kommune:");
addMarkerKommune(tast.inWord().trim());
break;
case 2: skjerm.out("Gi et fylke:");
addMarkerFylke(tast.inWord().trim());
break;
case 3: skjerm.outln("Du valgte Norge");
addMarkerNorge();
break;
default: skjerm.outln("Feil: velg:0,1,2 eller 3");
}
if(valg!=0) htmlSide.skrivSide(new Out("TestOblig"+(i++)+".html"));
}
}// end Kontroll-konstruktor
}// end class Kontroll