N O R K A R T G E O S E R V I C E A S. Utviklerhåndbok

Størrelse: px
Begynne med side:

Download "N O R K A R T G E O S E R V I C E A S. Utviklerhåndbok"

Transkript

1 N O R K A R T G E O S E R V I C E A S Utviklerhåndbok

2 INNHOLD: 1 FORORD ANNEN RELEVANT DOKUMENTASJON OVERORDNET BESKRIVELSE AV QUADRI MAP SERVER PRINSIPPER FOR UTHENTING AV DATA PRINSIPPER FOR OPPDATERING LÅSING KVALITETSKONTROLL OG HÅNDTERING AV FEILSITUASJONER MINNEBRUK SLETTING AV OBJEKTER SPØRRINGER Spesielle spørringer (extents) Spørring etter objekter med gitte egenskapsverdier Transformasjon Vertikaldatum Navn på objektkatalog og versjonsinformasjon om arkivene SPESIELLE FORHOLD VED TILBAKELAGRING Lagring av SIRKEL Lagring av SIRKELP Lagring av TEKST og SYMBOL Lagring av FLATE Sletting av objekter Oppdateringsdato Metaobjekt låsenøkkel Metaobjekt arkivlogg Validering Håndtering av ID-er PORSJONERING VED UTTREKK OG OPPDATERING Side : 1

3 11.1 Porsjonering ved uttrekk Porsjonering ved oppdatering ARKIVLOGG TILGANGS-API (QSACCESS) Innledning Aktuelle headerfiler og biblioteker Funksjonsbeskrivelser Initialisering tilgang Release getversion clientlogin directlogin readportalsfromnameservers, getnumportals, getportal logoff tasksetquery taskquery removearchivefromtask setarchivereadonly globalgeodatasetquery getclockinformation globalgeodatasetupdate Validate writetask readtask ClientProgressInfo setrequestprogressstate setrequestresultavailable Kodeeksempler Initiering, pålogging og avlogging Hente oppgave fra portalen Hente ut geodataset via en oppgave Hente antall porsjoner fra et arkiv i et uttrekk Traversere et geodataset Hente ut geometri fra en feature Legge inn en polyline i et geodataset Hente egenskapstypene til en objekttype Finne en unlockkey (låsenøkkel) Spørring etter objekter med gitte egenskapsverdier Lagring av nytt objekt via QdiCreate Sletting av objekt via QdiErase Endring av objekt via QdiReplace Oppdatere data via en oppgave Lagring av opplysninger i arkivlogg Traversering av konfliktsett Sjekke om objekter er låst av andre Låse opp objekter via QdiUnlock KLIENT-INSTALLASJON AV NGIS-API ET REVISJONSLOGG... 46

4 Quadri Map Server Utviklerhåndbok 1 Forord Denne utviklerhåndboken er et av i alt tre dokumenter som utgjør dokumentasjon for Quadri Map Server systemet. Systemet er utviklet av Norkart Geoservice AS, i samarbeid med Statens Kartverk og Statens Vegvesen. Quadri Map Server leveres ikke med klientbrukergrensesnitt. Systemet tilbyr derimot et programmeringsgrensesnitt som klienter kan benytte for å få tilgang til data lagret i systemet og utføre tjenester på disse. Quadri NGIS API består i hovedsak av disse elementene: En geodatamodell (general feature model) som utvider geometrimodellen i Oracle. Denne benyttes for lagring av geometriske objekter og deres egenskaper i hukommelsen. En action-modell som er en dataoperasjonsmodell. Denne benyttes for å lagre og endre objekter fysisk. En query-modell som benyttes til å hente lagrede objekter til geodatamodellen. Et tilgangs-api over query- og action-modellene. Et distribuert kommunikasjonsrammeverk som innkapsler det hele. (I denne versjon brukes binær sockets kommunikasjon pga hastighet). Disse elementene blir beskrevet i egne kapitler og dokumenter. 2 Annen relevant dokumentasjon I tillegg til utviklerhåndboken er det utarbeidet en overordnet beskrivelse av systemet og datamodelldokumentasjon som dokumenterer de modellene som systemet bygger på (geodata-modell, actionmodell og query-modell). UML-diagrammene som illustrerer de ulike modellene er også tilgjengelig. Side : 3

5 3 Overordnet beskrivelse av Quadri Map Server Quadri Map Server er et grunnsystem for lagring og forvaltning av Stedfestede objekter. Med Quadri Map Server kan man knytte sammen geografiske datakilder og distribuere disse via et felles grensesnitt. Omvendt kan man fra flere applikasjoner lagre data til flere datalager via felles grensesnitt. Quadri Map Server er et klient-tjener system. Det finnes et sett med tjenere for å distribuere data og det finnes et tilhørende sett med administratorer for å administrere disse tjenerne. Tjenerne kan kjøres på en separat enbruker PC og/eller de kan kjøres på internett/intranett. Alle tjenerne kan knyttes sammen i et nett slik at klientene lett kan hente data fra flere kilder. Det betyr at systemet kan skaleres fra å være et enbrukersystem til å dekke et lands behov for å binde sammen geografiske data i en infrastruktur. QMS Klienter kan hente data og/eller utføre tjenester på data direkte på samme maskin, eller klienten kan kontakte en eller flere tjenere for å hente data og/eller utføre tjenester. For brukeren av Quadri Map Server er altså alle datasettene like lett tilgjengelig uansett hvor de ligger fysisk lagret. De forskjellige systemkomponentene kan også plasseres fritt geografisk. Den eneste forutsetningen er at det er IP-kommunikasjon mellom dem. For eksempel kan en bruker samtidig jobbe mot et arkiv plassert hos Kartverket og et annet arkiv plassert hos Statens Vegvesen. QMS er et meget fleksibelt system som kan tilfredsstille de fleste ønsker i forvaltningen av primærdata. Klient N G I S - A P I NGIS navnetjeneste QMS portal QMS objekt katalog QMS arkiv QMS arkiv QMS arkiv Figur. Arkitekturoversikt For en mer utfyllende beskrivelse av de enkelte komponentene i systemet vises det til dokumentet Quadri Map Server Overordnet beskrivelse.doc. Side : 4

6 4 Prinsipper for uthenting av data Portalen er klientenes inngangsport til Quadri Map Server. Her er lovlige brukere definert, og portalen inneholder et sett med oppgaver som brukerene gis tilgang til. En oppgave har en kobling til ett eller flere arkiver som data skal kunne hentes fra samt informasjon om data skal kunne hentes ut for lesing eller om data skal oppdateres og kunne tilbakelagres i arkivene. Hver oppgave kan i tillegg ha sitt eget oversiktskart som klienten kan hente hvis ønskelig. Når en bruker har valgt en oppgave kan han eventuelt innskrenke området denne dekker, objekttypene og arkivene som inngår. Klienten henter ut data via oppgaven som er valgt og får i retur et geodatasett pr. arkiv som er involvert i oppgaven. Det er så opp til klienten å prosessere dataene videre. I figuren under vises arbeidsflyten i prosessen beskrevet over: : Gen Bruker Klient Portal Arkiv Velg Portal Gi passord Hent oppgaver Vise oppgaveliste Velge oppgave Vise detaljer og oversiktskart Pålogging Status Hent oppgaver Retur oppgaveliste Hent detaljer om oppgave Returner detaljer Zoom Velg færre objekttyper Lage spørring Huske spørring i klient Sette igang søk Spør om data via oppgaven Returner et datasett pr. arkiv Vise data for brukeren Logge av systemet Logge av 5 Prinsipper for oppdatering Oppdatering av data via Quadri Map Server baserer seg på lange transaksjoner. Det vil si at objekter som skal oppdateres hentes ut fra arkivtjenerne via en valgt oppgave. Tilgang til oppdatering i et arkiv forutsetter at portalen er tildelt skriverettighet til arkivet og at oppgaven som benyttes ved uthenting også er satt opp med skrivetilgang mot samme arkiv. Når data hentes ut for oppdatering låses de objektene som hentes ut av klienten i arkivet. En annen bruker som prøver å hente ut de samme objektene vil ikke ha mulighet til å oppdatere disse før Side : 5

7 første bruker har sjekket objektene inn igjen eller objektene er låst opp på annen måte. Objekter som er låst kan imidlertid fritt hentes ut for lesing. Se for øvrig eget kapittel om låsing. Når klienten har hentet ut data via en oppgave vil oppdateringene utføres lokalt hos klienten. Når oppdateringene er avsluttet må klienten identifisere oppdaterte, slettede og nye objekter og sende disse tilbake til arkivene de opprinnelig ble hentet fra. Alle objekter i et arkiv får ved lagring tildelt en en unik ID som kalles PersistentId. For at Quadri Map Server skal kunne gjenkjenne objekter som er oppdatert og slettet og utføre tilsvarende endringer i arkivene er det helt nødvendig at objektene beholder disse unike ID ene på klientsiden. Dersom klienten mellomlagrer data på egent format må derfor lagring av disse Id ene også ivaretas. 6 Låsing Når en bruker henter ut kartdata via en oppgave og det er gitt skrivetilgang til ett eller flere arkiver i oppgaven vil alle objekter som hentes ut av brukeren bli låst i arkivene som har skrivetilgang. En annen bruker som prøver å hente ut de samme objektene vil ikke ha mulighet til å oppdatere disse før første bruker har sjekket objektene inn igjen eller objektene er låst opp på annen måte. Objekter som er låst kan imidlertid fritt hentes ut for lesing. Objekter som er låst vil kun bli låst opp i følgende tilfeller: Klienten kaller globalgeodatasetupdate. Dersom oppdateringen går bra vil samtlige objekter som ble låst da uttrekket fant sted bli låst opp igjen. Klienten sender inn en UnlockAction uten å gjøre oppdateringer. Administrator fjerner låsene ved hjelp av ArkivAdministratoren. Når klienten henter ut et geodatasett via globalgeodatasetquery vil alle objekter ha en peker til et objekt som ligger i geodatasettets metaobjects-liste. Dette objektet inneholder en IntegerAttributt med navn UnLockKey. Verdien på denne egenskapen gir viktig informasjon: Verdien er positiv o Objektet ble låst i dette uttrekket. Klienten må ta vare på verdien for bruk ved tilbakelagring. Verdien er negativ o Objektet er allerede låst av andre. I tillegg til selve låsenøkkelen ligger det en StringAttributt med navn Username i metaobjektet. Verdien inneholder navnet på brukeren som har låst objektet. Verdien er -1 o Objektet er et randsone objekt som ikke kan oppdateres i dette uttrekket. 7 Kvalitetskontroll og håndtering av feilsituasjoner Det kan oppstå ulike feilsituasjoner både ved uthenting og oppdatering av data. I Quadri Map Server er det gjennomført bruk av konfliktsett i alle moduler. Det vil si at enhver feilsituasjon som lar seg fange opp skal bli beskrevet i et slikt konfliktsett som returneres til klienten. Se forøvrig eget kapittel om håndtering av konfliktsett. Alle data som sendes fra klienten til Quadri Map Server via globalgeodatasetupdate vil automatisk bli kvalitetskontrollert av modulen QsValidation. Modulen sjekker at data ligger innenfor geografisk område for oppgaven samt at objektene er av lovlig type og har egenskaper og egenskapsverdier i henhold til definisjonen i objektkatalogen. Ved eventuelle feil vil oppdateringen avbrytes og klienten gis beskjed via konfliktsett. Side : 6

8 Feil som oppstår under lagring og oppdatering av objekter i arkivet vil ha ulik alvorlighetsgrad. Dersom feilen er alvorlig vil systemet umiddelbart avbryte oppdateringsprosessen. Det vil utføres en Rollback av samtlige transaksjoner som er utført i oppdateringsprosessen forut for feilsituasjonen. Rollback vil da utføres mot samtlige arkiver som inngår i oppdateringstransaksjonen/oppgaven. Dersom lagring og oppdatering derimot utføres uten alvorlige feil vil det utføres Commit av endringene i alle arkiver som er involvert. Dette sikrer at data i arkivene til enhver tid vil være konsistente. 8 Minnebruk sletting av objekter. Klienter som henter ut og oppdaterer data via Quadri Map Server vil i tillegg til tilgangsapi et også gjøre utstrakt bruk av bl.a. geodata-, query- og action-modellene. Det er viktig at klienten frigjør minne som allokeres ved bruk av disse modellene. Klienten har selv ansvar for all opprydding/sletting. Både objekter som mottas via tilgangs-api et og objekter som sendes inn som parametre til metoder i tilgangs-api et må slettes av klienten når de ikke lenger er i bruk. Det anbefales at UML-diagrammene for modellene studeres for å sikre at klienten sletter det som er nødvendig. 9 Spørringer Querymodellen benyttes av klienten for å definere og begrense hvilke objekter og evt tilleggsinformasjon som skal returneres når det hentes ut data fra et eller flere QMS-arkiver. 9.1 Spesielle spørringer (extents) En spørring kan inneholde en geografisk avgrensning som objektene skal ligge innenfor og eventuelt en beskrivelse av egenskaper og egenskapsverdier som objektene skal tilfredsstille. I tillegg er det definert et sett med extents som kan benyttes for å utføre helt spesielle spørringer. Mange av disse extentene kan benyttes i kombinasjon med geografisk avgrensning og angivelse av egenskapsverdier. Oversikt over tilgjengelige extents: Extent Beskrivelse Retur AllData_t Hente ut alle objekter i en oppgave. Dersom ikke oppgaven har geografisk avgrensning vil alle objektene i arkiv(ene) hentes ut. GetOracleAreaQuery Hente ut arkivets utstrekning. LockedFeatureInArea Arkivets utstrekning vil legges på som tilleggsinformasjon på geodatasettet som inneholder objektene som er hentet ut. Sjekke om det er låste objekter i et arkiv eller innenfor et område i arkivet Geodatasettet som returneres vil ha et metaobjekt som inneholder en GeometrySurface med et QdiRectangel som angir arkivets utstrekning. Metafeaturen har også en StringAttribute med navnet OracleArea og verdien In the rectangle". Dersom låste objekter returneres et geodataset med første låste objekt. Dersom ingen låste objekter er geodatasettet tomt. Log_t Hente arkivlog Se eget kapittel IsEmpty_t Sjekke om et arkiv er tomt Resultatet legges på et geodatasett som en metafeature. Metafeaturen har en BoolAttribute som heter IsArchiveEmpty og er positiv dersom arkivet er tomt og negativ hvis det ikke er tomt. TypesOnly_t Hente ut features med featuretyper men uten geometri og egenskaper. Side : 7

9 9.2 Spørring etter objekter med gitte egenskapsverdier Querymodellen er generell og kan benyttes for å definere spørringer etter gitte objekter for eksempel med bestemte egenskapsverdier eller kombinasjoner av verdier. En spørring kan begrenses til å gjelde en gitt objekttype eller settes opp til å spørre på tvers av alle objekttyper. Figuren under viser instansene som må opprettes i Query-modellen ved spørring etter Bygning med BYGGNR= Se også tilhørende kodeeksempel i kapittel for spørring etter objekter med gitte BYGGNR. QdiComparison eq QdiQueryAttributeType QdiQueryValue QdiFeatureType Bygning QdiIntegerAttribute QdiIntegerAttributeType BIYGGNR Side : 8

10 Figuren under viser hvordan man kan definere en spørring etter mange ulike BYGGNR. Dette er et alternativ til kodeeksempelet og vil være mer effektiv ved store spørringer. QdiComparison eq QdiQueryAttributeType QdiQueryValue QdiFeatureType Bygning QdiListAttribute QdiListAttributeType BYGGNR QdiIntegerAttribute 1234 QdiIntegerAttribute 5678 QdiIntegerAttributeType BYGGNR Side : 9

11 Figuren under viser instansene som må opprettes i Query-modellen ved spørring etter GateAdresse med gitt GATENR= og HUSNR=222 tilhørende StructAttribute AID. QdiComparison eq QdiQueryAttributeType QdiQueryValue QdiFeatureType GateAdresse QdiStructAttribute QdiStructAttributeType AID QdiIntegerAttribute QdiIntegerAttribute 222 QdiIntegerAttributeType GATENR QdiIntegerAttributeType HUSNR Side : 10

12 Figuren under viser hvordan man kan benytte Query-modellen for spørring etter alle objekter med OPPDATERINGSDATO nyere enn kl 10:00 QdiComparison gt QdiQueryAttributeType QdiQueryValue pfeaturetype = NULL QdiDateTimeAttribute :00 QdiDateTimeAttributeType OPPDATERINGSDATO 9.3 Transformasjon Det er mulig å transformere data ved uttrekk ved å spesifisere hvilket koordinatsystem man ønsker i spørringen. Dersom koordinatsystemet er et annet enn arkivets koordinatsystem vil da dataene transformeres på QMStjeneren. Det er landsfylkesformelen i Statens Kartverks standard transformasjonsbibliotek (SKTRANS) som benyttes. Se kodeeksempel i kapittel Data som er transformert ved uttrekk vil inneholde informasjon om transformasjonen som er benyttet. Denne informasjonen er lagret i en metafeature på geodatasettet som inneholder de transformerte dataene. Metafeturen har følgende egenskaper: Attributtnavn Type Verdi TransformationDll StringAttribute Navn på transformasjonsdll som er benyttet TransformationVersion RealAttribute Versjonsnummer på transformasjons-dll PointFileVersion StringAttribute Versjon av fellespunktfil CoordinateSystemFrom IntegerAttribute Nummer på koordinatsystem for arkivet CoordinateSystemTo IntegerAttribute Nummer på koordinatsystem det er transformert til QMS er også tilrettelagt for å håndtere transformasjon ved oppdatering av data. Det spesifiseres ved definisjon av oppgavene i Portalen om det skal være lov å transformere data ved oppdatering og i tilfelle til hvilke koordinatsystemer. Obs! Det anbefales IKKE å bruke transformasjon ved oppdatering. Oppdatering bør gjøres i basens koordinatsystem. Hvis det er nødvendig med transformasjon av data bør dette gjøres før lagring til QMS. Årsaken til dette er at det i spesielle tilfeller kan bli inkonsistens i geometri på grunn av at sekvensen Uthenting med transformasjon Lagring lokalt med avrunding Tilbakelagring med transformasjon vil kunne gi endring av koordinat uten at naboobjekter som ikke har blitt oppdatert har fått tilsvarende endring. Side : 11

13 9.4 Vertikaldatum Hvert QMS-arkiv inneholder informasjon om hvilket vertikaldatum som gjelder for data i arkivet. Når en klient henter data fra et arkiv, blir navn på vertikaldatum returnert i en metafeature på geodatasettet som inneholder dataene. Metafeaturen har følgende egenskaper: Attributtnavn Type Verdi verticaldatum StringAttribute Vertikaldatum som gjelder for arkivet data er hentet fra 9.5 Navn på objektkatalog og versjonsinformasjon om arkivene Hvert QMS-arkiv inneholder informasjon om hvilken standard og objektkatalog/produktspesifikasjon data i arkivet følger. Dette angis som navn på objektkatalog, evt navn på standard og versjonsnummer. Når en klient henter data fra et arkiv, ligger denne informasjonen knyttet til QdiComposedTypeRegistry som følger geodatasettet som returneres og kan hentes ut med følgende metoder på QdiTyperegistry: Metode Type Beskrivelse getname streng Navn på standard som følges, for eksempel SOSI getversion streng Navn på objektkatalog/produktspesifikasjon. Dersom data følger flere produktspesifikasjoner er navn på disse adskilt med semikolon, for eksempel: FKB-Bygning 4.01;FKB-BygnAnlegg 4.01 getmajor int Hovedversjonsnummer. For SOSI 4.0: 4 getminor int Underversjonsnummer. For SOSI 4.0: 0 10 Spesielle forhold ved tilbakelagring 10.1 Lagring av SIRKEL SIRKEL lagres som QdiPolyline med 64 tilnærmet like lange linjebiter (65 punkt med likt start og slutt punkt), og geometritypenavn SIRKEL. Radius fjernes ved lagring i basen. Ved uthenting beregnes senterpunkt og radius fra polylinjen Lagring av SIRKELP SIRKELP lagres som QdiPolyline med 64 tilnærmet like lange linjebiter (65 punkt med likt start og slutt punkt), og geometritypenavn SIRKELP. De opprinnelige punktene blir ikke bevart. Ved uthenting gjørespolylinjen om til SIRKELP ved at punkt 1, (nko/3)+1 og ((nko*2)/3)+1 blir tatt vare på Lagring av TEKST og SYMBOL Hvis objektet har en koordinat, eller alle koordinater er like lagres det i QMS som QdiSinglePoint. Hvis objektet har flere ulike koordinater lagres det som QdiCurveSegment med QdiPolyline Lagring av FLATE FLATE lagres normalt med to geometrier. En for selve flaten, og en for representasjonspunktet. Begge geometriene skal peke til samme geometritype med navn FLATE. Representasjonspunktet lagres som QdiSinglePoint og flaten lagres som QdiComplexSurface. Det er alltid QdiComplexSurface med QdiBoundary som brukes, de enkle flategeometriene (eks.qdigeometrysurface) skal ikke brukes. Hovedprinsipp ved tilbakelagring av flater: - Geometrien til linjer referert fra endrede flater skal være med i datasettet. - Alle flater som refererer endrede linjer skal være med i datasettet. Side : 12

14 10.5 Sletting av objekter Oppdatering gjøres ved at det sendes inn en QdiActionSequence. Når det skal slettes objekter legges det inn en QdiErsae action i sekvensen. QdiErase action har et QdiFeatureSet som viser hvilke objekt som skal slettes. Objektene som ligger i FeatureSettet er forenklede objekter. De brukes bare for å overføre ID og UnLockKey til tjeneren for sletting av feature. Den forenklede featuren legges også inn i geodatasettet for tilbakelagringen Oppdateringsdato Oppdateringsdato er en spesiell egenskap med spesiell håndtering. Den angir datasystemets siste endring på objektet. Alle objeker som er lagret i en tilbakelagring skal ha samme oppdateringsdato selv om tilbakelagringen skjer i flere porsjoner. Før versjon 8.2 var klienten ansvarlig for å legge på og oppdatere denne egenskapen hvis den var definert i objektkatalogen. F.o.m versjon 8.2 vil QMS automatisk sette egenskapen Oppdateringsdato ved lagring dersom egenskapen er definert i objektkatalogen for objekttypen. Tidspunktet settes da til starten av lagringen av første porsjon i hvert arkiv. NB - dersom klienten har lagt inn en verdi i Oppdateringsdato vil denne bli overskrevet. Tidspunktet som ble satt for Oppdateringsdato ved lagring vil returneres som informasjon til klienten via konfliktsettet som er koblet til QdiSingleTransaction som er opprettet av klienten. Informasjonen ligger i Description i et QdiConflict-objekt på formen OPPDATERINGSDATO YYYYMMDDHHMMSS Metaobjekt låsenøkkel Når data hentes ut for oppdatering vil alle objekter som er låst i forbindelse med uttrekket peke til et metaobjekt med låsenøkkel/unlockkey for uttrekket. Se beskrivelse i kap 6 Låsing. Når data skal tilbakelagres er det viktig at låsenøkkel fra uttrekket benyttes. Denne er nødvendig for oppdatering og opplåsing av låste objekter. Det opprettes et metaobjekt med UnLockKey med låsenøkkel fra uttrekket. Alle objekter som skal oppdateres må ha peker til dette metaobjektet Metaobjekt arkivlogg Det er mulig å sende med informasjon om tilbakelagringen som vil bli lagret i loggen til arkive(ne) som blir oppdatert. Denne informasjonen må lagres i et metaobjekt som legges på datasettet. Se egen beskrivelse i kap 12 Arkivlogg Validering globalgeodatasetupdate har to funksjoner, validere data og lagre data tilbake til basen. Ved tilbakelagring av store datamengder som fordeles over flere porsjoner er det ønskelig å kjøre validering av hele datasettet før selve tilbakelagringen starter. globalgeodatasetupdate har to flagg som gjør dette mulig. Når bvalidateonly er true blir datasettet bare validert og ikke sendt videre til tjeneren. Hvis det er gjennomført en vellykket validering kan en sette flagget bskipvalidation til true når en kjører den endelige tilbakelagringen. Dette fører til at valideringen ikke blir utført på nytt. OBS! bskipvalidation må aldri settes til true uten at det er kjørt en vellykket validering på forhånd. Hvis dette gjøres vil en kunne ødelegge integriteten i basen Håndtering av ID-er Ved uthenting må det tas vare på ID for bruk ved tilbakelagring. ID må handteres på følgende nivå: FeatureID SpatialID for QdiSpatialPropertyObject (Punkt / kurve / med mer) SpatialID for QdiComplexSurface Side : 13

15 SpatialID for QdiBoundary / QdiPath Eksempel på tilbakelagring: QdiFeature *feature = new QdiFeature(); // Legg på persistent ID feature->setpersistentid(hentlagretfeatureid()); // Legg inn egenskaper.. // Legg inn geometri QdiSpatialPropertyObject* pspatialobject = new QdiSinglePoint( ); pspatialobject->setpersistentid(hentlagretspatialid()); // Legg inn selve geometrien.. feature->addspatial(pspatialobject); // Legger feature inn i geodataset og replaceaction pgds->addcomposite(feature); replaceaction->addfeature(feature);; Eksemplet viser QdiSinglePoint: Tilsvarende må ID tas vare på og legges inn i objektene ved tilbakelagring på følgende objekttyper: QdiFeature, QdiSpatialPropertyObject (Punkt / kurve / med mer), QdiComplexSurface, QdiBoundary, QdiPath. Side : 14

16 11 Porsjonering ved uttrekk og oppdatering Ved uttrekk og oppdatering i QMS overføres data mellom klient og tjener via geodatamodellen. For å håndtere overføring av store datamengder uten bruk av for mye minne, er det lagt til rette for oppdeling av datasettene i porsjoner både ved uttrekk og oppdatering Porsjonering ved uttrekk Ved uttrekk styres størrelsen på porsjonene av en parameter for antall objekter per porsjon. Denne er definert på hvert arkiv og kan settes via Arkivadministratoren. Et arkiv som kun inneholder punktobjekter, for eksempel Adressepunkter, vil typisk kunne ha en langt større porsjonsstørrelse enn et arkiv med Høydekurver der hvert objekt opptar langt mer plass i minnet. Uthenting av antall porsjoner Dersom et datasett er delt opp i flere porsjoner vil det i første porsjon som kommer fra et arkiv ligge informasjon om hvor mange porsjoner datasettet er delt opp i. Antall porsjoner hentes ut fra en metafeature på geodatasettet. Metafeaturen har en QdiIntegerAttribute med navnet "portioncount" der totalt antall porsjoner er angitt. Se eget kodeeksempel. De påfølgende porsjonene har ingen informasjon om antall porsjoner, og det er opp til klienten å holde styr på hvor mange posjoner som er mottatt. Merk at dersom hele datasettet sendes i en porsjon vil det ikke ligge noen slik metafeature på datasettet. Porsjonering av datasett med flater. Dersom et datasett inneholder flater og datasettet er delt opp i flere porsjoner, vil alle linjeobjektene komme først i egne porsjoner. Deretter kommer flateobjektene i den/de siste porsjonene. Linjeobjektene vil inneholde full geometri. Flateobjektene vil peke til eksisterende linjeobjekter (QdiCurveSegment) men disse vil ikke ha peker til QdiShape (QdiPolyline/QdiArc) da geometrien er mottatt i tidligere porsjoner. Dette er gjort for å begrense datamengden og unngå å sende samme geometri flere ganger. Eksempel: Kurve i 1. porsjon med geometri. Flate i siste porsjon som refererer til kurve i første porsjon: Side : 15

17 11.2 Porsjonering ved oppdatering Ved oppdatering/innsjekk av større datamengder bør klienten dele opp datasettet i porsjoner. Størrelsen på porsjonene styres av klienten selv, men bør være satt slik at QMS-tjeneren ikke overbelastes ved mottak av data. En porsjonsstørrelse på ca objekter per porsjon vil i de fleste tilfeller være passende for data med relativt små objekt. For data med store objekt som for eksempel høydekurver bør porsjonsstørrelsen reduseres til 5000 eller Når oppdateringen deles i flere posrjoner er det noen forhold det må tas hensyn til. - Hver porsjon skal inneholde komplett informasjon for de objektene som overføres i denne porsjonen. - På grunn av dette vil det kunne være nødvendig å sende geometrier flere ganger. Dette vil kunne skje når det er delt geometri mellom linjer og flater, eller mellom flere flater. - Hvis samme geometri sendes i flere porsjoner skal den ha samme ID i alle porsjoner. o For objekter som er hentet ut for oppdatering er dette ID objektet hadde ved uthenting. o For nye objekter tildeler QMS midlertidig ID når objektet opprettes. Denne må det tas vare på, slik at den kan brukes i senere porsjoner i samme tilbakelagring. - En flate kan ikke sendes i en porsjon før geometrien som avgrenser flaten. Normalt sendes punkt- og linjeobjekter i de første porsjonene. I senere porsjoner sendes flater. 12 Arkivlogg Hver gang data sjekkes inn i et arkiv lagres følgende informasjon i arkivets logg: brukernavn, dato og klokkeslett, oppgavenavn, evt områdenavn, evt kommentar, omsluttende rektangel av geografisk område som er berørt og antall objekter som er opprettet, endret og slettet. Lagring av opplysninger i arkivlogg For at korrekt brukernavn skal lagres i arkivloggen må dette sendes inn fra klienten ved innsjekk. I tillegg kan klient/bruker legge inn et valgfritt områdenavn og en kommentar som vil lagres i arkivloggen. Informasjonen som skal lagres i loggen legges på en metafeature på geodatasettet som skal lagres. Se eget kodeeksempel. Uthenting av arkivlogg til klient En klient kan ved behov hente ut arkivloggen for et arkiv. Dette gjøres ved å opprette et Query med et eget extent (Log_t). Dersom man ønsker å hente ut loggen kun innenfor et bestemt geografisk område kan området defineres i et SpatialPropertyObject som kobles på Query et. Det returneres et tomt geodatasett med en metafeature for hver linje i loggen. Metafeaturene er sortert etter dato/klokkeslett. Hver metafeature har en StructAttribute som kan ha følgende innhold (avhengig av hva som er skrevet i loggen): Attributtnavn Type Verdi username StringAttribute Navn på bruker taskname StringAttribute Navn på oppgave logdate DateAttribute Dato for innsjekk logtime TimeAttribute Tidspunkt for innsjekk comment StringAttribute Kommenar gitt av bruker areaname StringAttribute Områdenavn gitt av bruker LLX RealAttribute Nord-koordinat for sørvestlig hjørne av omsluttende rektangel LLY RealAttribute Øst-koordinat for sørvestlig hjørne av omsluttende rektangel URX RealAttribute Nord-koordinat for nordøstlig hjørne av omsluttende rektangel URY RealAttribute Øst-koordinat for nordøstlig hjørne av omsluttende rektangel Created IntegerAttribute Antall nye objekter Replaced IntegerAttribute Antall endrede objekter Erased IntegerAttribute Antall slettede objekter Side : 16

18 13 Tilgangs-API (QsAccess) 13.1 Innledning Tilgangs-API et QsAccess benyttes av klienter for å få tilgang til Quadri Map Server. API et har funksjoner for å logge på en portal, hente ut oppgaver, hente ut data samt oppdatere og legge inn nye data via oppgavene. API et støtter programmeringsspråket C++ og kompilatorene Microsoft Visual C++ ver. 8.0 (VS2005) og ver 10.0 (VS2010) Aktuelle headerfiler og biblioteker For å utvikle klienter mot Quadri Map Server må headerfilen QsAccess.h inkluderes. Denne blir installert når utviklerversjonen av Quadri Map Server installeres. QsAccess.lib må inkluderes i prosjektet, denne har igjen referanser til QsAccess.DLL. QsAccess.lib og QsAccess.dll finnes både i release- og debug-versjon. Debug-versjonen har suffix D i filnavnet Funksjonsbeskrivelser I dette kapittelet beskrives funksjonene i tilgangs-api et Initialisering tilgang I QsAccess.h er det definert en abstrakt klasse med navn CQsAccess. Alle kall til API et gjøres via denne klassen. Klientprogrammet må derfor opprette en peker til en denne klassen. CQsAccess *paccess = NULL; For å sette denne pekeren til et objekt som har implementert den abstrakte klassen, må metoden getqsaccessinstance benyttes. Deklarasjon : extern "C" declspec(dllexport) CQsAccess * getqsaccessinstance(unsigned long itfid=2); Returverdi : Funksjonen returnerer adressen til et objekt som arver fra CQsAccess og har implementert alle metodene i klassen CQsAccess. Ved feil returneres verdien NULL. Dette objektet slettes fra maskinens hukommelse ved å kalle objektets Release-metode. Parametre : ItfID : Verdien i denne parameteren angir versjonsnummeret til klassen CQsAccess parameteren må i denne versjonen alltid ha verdi lik to (2). Settes automatisk til 2 dersom parameteren ikke angis. Kommentarer : Funksjonen returnerer en unik instans av klassen CQsAccess. Den kan kalles flere ganger hvis man ønsker flere instanser av klassen CQsAccess. Hver av disse instansene kan logge på hver sin separate tjener. På denne måten kan du lage en applikasjon som er logget på flere tjenere samtidig. Side : 17

19 Release Formål : Avslutte forbindelsen til API et. Deklarasjon : void CQsAccess::Release () Parametre : Ingen Kommentar: QsAccess-objektet skal ikke slettes via delete. Benytt objektets Release-metode i stedet getversion Formål : Hente ut internt versjonsnummer for tilgangsapi et. For at kommunikasjon med tjenerne skal fungere må dette nummeret stemme overens med tjenrernes interne versjonsnummer. Versjonsnummeret økes når det gjøres endringer som forutsetter nye versjoner både på klient- og tjernersiden. Deklarasjon : void CQsAccess::getVersion( int &clientversjon, std::string &strproductversion); Returverdi: Ingen Parametre : int &clientversjon API ets versjonsnummer som heltall. std::string &strproductversion API ets versjonsnummer som streng clientlogin Formål : Benyttes for å logge på en Quadri NGIS Portal. En bruker må være logget på en portal for å kunne hente ut oppgavene som er definert i portalen. Det vises en login-dialog hvor brukeren kan velge mellom portalene som er definert i tjenerlistene klienten har tilgang til. Disse listene på XML-format eksporteres fra TjenerAdministratoren. Brukeren må logge seg på portalen med gyldig brukernavn og passord. Det kan også via parametre gis mulighet for i dialogen å manipulere med tjenerlistene før pålogging. Side : 18

20 Deklarasjon : virtual QdiErrorResult* CQsAccess::clientLogin( const HWND hwndparent, const std::string strlanguage, unsigned int noptions, std::string &strserverid, std::string &strusername, std::string &strcommonserverfile std::string &strpersonalserverfile, std::string strresourcepath, std::string strresourcelanguage, std::string& strserverlogicalname, std::string& strpassword ); Returverdi: Metoden returnerer NULL dersom pålogging var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : const HWND hwndparent Peker til vinduet dialogen tilhører. Angis NULL settes pekeren til Windows-skrivebordet. const std::string strlanguage Språket meldinger fra portalen skal skrives i (for eksempel "eng", "nor"). Dersom angitt språk ikke støttes, skrives meldinger på engelsk. unsigned int noptions Variabel som benyttes for å angi hvilke muligheter brukeren skal gis til å manipulere med tjernerlistene. En eller en kombinasjon av kodene definert i enum EqsaOptions kan benyttes. Eksempel på kombinasjon: unsigned int noption = eqscommonserverlist eqsbuttonlocation; eqsnone_ : Ikke vis knappen Alternativer i dialogen. eqscommonserverlist_ : Vis innhold i felles tjenerliste eqspersonalserverlist_ : Vis innhold i privat tjenerliste eqsbuttonlocation_ : Brukeren kan velge en annen tjenerliste eqsbuttonmodify_ : Brukeren kan endre innholdet i en tjenerliste eqsbuttonall_ : Kombinerer eqsbuttonlocation_ og eqsbuttonmodify_ eqsmenuaddfromfile_ : Brukeren kan legge til tjenere fra valgt fil eqsmenuaddfromdialog_: Brukeren kan legge til tjenerinformasjon via en dialog eqsmenusaveas_ : Brukeren kan lagre tjenerlisten til et annet filnavn eqsmenuall_ : Kombinerer eqsmenuaddfromfile, eqsmenuaddfromdialog og eqsmenusaveas eqsall_ : Aktiviserer alle valgene std::string &strserverid, Inn: UUID til portal som skal vises som default (kan være tom). Ut: UUID til valgt portal etter vellykket login. std::string &strusername Inn: Navn på bruker. Ut: Navn på pålogget bruker. std::string &strcommonserverfile Inn: Navn på XML fil som inneholder felles tilgjengelige tjenere (for eksempel "d:\quadri\commonservers.xml"). Ut: Tilsvarende filnavn (kan være endret via Alternativer i dialogen.). std::string &strpersonalserverfile Inn: Navn på XML fil som inneholder private tjenere (for eksempel "d:\quadri\personalservers.xml"). Side : 19

21 Ut: Tilsvarende filnavn (kan være endret via Alternativer i dialogen.). std::string strresourcepath Inn: Sti til ressurs-dll en QsClientRC_*.DLL eller tom streng dersom Windows path skal gjennomsøkes for å finne DLL en. std::string strresourcelanguage Inn: Språket påloggingsdialogen skal vises i, nor eller eng. std::string &strserverlogicalname Logisk navn på portalen som er pålogget. std::string &strpassword Inn: Forslag til passord. Ut: Passordet som ble tastet inn ved pålogging. Kommentar: Det er kun nødvendig å logge seg på en portal for å hente ut oppgavene via tasksetquery. Det er ikke nødvendig å være pålogget for å benytte de øvrige metodene i API et directlogin Formål : Benyttes som et alternativ til clientlogin for å logge på en QMS Portal direkte uten å vise påloggingsdialogen. Kan for eksempel kalles dersom klienten ønsker å benytte en egen påloggingsdialog. En bruker må være logget på en portal for å kunne hente ut oppgavene som er definert i portalen. Brukeren må logge seg på portalen med gyldig brukernavn og passord. Deklarasjon : virtual QdiErrorResult *directlogin ( virtual QdiErrorResult *directlogin( virtual QdiErrorResult *directlogin( std::string strlanguage, std::string &strserverlist, std::string &strserverid, std::string &strusername, std::string &strpassword, std::string &strserverlogicalname ) const char *planguage, const char *pserverlist, const char *pserverid, const char *pusername, const char *ppassword, char *pserverlogicalname, int nmaxlength ) QdcNameObject *pnameobject, std::string strlanguage, std::string &strusername, std::string &strpassword) Returverdi: Metoden returnerer NULL dersom pålogging var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : Side : 20

22 strlanguage planguage Språket meldinger fra portalen skal skrives i ("eng" eller "nor"). Dersom angitt språk ikke støttes, skrives meldinger på engelsk. strserverlist pserverlist Navn på tjenerliste som inneholder valgt portal (for eksempel "c:\quadri\qsserverlist.xml"). Tjenerlistene eksporteres fra TjenerAdministratoren. strserverid pserverid UUID til portalen det skal logges på. strusername pusername Navn på bruker. strpassword ppassword Brukerens passord for pålogging. strserverlogicalname pserverlogicalname Returnerer logisk navn på portalen som er pålogget. nmaxlength Max antall karakterer som kan returneres i pserverlogicalname inkludert null-terminering. pnameobject Peker til objekt med informasjon om portalen det skal logges på. Objektet hentes ut via kall til readportalsfromnameservers og getportal. Kommentar: Det er kun nødvendig å logge seg på en portal for å hente ut oppgavene via tasksetquery og profilequery. Det er ikke nødvendig å være pålogget for å benytte de øvrige metodene i API et readportalsfromnameservers, getnumportals, getportal Formål : readportalsfromnameservers benyttes i forkant av pålogging på portal for å opprette intern liste over portaler som er registrert i en eller flere navnetjenester. Kalles flere ganger etter hverandre dersom portaler skal hentes fra flere navnetjenester. Antall portaler i lista hentes ut med kallet getnumportals. Portalene hentes ut via getportal. directlogin benyttes deretter til selve påloggingen readportalsfromnameservers Deklarasjon : virtual QdiErrorResult *readportalsfromnameservers ( std::string strserverlist, bool bclearlist) Returverdi: Metoden returnerer NULL hvis vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : Side : 21

23 std::string strserverlist Navn på tjenerliste som inneholder navnetjeneste (for eksempel "c:\quadri\qsserverlist.xml"). Tjenerlistene eksporteres fra TjenerAdministratoren. bool bclearlist Dersom portaler skal hentes fra flere tjenerlister (dvs flere kall til readportalsfromnameservers) benyttes bclearlist til å styre om portalene skal legges til tidligere liste eller om denne lista skal tømmes. Settes normalt til true ved første gangs kall og deretter til false getnumportals Deklarasjon : virtual QdiErrorResult * getnumportals ( int &nnumportals ) Returverdi: Metoden returnerer NULL hvis vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : int &nnumportals Returnerer antall portaler i liste opprettet med et eller flere kall til readportalsfromnameservers getportal Deklarasjon : virtual QdiErrorResult * getportal ( int nindex, QdcNameObject* &pnameobject) Returverdi: Metoden returnerer NULL hvis vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : int & nindex Null-basert indeks til portal som skal returnerers fra lista opprettet med readportalsfromnameservers. QdcNameObject* &pnameobject Retur-objekt med informasjon om portal. For pålogging sendes objektet inn som parameter til directlogin logoff Formål : Avslutte forbindelsen til en portal. Kalles etter clientlogin eller directlogin og etter at oppgavene er hentet ut med tastsetquery. Deklarasjon : QdiErrorResult * CQsAccess::logoff() Side : 22

24 Returverdi: Metoden returnerer NULL dersom avlogging var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : Ingen Kommentar: Det er kun nødvendig å logge seg på en portal for å hente ut oppgavene via tasksetquery. Det er ikke nødvendig å være pålogget for å benytte de øvrige metodene i API et tasksetquery Formål : Hente ut oppgavene som er definert i portalen brukeren er logget på. Kun oppgaver brukeren har rettigheter til blir returnert. Deklarasjon : QdiErrorResult * CQsAccess::taskSetQuery( QdpTaskSet *& taskset, QdiConflictSet *& pcs) Returverdi: Metoden returnerer NULL dersom uthenting av oppgavene var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : QdpTaskSet *& taskset Inneholder de oppgavene i portalen som pålogget bruker har tilgang til. QdiConflictSet *& pcs Konfliktsett som inneholder eventuelle meldinger fra tjener. NULL hvis ingen meldinger er returnert. Kommentarer: Man må være pålogget en portal for kunne kalle denne metoden. Metoden returnerer all informasjon om oppgavene unntatt informasjon om eventuelle oversiktskart som er koblet til oppgavene. For å hente ut komplett informasjon om valgt oppgave inkludert oversiktskart kalles taskquery. Når kall til tasksetquery er utført kan brukeren logges av portalen taskquery Formål : Hente komplett informasjon (inkludert overiktskart) om oppgave som er hentet ut via tasksetquery Deklarasjon : QdiErrorResult * CQsAccess::taskQuery ( const QdpSingleTask* singletask, QdpSingleTask*& osingletask, QdiConflictSet*& pcs ) Returverdi: Metoden returnerer NULL dersom uthenting av oppgaveinformasjon var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : Side : 23

25 const QdpSingleTask* singletask Oppgaven som det skal hentes komplett informasjon om. QdpSingleTask*& osingletask Returnerer den komplette informasjonen. QdiConflictSet *& pcs Konfliktsett som inneholder eventuelle meldinger fra tjener. NULL hvis ingen meldinger er returnert. Kommentarer: Denne funksjonen kan kalles etter tasksetquery dersom man ønsker full informasjon om, inkludert oversiktskart. Dersom klienten ikke benytter oversiktskart fra oppgaven/profilen, trenger denne funksjonen ikke benyttes removearchivefromtask Formål : Temporært fjerne arkiver som inngår i en gitt oppgave oppgave før uthenting av data. QdiErrorResult * removearchivefromtask ( std::string strarchivename, QdpSingleTask *psingletask) Returverdi: Metoden returnerer NULL dersom fjerning av arkiv fra oppgaven var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : std::string strarchivename Fullt navn på arkivet som skal fjernes fra oppgaven. QdpSingleTask *psingletask Inneholder oppgaven arkivet skal fjernes fra. Kommentarer: Arkivnavnet som sendes inn som parameter kan hentes ut via oppgavens TaskAreaOfInterest og dennes AccessModeConnection setarchivereadonly Formål : Temporært innskrenke rettighetene til et arkiv i en gitt oppgave fra skriv til les. Benyttes når en oppdateringsoppgave skal brukes til å hente ut alle eller enkelte av arkivene uten låsing. Deklarasjon : QdiErrorResult * setarchivereadonly ( std::string strarchivename, QdpSingleTask *psingletask) Returverdi: Metoden returnerer NULL dersom fjerning av arkiv fra oppgaven var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Side : 24

26 Parametre : std::string strarchivename Fullt navn på arkivet som skal hentes ut med leserettigheter. QdpSingleTask *psingletask Inneholder oppgaven rettigheten skal endres i. Kommentarer: Arkivnavnet som sendes inn som parameter kan hentes ut via oppgavens TaskAreaOfInterest og dennes AccessModeConnection globalgeodatasetquery Formål : Hente ut geografiske data via en valgt oppgave. Det geografiske området data skal hentes ut innenfor samt spesifisering av hvilke objekter som skal hentes ut kan angis. Metoden returnerer et geodatasett pr arkiv som inngår i oppgaven/profilen. Deklarasjon : QdiErrorResult * CQsAccess::globalGeodataSetQuery( const QdiRequest * prequest, QdpSingleTask* psingletask, QdiComplexTransaction*& pcomplextransaction, ClientProgressInfo* pportion) Returverdi: Metoden returnerer NULL dersom uthenting av data var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : const QdiRequest * prequest Forespørselen som beskriver hva som skal hentes ut via oppgaven angitt i psingletask. Det er ikke mulig å hente ut data utover det oppgaven definerer. Innholdet i oppgaven kan imidlertid innsnevres. Hovednivå for uthenting velges ved spesialisering av QdiRequest: QdiTypeRegistryRequest benyttes for å hente ut objektkatalogen til arkivene i oppgaven QdiGeodataRequest benyttes for å hente ut geodata og objektkatalogen til arkivene i oppgaven Et QdiQuery kan knyttes til request-objektet for ytterligere å spesifisere hva som skal hentes ut. Her kan man for eksempel angi koordinatsystem, geografisk område, objekttyper etc. QdpSingleTask* psingletask Oppgaven som skal benyttes til uthenting av data. Oppgaven hentes ut via kall til tasksetquery. QdiComplexTransaction*& pcomplextransaction Resultatet av forespørselen spesifisert i prequest og psingletask. Dersom det sendes inn peker til en klasse i parameter pportion vil resultatet returneres i denne klassens metoder og ikke via parameter pcomplextransaction. Dersom parameter pportion settes til NULL vil resultatet derimot returneres som en QdiComplexTransaction. En oppgave kan være knyttet til flere arkiver. For hvert arkiv finnes det i QdiComplexTransaction et QdiSingleTransaction objekt. Hvert QdiSingleTransaction objekt holder på knytningen til ett arkiv. Når metoden globalgeodatasetquery utføres vil resultatet, QdiGeodataSet og QdiConflictSet, fra tjeneren ligge i dette objektet. Klienten må traversere QdiComplexTransaction og aksessere QdiSingleTransaction objektene for å hente ut disse dataene. Side : 25

27 ClientProgressInfo *pportion Peker til et objekt som arver fra klassen ClientProgressInfo. Status under uthenting av data mottas i 2 virtuelle metoder definert i denne klassen. I denne klassen mottas også resultatet av forespørselen. For hvert arkiv i oppgaven vil man motta et QdiSingleTransaction objekt. Når metoden globalgeodatasetquery utføres vil resultatet, QdiGeodataSet og QdiConflictSet, fra tjeneren ligge i dette objektet. Dersom man ikke ønsker statusinfo eller man ønsker å motta resultatet i parameter pcomplextransaction settes pportion til NULL. Kommentarer: Eventuelle feil og meldinger fra tjenerne under uthenting av data lagres i et QdiConflictSet per SingleTransaction. Klienten må etter at metoden har returnert vise innholdet i disse konfliktsettene for å kontrollere status på uthentingen getclockinformation Formål : Kan benyttes etter et kall til globalgeodatasetquery for å hente ut informasjon om tidsbruken i de ulike delene av uthentingsprosessen. Deklarasjon : QdiConflictSet * CQsAccess::getClockInformation() Returverdi: Metoden returnerer et QdiConflictSet som inneholder tidsforbruk på ulike deler av prosessene som er involvert ifm uthenting av data. Kan traverseres og analyseres ved behov for å finne flaskehalser etc. Parametre : Ingen globalgeodatasetupdate Formål : Validere, oppdatere, slette og legge inn nye data i arkiver som inngår i valgt oppgave. Det forutsettes at objektene tidligere er hentet ut med globalgeodatasetquery via en oppgave som ga skrivetilgang til arkivet. Objektene vil da være låst og kan derfor ikke oppdateres av andre. Kan også benyttes til å låse opp objekter som er låst i et arkiv uten å oppdatere. Deklarasjon : QdiErrorResult * CQsAccess::globalGeodataSetUpdate( QdpSingleTask *psingletask, QdiComplexTransaction *pcomplextransaction, ClientProgressInfo *pprogress, std::string strportalid, std::string strusername, bool bcommitdata, bool bvalidateonly, bool bskipvalidation) Returverdi: Metoden returnerer NULL dersom oppdateringen var vellykket. Ved feil returneres en beskrivende feilmelding i QdiErrorResult. Meldingen hentes ut via metoden geterrormsg() i QdiErrorResult. Parametre : QdpSingleTask *psingletask Oppgaven som skal benyttes ved oppdatering av data. Data må opprinnelig være hentet ut med globalgeodatasetquery via denne oppgaven. Side : 26

28 QdiComplexTransaction* pcomplextransaction Inneholder dataene som skal oppdateres. QdiComplexTransaction er en samling som inneholder en QdiSingleTransaction per arkiv som skal oppdateres. Hver QdiSingleTransaction vil igjen inneholde en QdiActionSequence med en QdiCreateAction, QdiEraseAction og/eller en QdiReplaceAction som inneholder objekter som skal henholdsvis opprettes, slettes eller endres. Dersom objekter kun skal låses opp uten å oppdateres vil QdiSingleTransaction inneholde en QdiUnlockAction der UnlockKey en som skal fjernes er definert. ClientProgressInfo *pprogress Peker til et objekt som arver fra klassen ClientProgressInfo. Status under oppdatering mottas i 2 virtuelle metoder definert i denne klassen. Dersom man ikke ønsker statusinfo settes pprogress til NULL. std::string strportalid UUID til portalen oppgaven eller profilen er definert i. Dersom man i forkant av kallet til globalgeodatasetupdate har logget på portalen kan tom streng angis. std::string strusername Denne strengen benyttes for å lagre brukernavn i arkivenes logg. Dersom man i forkant av kallet til globalgeodatasetupdate har logget på portalen kan tom streng angis. bool bcommitdata Denne parameteren forteller om data som sjekkes inn skal tas commit på i Oracle. Denne må være satt til false under porsjonering ved innlegging for å unngå ufullstendig innlegging av data dersom feil oppstår. Den må settes til true på siste porsjonen for å få lagret data i basen. bool bvalidataonly Dersom denne parameteren er true vil ikke data bli forsøkt sjekket inn, det vil kun bli foretatt en validering av geodatasettet. Dette bør gjøres under porsjonsvis innsjekk ved at en i forkant sjekker alle porsjonene før den virkelige innsjekkingen begynner. bool bskipvalidation Dersom denne parameteren er true vil ikke data bli validert før innsjekk. Når skal denne brukes?? Kommentarer: Eventuelle feil og meldinger fra tjenerne under oppdatering lagres i et QdiConflictSet for hver SingleTransaction. Klienten må etter at metoden har returnert vise innholdet i disse konfliktsettene for å kontrollere status på oppdateringen. Dersom alvorlige feil oppstår vil det tas automatisk Rollback på alle arkiver som inngår i oppgaven. Metoden vil da returnere et QdiErrorResult i tillegg til beskrivende meldinger om hva som gikk galt i konfliktsettene Validate Formål : Utføre valgte kontroller på et geodataset. Kan være geometriske kontroller og kontroller mot objektkatalog/typeregister. Deklarasjon : QdiConflictSet * CQsAccess::Validate( QdiBase* pgeodataset, QdiTypeRegistry* ptyperegistry, QdiSelectionSet* pexcludefromvalidation, int ivalidationtypes double dresolution ) Returverdi: QdiConflictSet som inneholder meldinger og feil ifm valideringen. Side : 27

N O R K A R T A S. Utviklerhåndbok

N O R K A R T A S. Utviklerhåndbok N O R K A R T A S Utviklerhåndbok INNHOLD: 1 FORORD... 4 2 ANNEN RELEVANT DOKUMENTASJON... 4 3 OVERORDNET BESKRIVELSE AV QUADRI MAP SERVER... 5 4 PRINSIPPER FOR UTHENTING AV DATA... 6 5 PRINSIPPER FOR

Detaljer

Overordnet beskrivelse

Overordnet beskrivelse N O R K A R T G E O S E R V I C E A S Desember 2010 INNHOLD 1 INTRODUKSJON... 4 2 NAVNETJENESTE... 5 3 PORTAL... 6 4 OBJEKTKATALOG... 6 5 ARKIV... 7 6 ADMINISTRASJONSPROGRAMMER... 8 7 TILGANGSAPI... 8

Detaljer

NGIS-API. Teknisk gjennomgang av NGIS API 9/

NGIS-API. Teknisk gjennomgang av NGIS API 9/ NGIS-API Teknisk gjennomgang av NGIS API 9/12 2014 Disposisjon Fremtidig modell for forvaltning av FKB Arkitekturoversikt NGIS-API NGIS API Geosynkronisering Geosynkronisering FKB forvaltningsmodell 2015/2016

Detaljer

NGIS-API og ny forvaltningsløsning for FKB-data. Teknologiforum for Norge digitalt Gardermoen 2014

NGIS-API og ny forvaltningsløsning for FKB-data. Teknologiforum for Norge digitalt Gardermoen 2014 NGIS-API og ny forvaltningsløsning for FKB-data Teknologiforum for Norge digitalt Gardermoen 2014 Disposisjon Bakgrunn - dagens situasjon Kopiregime, Geosynkronisering Fremtidig modell for forvaltning

Detaljer

AJOURHOLD AV AR5 I QMS

AJOURHOLD AV AR5 I QMS Veileder fra Skog og landskap AJOURHOLD AV AR5 I QMS For FYSAK versjon 2014-10-01 Elling Ringdal og Kristin Holm Norsk institutt for skog og landskap, Pb 115, NO-1431 Ås, Norway INNHOLD 1. FORBEREDELSER...

Detaljer

Referat fra Workshop NGIS-API

Referat fra Workshop NGIS-API GeoSynkronisering Referat fra Workshop NGIS-API Sted: Møterom 1 ved Oslo kontoret Tid: kl 10.00 15.00, 9. desember 2014 Deltakere: Gunstein Vatnar, Norkart AS Randi Wessmann, Norkart AS Harald Lund, Geodata

Detaljer

AJOURHOLD AV AR5 I QMS

AJOURHOLD AV AR5 I QMS Veileder fra Skog og landskap AJOURHOLD AV AR5 I QMS For GIS/LINE kart - versjon 2014-10-01 Jørn Storholt Norsk institutt for skog og landskap, Pb 115, NO-1431 Ås, Norway 1 INNHOLD 1. FORBEREDELSER...

Detaljer

Workshop NGIS API. Lars Eggan, Norconsult Informasjonssystemer desember 2014

Workshop NGIS API. Lars Eggan, Norconsult Informasjonssystemer desember 2014 Workshop NGIS API Lars Eggan, Norconsult Informasjonssystemer desember 2014 1 NGIS i WinMap NGIS-klient Hente datasett fra en NGIS portal Oppdatere portalen med endringer gjort lokalt Spesiallaget funksjonalitet

Detaljer

AJOURHOLD AV AR5 i QMS FOR FYSAK

AJOURHOLD AV AR5 i QMS FOR FYSAK NIBIO VEILEDER AJOURHOLD AV AR5 i QMS FOR FYSAK Kokebok versjon 2016-03-02 Kristin Holm Kart- og statistikkdivisjonen INNHOLD 1. FORBEREDELSER...3 2. INNSTILLINGER...4 3. UTTREKK AV FRA QMS...5 3.1 START

Detaljer

Ajourhold av DMK i NGIS med FYSAK F2.6 Kokebok Norsk institutt for skog og landskap, Steinkjer

Ajourhold av DMK i NGIS med FYSAK F2.6 Kokebok Norsk institutt for skog og landskap, Steinkjer Ajourhold av DMK i NGIS med FYSAK F2.6 Kokebok Norsk institutt for skog og landskap, Steinkjer Innhold Forberedelser... 2 Innstillinger... 2 Uttrekk av DMK fra NGIS... 4 Åpning av ortofoto... 7 Redigering...

Detaljer

SENTRAL FELLES KARTDATABASE. Geir Heksem

SENTRAL FELLES KARTDATABASE. Geir Heksem SENTRAL FELLES KARTDATABASE Geir Heksem AGENDA GISLINE mot QMS Hva er endringene for brukerne Matrikkel Andre FKB-data Andre data Plansynkronisering Litt om utrulling/installasjon Litt om kostnader serverkrav/tekniske

Detaljer

Sentral Felles Kartdatabase - Krav til dataene. Fagdag - Utveksling og forvaltning av geodata Nils Ivar Nes, 22.mai 2017

Sentral Felles Kartdatabase - Krav til dataene. Fagdag - Utveksling og forvaltning av geodata Nils Ivar Nes, 22.mai 2017 Sentral Felles Kartdatabase - Krav til dataene Fagdag - Utveksling og forvaltning av geodata Nils Ivar Nes, 22.mai 2017 Sentral lagring av Felles kartdatabase Prosjektets mål: 80% av kommunene oppdaterer

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

Primus Brukerveiledning for masseimport av bilder. Primus 5.6.5

Primus Brukerveiledning for masseimport av bilder. Primus 5.6.5 Primus Brukerveiledning for masseimport av bilder Primus 5.6.5 Primus Brukerveiledning for masseimport av bilder 2 Innholdsfortegnelse Innholdsfortegnelse... 2 Brukerveiledning for masseimport av bilder

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

Januar versjon

Januar versjon Januar 2019 - versjon 18.003. SFKB versjon 18.003 Hastighetsforbedringer: Det er også i denne versjonen gjort tiltak for å optimalisere ytelsen i Sentral FKB. Dette vil merkes spesielt ved innsjekk for

Detaljer

N O R K A R T G E O S E R V I C E A S. Datamodeller

N O R K A R T G E O S E R V I C E A S. Datamodeller N O R K A R T G E O S E R V I C E A S Datamodeller INNHOLD: 1 INNLEDNING... 2 2 GEODATA-MODELLEN... 2 2.1 INNLEDNING... 2 2.2 FORMÅL... 2 2.3 OMFANG... 2 2.4 DEFINISJONER, AKRONYMER OG FORKORTELSER...

Detaljer

Elhub - Milepæl 2 Uttrekk av grunndata til DAM

Elhub - Milepæl 2 Uttrekk av grunndata til DAM Elhub - Milepæl 2 Uttrekk av grunndata til DAM Versjon 1.0 28.08.2015 Innhold Figurer... 1 Endringslogg... 2 1. Bakgrunn... 3 2. Hvordan sende inn data... 3 2.1 Før man lager uttrekk... 3 2.2 Hvordan laste

Detaljer

Harmonisert KS - ASAK Miljøstein AS

Harmonisert KS - ASAK Miljøstein AS Harmonisert KS - ASAK Miljøstein AS 1. Formål: Beskrive den praktiske bruken av KS-systemet. 2. Omfang: Alle 3. Ansvar: KS-ansvarlig i AM. 4. Gjennomføring: Oppdateres ved behov. 5. Registreringer: Ingen.

Detaljer

Veileder for innføring av geosynkronisering av plandata

Veileder for innføring av geosynkronisering av plandata Veileder for innføring av geosynkronisering av plandata Innholdsfortegnelse Veileder for innføring av geosynkronisering av plandata... 1 1. Forutsetninger... 1 1.1 Programvare... 1 1.2 Servere og sertifikater...

Detaljer

Geosynkronisering og GML: Implementasjon gjennom prosjektet Sentral lagring av FKB. Nils Ivar Nes,

Geosynkronisering og GML: Implementasjon gjennom prosjektet Sentral lagring av FKB. Nils Ivar Nes, Geosynkronisering og GML: Implementasjon gjennom prosjektet Sentral lagring av FKB Nils Ivar Nes, 2016-11-03 Prosjektet http://kartverket.no/prosjekter/sentral-felles-kartdatabase/ Geosynkronisering Bakgrunn

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet

Detaljer

Oppsummering fra arbeidet med tekniske avklaringer for implementering av GeoSynkronisering Nils Ivar Nes

Oppsummering fra arbeidet med tekniske avklaringer for implementering av GeoSynkronisering Nils Ivar Nes Oppsummering fra arbeidet med tekniske avklaringer for implementering av GeoSynkronisering 20150828 - Nils Ivar Nes På skuldrene til Geosynkroniseringsstandarden v1.0 GML-veileder i Norge digitalt ny versjon

Detaljer

Brukerveiledning for ArkN4

Brukerveiledning for ArkN4 Brukerveiledning for ArkN4 Brukerveiledningen er delt inn i 3 deler: 1. Konfigurasjon av ArkN4 2. Kjøre ArkN4 3. Opprette ny database Eksemplene i dette kapitlet viser hvordan man velger de forskjellige

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Eksamen i Internetteknologi Fagkode: IVA1379

Eksamen i Internetteknologi Fagkode: IVA1379 Høgskolen i Narvik Side 1 av 5 Eksamen i Internetteknologi Fagkode: IVA1379 Tid: Mandag, 07.06.04, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 4 oppgaver

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Scan Secure GTS 5.1 + PAS

Scan Secure GTS 5.1 + PAS Scan Secure GTS 5.1 + PAS Installasjonsmanual For versjon 5.1.7 og nyere Denne installasjonsmanualen er konfidensiell Den er kun ment til bruk for system administrator Den skal ikke benyttes av brukere

Detaljer

GAB INNSYN... 1 INNSTILLINGER... 1 Database... 1 Søk... 4 GENERELT... 5 Søkeutvalg... 5 GAB menyen... 6 VIS MENYEN... 6 Generelt...

GAB INNSYN... 1 INNSTILLINGER... 1 Database... 1 Søk... 4 GENERELT... 5 Søkeutvalg... 5 GAB menyen... 6 VIS MENYEN... 6 Generelt... GAB INNSYN... 1 INNSTILLINGER... 1 Database... 1 Søk... 4 GENERELT... 5 Søkeutvalg... 5 GAB menyen... 6 VIS MENYEN... 6 Generelt... 6 Vis eiendom i GAB... 8 Vis bygning... 12 Vis Adresse... 15 SØK MENYEN...

Detaljer

For kunder som kjører Huldt & Lillevik Reise 1.3 på Access database

For kunder som kjører Huldt & Lillevik Reise 1.3 på Access database For kunder som kjører Huldt & Lillevik Reise 1.3 på Access database Huldt & Lillevik Reise 1.4 støtter ikke lengre å kjøre mot en Access database. Du må derfor konvertere til MSDE eller SQL Server. Dette

Detaljer

Integrasjon mot Active Directory i EK 2.37

Integrasjon mot Active Directory i EK 2.37 Notat EK har funksjonalitet for å synkronisere brukertabellen sin mot Active Directory eller en annen katalogtjeneste som kan aksesseres via LDAP protokollen. Funksjonaliteten kan brukes til å: - Oppdatere

Detaljer

Romlig datamanipulering

Romlig datamanipulering Romlig datamanipulering Gunnar Tenge, 18.04.08 Romlige manipuleringsteknikker brukes i GIS-analyser. I denne artikkelen forklares alle manipuleringsteknikker som man kan forvente å finne i et GIS-program.

Detaljer

Krav til ferdigvegsdata fra entreprenør.

Krav til ferdigvegsdata fra entreprenør. 2020 Krav til ferdigvegsdata fra entreprenør. Felles kravspesifikasjon for ferdigvegsdata utarbeidet av NVDB Brukerforum Innlandet for alle kommunene i Innlandet fylke. Formålet med dokumentet er å gjøre

Detaljer

Visma Enterprise ehandel. Versjon Elektronisk fakturaproduksjon EHF fra ehandel via Aksesspunkt

Visma Enterprise ehandel. Versjon Elektronisk fakturaproduksjon EHF fra ehandel via Aksesspunkt Visma Enterprise ehandel Versjon 2017 Elektronisk fakturaproduksjon EHF fra ehandel via Aksesspunkt Oppdatert 7.8.2017 Innhold 1. GENERELT 3 1.1 Aksesspunkt 3 1.2 Adresser og operatørkoder 4 1.2.1 Operatørkode

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Velkomment til å installere BAS21

Velkomment til å installere BAS21 Velkomment til å installere BAS21 Du har nå kommet til siden hvor du kan installere programpakken BAS21, en komplett programpakke for bedrifter. Å komme igang med BAS21 er enklest ved å følge disse 4 punktene:

Detaljer

ÅpentGeosynkAPI i sentral forvaltning av FKB. Innspill til viktige avklaringer

ÅpentGeosynkAPI i sentral forvaltning av FKB. Innspill til viktige avklaringer ÅpentGeosynkAPI i sentral forvaltning av FKB Innspill til viktige avklaringer Bakgrunn Basert på dokumentet/rapporten «Innspill om bruk av ÅpentGeosynkAPI mot sentral FKB-forvaltning» Rapporten beskriver

Detaljer

Innhold. efaktura Visma AutoInvoice til v.5.03... 1. Oppsett/Vedlikehold... 1. 1 - Systemkoder og Hovedkoder... 2. 2 - Systemkoder og e-faktura...

Innhold. efaktura Visma AutoInvoice til v.5.03... 1. Oppsett/Vedlikehold... 1. 1 - Systemkoder og Hovedkoder... 2. 2 - Systemkoder og e-faktura... Innhold efaktura Visma AutoInvoice til v.5.03... 1 Oppsett/Vedlikehold... 1 1 - Systemkoder og Hovedkoder... 2 2 - Systemkoder og e-faktura... 2 3 - Registrer AutoInvoice... 3 4 - Login AutoInvoice...

Detaljer

Brukerveiledning. For Naturbase redigeringsapplikasjon. Versjon

Brukerveiledning. For Naturbase redigeringsapplikasjon. Versjon Brukerveiledning For Naturbase redigeringsapplikasjon Versjon 11.06.2018 Innhold 1. Innledning... 2 2. Datasett og tilgangsrettigheter... 2 3. Innlogging... 3 4. Startside - valg av datasett... 3 5. Søke

Detaljer

Ajourhold av DMK i FYSAK F2.6 Kokebok Norsk institutt for skog og landskap, Steinkjer

Ajourhold av DMK i FYSAK F2.6 Kokebok Norsk institutt for skog og landskap, Steinkjer Ajourhold av DMK i FYSAK F2.6 Kokebok Norsk institutt for skog og landskap, Steinkjer Innhold Forberedelser... 2 Innstillinger... 2 Åpning av DMK-base og ortofoto... 3 Redigering... 5 Rediger markslagsgrenser...

Detaljer

kpmg KPMG Kundeportal Brukerveiledning

kpmg KPMG Kundeportal Brukerveiledning kpmg KPMG Kundeportal Brukerveiledning 1 Velkommen til KPMG Kundeportal 1 1.1 Logg inn i portalen 1 1.2 Glemt passord? 1 1.3 Tilgang til flere portaler 2 2 Navigering i mappestrukturen og opplasting av

Detaljer

Brukermanual. Quality PayBack Starter Edition

Brukermanual. Quality PayBack Starter Edition Brukermanual Quality PayBack Starter Edition Innhold 1. Kapittel 1 Innledning 1.1. Dette dokumentet 1.2. Quality PayBack 1.3. Kort oversikt over funksjoner i QPB. 2. Registering 2.1. Generelt 2.1.1. Logg

Detaljer

Småteknisk Cantor Controller installasjon

Småteknisk Cantor Controller installasjon Cantor AS Småteknisk Cantor Controller installasjon 10.10.2012 INSTALLASJON OG OPPSETT AV CANTOR CONTROLLER 3 Nedlasting av programfiler 3 Nyinstallasjon server / enbruker 3 A. Controller instansen som

Detaljer

ISY WinMap Kommandoer versjon for GeoMedia

ISY WinMap Kommandoer versjon for GeoMedia ISY WinMap Kommandoer versjon 17.002 - for GeoMedia 2016.2 Nyheter 6.3.2018 - ISY WinMap Kommandoer 17.002.033 Forbedringer i Eksport til AutoCad kommandoen: Sjekkboks for valg mellom 2D og 3D Eksporterer

Detaljer

NYTT: Mulig å søke i Resultatobjektfeltet i oppgavetypene Terrengoverflate, Strekk profil og Strekk vertikalt:

NYTT: Mulig å søke i Resultatobjektfeltet i oppgavetypene Terrengoverflate, Strekk profil og Strekk vertikalt: 2016/07/01 23:37 1/5 Versjon 19.2X.FP5 Versjon 19.2X.FP5 Oppdateringer i NovapointDCM Basis Generelt NYTT: Mulig å søke i Resultatobjektfeltet i oppgavetypene Terrengoverflate, Strekk profil og Strekk

Detaljer

1 Guide til flerbrukerinstallasjon av e-lector

1 Guide til flerbrukerinstallasjon av e-lector LES LETTERE, LES RASKERE, FÅ LESELYST! Innhold 1 Guide til flerbrukerinstallasjon av e-lector... 1 1.1 Innledning... 1 1.2 Installasjon på nettverk... 1 1.3 Bruk av SQL Server... 2 1.4 Administrasjon...

Detaljer

NYTT: Mulig å søke i Resultatobjektfeltet i oppgavetypene Terrengoverflate, Strekk profil og Strekk vertikalt:

NYTT: Mulig å søke i Resultatobjektfeltet i oppgavetypene Terrengoverflate, Strekk profil og Strekk vertikalt: 2017/02/01 01:29 1/5 Versjon 19.20.FP5 and Versjon 19.25.FP5 Versjon 19.20.FP5 and Versjon 19.25.FP5 Oppdateringer i NovapointDCM Basis Generelt NYTT: Mulig å søke i Resultatobjektfeltet i oppgavetypene

Detaljer

Hoved fokus for denne App n:

Hoved fokus for denne App n: Novapoint GO Navigering og oppfølging på anlegg Geir Andersen. Jarle Dawes og Heidi Berg Brukermøte 2011 Hoved fokus for denne App n: Byggeledere, kontrollingeniører, prosjektingeniører, anleggsledere

Detaljer

Installasjonsveiledning, CGM Vision Installasjonskrav. 1 Innhold. 1 Formål. 2.1 Windows. 2.2 Oracle. 2.3 CGM Vision. Oppgradering v4.7 til v4.

Installasjonsveiledning, CGM Vision Installasjonskrav. 1 Innhold. 1 Formål. 2.1 Windows. 2.2 Oracle. 2.3 CGM Vision. Oppgradering v4.7 til v4. NB: Nye krav til installasjonen, se kap. 3.1.1 og 3.2.1 1 Innhold 1 Formål... 1 2 Installasjonskrav... 1 2.1 Windows... 1 2.2 Oracle... 1 2.3 CGM Vision... 1 3 Oppgradering... 2 3.1 Databaseserver... 2

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

Geosynkronisering av arealplaner

Geosynkronisering av arealplaner Geosynkronisering av arealplaner Geomatikkdagene i Nordland 2019 Bodø 21.03.2019 Geir Martin Johansen Innhold Forvaltning av arealplaner før QMS Geosynkronisering av arealplaner - Oppstart QMS Logg på/av

Detaljer

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

Litt om Javas class-filer og byte-kode

Litt om Javas class-filer og byte-kode Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet

Detaljer

SOSI-forvaltning - logisk modell

SOSI-forvaltning - logisk modell SOSI-forvaltning - logisk modell Forfatter: David Skogan, SINTEF Tele og data Dato: 1997-01-21 Forord Min oppgave til møte den 22 var å beskrive den logisk modellen med skranker for SOSI-standarden. Jeg

Detaljer

Distribusjon via e-post - oppstart

Distribusjon via e-post - oppstart Distribusjon via e-post - oppstart Avsenderopplysninger Mottakeropplysninger Egenskaper Blankettype for e-post Forutsetninger Eksempel Kontroll Elektronisk distribusjon av dokumenter betyr at dokumentene

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 10/5-2011, Stein Krogdahl Oversikt over Javas class-filer og byte-kode Disse formatene ble planlagt fra start

Detaljer

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14. IN1000-INF1001-2018 Informasjon Eksamen i IN1000 og IN1001 høsten 2018 Tid 30. november kl. 14.30 (4 timer) Faglærere vil besøke lokalet ca kl 15-16. Oppgavene Oppgave 1a-f er kortsvarsoppgaver som rettes

Detaljer

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 6 Bokmål Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert

Detaljer

INF Puslegruppa - Kom i gang med PusleChat

INF Puslegruppa - Kom i gang med PusleChat INF1010 - Puslegruppa - Kom i gang med PusleChat Sigmund Hansen sigmunha@student.uio.no 31. mars 2011 Last ned dokumentasjonen til kildekoden. 1 1 Klassestruktur 1.1 inf1010.pusle.chat.client.chatclient

Detaljer

Universell Utforming-App Bruksanvisning. Innhold. Versjon 1.5,

Universell Utforming-App Bruksanvisning. Innhold. Versjon 1.5, Universell Utforming-App Bruksanvisning Innhold 1 Utstyr/ forslag til utstyr... 2 2 Før man begynner... 2 3 Viktig å huske under feltarbeid... 2 4 Start APPen... 2 5 Skjermen og hovedmenyen... 3 5.1 Funksjon

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oblig 4Hybelhus litt mer tips enn i oppgaven Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,

Detaljer

Kvalitetskontroll av SOSI-filer. Med programvaren Fysak

Kvalitetskontroll av SOSI-filer. Med programvaren Fysak Kvalitetskontroll av SOSI-filer Med programvaren Fysak Innhold 1. Prosedyrer ved kontroll av geometri på SOSI-filer i Fysak... 3 1.1 Datasett i Naturbase... 3 1.2 Innstillinger FYSAK... 3 1.2.1 Kommandofiler

Detaljer

Installasjonsveiledning

Installasjonsveiledning Finale Systemer as Installasjonsveiledning FINALE Årsoppgjør FINALE Rapportering FINALE Konsolidering FINALE Driftsmidler FINALE Avstemming NARF Avstemming FINALE Investor Versjon 22.0 Definisjoner...3

Detaljer

1 INNLEDNING... 2. 1.1 Om Altinn... 2. 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3. 2.1 Nedlasting... 3. 2.2 Registrering...

1 INNLEDNING... 2. 1.1 Om Altinn... 2. 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3. 2.1 Nedlasting... 3. 2.2 Registrering... INNHOLD Mamut for Altinn INNHOLD 1 INNLEDNING... 2 1.1 Om Altinn... 2 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3 2.1 Nedlasting... 3 2.2 Registrering... 5 2.3 Opprett en bruker... 7

Detaljer

Sentral Felles Kartdatabase FKB versjon 4.6. Geir Ingebretsen, FKB-ansvarlig Trude Lien, Vedlikeholdsansvarlig

Sentral Felles Kartdatabase FKB versjon 4.6. Geir Ingebretsen, FKB-ansvarlig Trude Lien, Vedlikeholdsansvarlig Sentral Felles Kartdatabase FKB versjon 4.6 Geir Ingebretsen, FKB-ansvarlig Trude Lien, Vedlikeholdsansvarlig Sentral lagring av Felles kartdatabase Hvem bidrar til løftet? Kommunene Systemleverandørene

Detaljer

Installasjon og oppgradering av Advisor

Installasjon og oppgradering av Advisor Installasjon og oppgradering av Advisor Innhold: Innhold 1 Forutsetninger... 1 1.1 Historikk... 1 1.2 Generelt... 1 1.3 Versjoner av Advisor... 2 2 Nyinstallasjon... 2 2.1 Server installasjon... 2 2.2

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

Brukerveiledning for Admin i FEBDOK versjon 6.0

Brukerveiledning for Admin i FEBDOK versjon 6.0 Innhold Brukerveiledning for Admin i FEBDOK versjon 6.0... 2 Lisensinformasjon og lisensbehandling:... 2 Endre lisensinformasjon:... 2 Lisensbehandling... 3 Brukeradministrasjon:... 5 Brukeradministrasjon

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være

Detaljer

1. Hent NotaPlan Online Backup på www.notaplan.no 2. Trykk på Download i menyen og på Download i linjen med Notaplan Backup

1. Hent NotaPlan Online Backup på www.notaplan.no 2. Trykk på Download i menyen og på Download i linjen med Notaplan Backup 1 Systemkrav ADSL eller minimum ISDN via router. Ved automatisk backup: Min. Windows XP / 2000 / 2003 (pga. Service) Ved manuellt system: Min. Windows 98 SE NotaPlan Backup bør installeres på den/de maskiner

Detaljer

Bruk av datobegrepene i SOSI 4.

Bruk av datobegrepene i SOSI 4. SOSI-sekretariatet 2008-02-22 Bruk av datobegrepene i SOSI 4. 1 De ulike datobegrepene I utgangspunktet er alle datoer opsjonelle i standarden, det er opp til de respektive produktspesifikasjoner å gi

Detaljer

Primus Brukerveiledning for masseimport av bilder. Primus 5.6.4

Primus Brukerveiledning for masseimport av bilder. Primus 5.6.4 Primus Brukerveiledning for masseimport av bilder Primus 5.6.4 Primus Brukerveiledning for masseimport av bilder 2 Innholdsfortegnelse Innholdsfortegnelse... 2 Brukerveiledning for masseimport av bilder

Detaljer

Installasjonsveiledning for Ordnett Pluss

Installasjonsveiledning for Ordnett Pluss Installasjonsveiledning for Ordnett Pluss Systemkrav Alle systemer Windows Linux Nedlasting/distribusjon Installasjon Windows Programtillegg Chrome Silent install/msiexec Datafiler Ubuntu Terminal/Kilent

Detaljer

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det? Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje

Detaljer

Denne notatet er laget for å forklare hvordan SOSI Ledning-modellen som nå snart er klar fra SOSI Ag7b, kan brukes.

Denne notatet er laget for å forklare hvordan SOSI Ledning-modellen som nå snart er klar fra SOSI Ag7b, kan brukes. NOTAT Emne Til Eksempel på bruk av SOSI Ledning SOSI Ag7b Fra Erling Onstein Dato 3.september 2012, oppdatert 9.september 2012 Kopi til SOSI-sekretariatet/kartverket Hensikt med notatet Denne notatet er

Detaljer

4.1. Kravspesifikasjon

4.1. Kravspesifikasjon 4.1. Kravspesifikasjon Dette delkapittelet beskriver nærgående alle deler av systemet, hvordan det er tenkt ferdigutviklet med fokus på oppdragsgivers ønsker. 4.1.1. Innledning Informasjon om hvordan kravspesifikasjonens

Detaljer

For mer informasjon om SQL Server 2014 Express, se Microsoft sine nettsider: https://msdn.microsoft.com/en-us/sqlserver2014express.

For mer informasjon om SQL Server 2014 Express, se Microsoft sine nettsider: https://msdn.microsoft.com/en-us/sqlserver2014express. 1 Innholdsfortegnelse Microsoft SQL Server 2014 Express... 3 Nedlastning av installasjonsfil for SQL Server 2014 Express... 3 Installasjon av SQL Server 2014 Express... 4 Installasjon av Huldt & Lillevik

Detaljer

Askeladden Release-logg 30. august 2012

Askeladden Release-logg 30. august 2012 NR. Tema Kort beskrivelse av oppgaven Status Spesifikasjon - detaljert Kommentar 1. Søk Søkeresultat skal være likt i id-søk og avansert søk 2. Registrering Revet/brent bygning - skal kunne være inneværende

Detaljer

Brukerveiledning. For importapplikasjon til Naturbase. Versjon 17. mars 2015

Brukerveiledning. For importapplikasjon til Naturbase. Versjon 17. mars 2015 Brukerveiledning For importapplikasjon til Naturbase Versjon 17. mars 2015 Innhold 1. Innledning... 2 1.1 Rutiner for å legge data inn i Naturbase... 2 1.2 Leveranseinstrukser... 3 2. Om leveranse av data

Detaljer

Konfigurasjon av inrx og Megalink

Konfigurasjon av inrx og Megalink Konfigurasjon av inrx og Megalink Ver 0.6 www.inrx.org 1 Innholdsfortegnelse Versjonsinformasjon... 3 Introduksjon... 4 Konfigurasjon av inrx-ml-klient... 5 Konfigurere støtte for automatisk disiplinvalg

Detaljer

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål Innhold uke 9 Mer komplekse strukturer Objektorientert programmering i Python IN1000 Høst 2018 uke 9 Siri Moe Jensen Referanser versus objekter (repetisjon) "Dot-notasjon" Spesielle metoder i egendefinerte

Detaljer

I databasen ligger det over 100 tabeller. De henger sammen dels via synlige koder, dels via usynlige interne ID-er. De ser man normalt bare når det

I databasen ligger det over 100 tabeller. De henger sammen dels via synlige koder, dels via usynlige interne ID-er. De ser man normalt bare når det 1 2 3 4 I databasen ligger det over 100 tabeller. De henger sammen dels via synlige koder, dels via usynlige interne ID-er. De ser man normalt bare når det dukker opp tall i oversikter eller man får meldingen

Detaljer

AJOURFØRING AV DMK I FYSAK G 1.32

AJOURFØRING AV DMK I FYSAK G 1.32 Veileder fra Skog og landskap -------------------------------------------------------------------------------------------------------------- AJOURFØRING AV DMK I FYSAK G 1.32 Gårdskarthåndboka kokebok,

Detaljer

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Arv. Book book1 = new Book(); book1. title = Sofies verden class Book { String title; } class Dictiona ry extends Book { Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

Brukerdokumentasjon Prosjekt nr. 2011-16 PayEx Logistics

Brukerdokumentasjon Prosjekt nr. 2011-16 PayEx Logistics Side 1 av 17 Payex Logistics Brukermanual Ver. 1.0 31.05.2011 Gruppe 16 Høgskolen i Oslo Side 2 av 17 1 Innledning Denne brukerdokumentasjonen forklarer bruken av logistikksystemet som er laget for PayEx.

Detaljer

Altinn Monitor (Gammel)

Altinn Monitor (Gammel) Innhold Altinn Monitor... 1 Generelt om elektronisk rapportering via Altinn... 1 Installere Altinn Monitor... 1 Forutsetninger... 1 Fremgangsmåte... 2 Registrere bruker på Altinn portalen... 4 Registrere

Detaljer

Brukerdokumentasjon for regnskapssentraler

Brukerdokumentasjon for regnskapssentraler for regnskapssentraler System: Nytt mottakssystem Statsregnskapet Versjon 1 Innholdsfortegnelse FORORD... 3 MÅLGRUPPE... 3 FORMÅL... 3 OMFANG... 3 1 OPPSTART... 4 1.1 ÅPNINGSVINDU... 4 1.2 PÅLOGGING...

Detaljer

Eloptel (Elektronisk Opptelling) Brukerdokumentasjon Ver.:

Eloptel (Elektronisk Opptelling) Brukerdokumentasjon Ver.: ELOPTE L 2009 - GODKJENNING STEMMETAL L BRUKERHÅNDBOK Innholdsfortegnelse Generell beskrivelse av valgsystemet... 3 Brukeradgang...3 Pålogging...3 Sikkerhet og adgangskontroll...3 Feilmeldinger...3 Driftsrutiner

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

Detaljer

3.3 Case 3: Opprette en bruker Case 4: Endre en bruker... 8

3.3 Case 3: Opprette en bruker Case 4: Endre en bruker... 8 Testdokumentasjon 1 Forord Denne rapporten omhandler testingen av systemet. Rapporten er først og fremst beregnet på sensor og intern veileder ved Høgskolen i Oslo, men kan gjerne leses av andre som måtte

Detaljer

Visma Reconciliation 9.1.0.0 NYHETER OG FORBEDRINGER

Visma Reconciliation 9.1.0.0 NYHETER OG FORBEDRINGER Visma Reconciliation 9.1.0.0 NYHETER OG FORBEDRINGER Oslo, desenber 2014 1. opplag All informasjon i denne dokumentasjonen vil kunne forandres uten varsel og representerer ikke en forpliktelse fra produsenten.

Detaljer

Sentral felles kartdatabase SYSTEMBESKRIVELSE

Sentral felles kartdatabase SYSTEMBESKRIVELSE Sentral felles kartdatabase SYSTEMBESKRIVELSE Tittel på dokumentet Tittel Sentral Felles Kartdatabase - Systembeskrivelse Versjon 1.6 Dato 21.05.2017 Innhold Sentral felles kartdatabase... 1 SYSTEMBESKRIVELSE...

Detaljer

Unit4 Web Dokumentarkiv Dokumentarkiv og vedlegg i Unit4 Web

Unit4 Web Dokumentarkiv Dokumentarkiv og vedlegg i Unit4 Web Unit4 Web Dokumentarkiv Dokumentarkiv og vedlegg i Unit4 Web Økonomisenteret, august 2017 Innhold Om dokumentarkivet... 2 Dokumentarkivets hovedvindu... 3 Dokumenttyper... 4 Dokumentmaler... 5 Opprette

Detaljer

Hvordan komme i gang med MUSITs applikasjoner

Hvordan komme i gang med MUSITs applikasjoner Hvordan komme i gang med MUSITs applikasjoner Versjon av 21.1.2010 Innledning Før man kan få tilgang til MUSITs samlingsdatabaser, må man få tildelt et brukernavn og passord. Dette får man ved å henvende

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive

Detaljer

WFS for transaksjoner WFS-T

WFS for transaksjoner WFS-T WFS for transaksjoner WFS-T Jarle Pedersen og Lars Eggan Norconsult Informasjonssystemer AS Teknologiforum 2017, 14. 15. november 2017 2 WFS WFS implementerer et grensesnitt mot geografiske data via internett

Detaljer

Oppdatering 4 ESA Vedlagt følger Oppdatering 4 til ESA server/web versjon

Oppdatering 4 ESA Vedlagt følger Oppdatering 4 til ESA server/web versjon Postadresse: EVRY Postboks 4 1330 Fornebu Besøksadresse: Snarøyveien 30 A Fornebu Til brukere av ESA Dato: 28.06.2017 Ref.: Ragnar Sturtzel Oppdatering 4 ESA 8.1.2.2 Vedlagt følger Oppdatering 4 til ESA

Detaljer