150 likes | 280 Views
Implementasjon i praksis. Gjennomgåelse av eksempler. Det aller enkleste…. Enkel webside Hente ticket Legge ticket til URL Hente kart…. Det aller enkleste…. http://www.geonorge.no/demo/demo1/index.html. Det aller enkleste…. Ikke spesielt nyttig… …men grei til funksjonssjekk….
E N D
Implementasjon i praksis Gjennomgåelse av eksempler
Det aller enkleste… • Enkel webside • Hente ticket • Legge ticket til URL • Hente kart…
Det aller enkleste… http://www.geonorge.no/demo/demo1/index.html
Det aller enkleste… • Ikke spesielt nyttig… • …men grei til funksjonssjekk…
Geoportalen • I utgangspuktet er listen hardkodet. • På denne formen: var featuredLinks = new Array(); var featuredLink = new Array(); featuredLink[0] = "Statens kartverk - wms.fkb"; featuredLink[1] = "http://wms.geonorge.no/skwms1/wms.fkb?"; featuredLink[2] = 1; featuredLinks[1] = featuredLink ; var featuredLink = new Array(); featuredLink[0] = "Statens kartverk - wms.kartdata"; featuredLink[1] = "http://wms.geonorge.no/skwms1/wms.kartdata?"; featuredLink[2] = 1; featuredLinks[2] = featuredLink ;
Geoportal • Hva må løses? • Hente liste med tjenester • Legge til ticket på de tjenestene som skal ha • Formatere listen • Få listen ut i klienten
Geoportal • Løsning • advancedTicket • Hvorfor? • Kan hente liste fra Tjenestekatalogen • Er i stand til å hente ticket for de tjenester som krever det. • Kan enkelt styres med hensyn til output – i dette tilfellet i form av javascript • Javascript inkluderes i eksisterende filer.
Geoportal • I arcexplorer.jsp: <!--Link til katalog for liste med tilgjengelige tjenester. --> <SCRIPT type="text/javascript" language="JavaScript" src="http://159.162.103.46/advancedTicket/go?timer=ja"> </SCRIPT> http://www.geonorge.no/tjenestekatalog/search http://159.162.103.46/advancedTicket/go
”Nydesignet” klient • Samme utfordringer som portalen: • Hvilke tjenester • Hente ticket • Hente capabilities (trenger ticket) • Hente kart (trenger ticket)
”Nydesignet” klient • Hente tjenester • Tatt elementer fra simpleTicket • Leser fra en fil, og parser denne for å få en liste med tjenester som kan brukes. String services = Util.netRead(url); Vector v = (Util.parseListServices(services)).getServices();
”Nydesignet” klient • Gå gjennom listen med tjenester: • Tjenester som ikke krever ticket, kan utelates. • for (int i = 0; i < v.size();i++) • { • Service s = (Service) v.elementAt(i); • s.setUrl(Util.addTicket(s.getUrl(), usr, pass, s.getNavn(), extra)); • s.stripTicket(); • service = s; • }
”Nydesignet” klient • Hent capabilities (med hjelp av GeoTools) • Hente capabilities krever også ticket WebMapServer wms = new WebMapServer(new URL(service.getUrl())); … WMSCapabilities caps = wms.getCapabilities(); List capList = caps.getLayerList(); ListIterator li = capList.listIterator(); … …
”Nydesignet” klient • Hente kart (også ved med Geotools) • URL må inneholde ticket GetMapRequest gmr = wms.createGetMapRequest(); gmr.setSRS(srs); gmr.setBBox(y1 + ","+x1+","+y2+","+x2); gmr.setDimensions("400", "300"); gmr.setFormat("image/png"); … gmr.addLayer(lyrs[i],null); … URL u = gmr.getFinalURL();
”Nydesignet” klient • Alt settes sammen til en banal klient…
Oppsummering • Fortsatt noen utfordringer • Mange av disse er knyttet til brukerhåndtering • Politikk • ”Roaming ticket” • Hosting av data • Fjellet til Muhammed eller Muhammed til fjellet? • Flytte interceptor? Hele BAAT? • Innenfor/Utenfor norgeDigitalt