DGBuss:Kartdata: Forskjell mellom sideversjoner

Fra DataGrafikk
Hopp til navigeringHopp til søk
Linje 83: Linje 83:
[[Fil:DGGKartdataNVDBRutedatasett.PNG]]
[[Fil:DGGKartdataNVDBRutedatasett.PNG]]


== Tabellstruktur for kartdatabase ==
== Tabellstruktur for kartbase ==


<pre>
<pre>
Linje 164: Linje 164:


</pre>
</pre>


== Eksempel på kommandoer via GISinternals ==
== Eksempel på kommandoer via GISinternals ==

Sideversjonen fra 24. jan. 2022 kl. 07:26


Kartdata fra egen database

Kartdata legges inn i en datastruktur

dg_mgate.dbf
dg_mheig.dbf
dg_mifbt.dbf
dg_mlim.dbf
dg_mnadr.dbf
dg_mroad.dbf
dg_mspee.dbf
dg_mgstop.dbf
dg_mturn.dbf
dg_mweig.dbf

Eksempel datastruktur

Kartdata fra SOSI

DGis leser vegdata på | SOSI-format.

Elveg kartdata kan for eksempel lastes ned fra Kartkatalogen

SOSI-filene legges i Elveg-katalogen i følgende mappestruktur:

Adresser (Adresser)
n250 (Eksempel: Arealdekke, Stedsnavn, Bygninger)
Vegnett (Vegnett)
VFagdata (Fagdata: Fart, Innkjøring forbudt, Svingrestriksjoner)

Eksempel Elveg-katalog

Automatisk nedlasting av oppdaterte datasett

Kartverket tilbyr en nedlastingsklient for datasett som er publisert på Geonorge.

Løsningen består av et grafisk grensesnitt for å lage et utvalg av datasett man vil laste ned.

Se Kartverket sitt webinar for mer informasjon om løsningen.

Her har vi laget et utvalg på Elveg + N250 flatekart for Oppland og Hedmark.


Datasett kan oppdateres via grafisk klient eller via eget program på startmenyen som kun utfører nedlasting.

Man kan også sette opp nedlasting som en tidsstyrt oppgave.

Filene lastes ned til lokal disk, filene må pakkes ut og legges i dGis sin Elveg katalog.

Kartdata fra Elveg2

Elveg leveranser fra Kartverket opphører og erstattes med Elveg2 i løpet av 2022. DGGis støtter ikke Elveg2 leveranser fra Kartverket det anbefales å benytte Kartverket sitt NVDB Rutedatasett.

Kartdata fra NVDB Rutedatasett

Datasett er segmentert på aktuelle strekningsegenskaper/fartsgrenser.

Datasett leveres som FGDB-format eller spatialite databaser som leveres på fylkesnivå eller for hele Norge.

For å kunne benytte NVBD Rutedatasett i DGgis må det gjøres en forhåndsprosessering.

DGgis har ikke mulighet for å lese NVBD Rutedatasett direkte og dataene er ikke organisert kommunevis som gir unødvendig mye kartdata.

  • Krever Microsoft SQL base. Kunder som allerede benytter SQL versjon av DGBuss har vanligvis dette tilgjengelig. Oppretter Microsoft SQL base i bunn med tabellstruktur med script fra DataGrafikk.
  • Henter ned NVDB Rutedatasett fra Geonorge. Finnes også tilgjengelig massiv nedlastingsklient for automatisk oppdatering.
  • Man trenger et verktøy for å konvertere dataene fra spatiallite til Microsoft SQL, DataGrafikk bruker verktøyspakken fra GISinternals fordi den gir betraktelig bedre ytelse enn andre alternativer siden den støtter BULK insert. Merk DataGrafikk leverer ikke denne verktøyspakken, hvilke komponenter som man kan benytte avhenger av den enkelte organisasjonen.
  • Script/kommandoer som henter ut ønsket utvalg av veglenker/restriksjoner fra NVBD Rutedatasett med verktøyspakken fra MapServer.

Eksempel på kartbase på Microsoft SQL

Tabellstruktur for kartbase


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

IF  EXISTS(
	SELECT * FROM sys.tables tbl WHERE tbl.name = 'veglenke'
)
BEGIN
	DROP TABLE veglenke
END;


IF  EXISTS(
	SELECT * FROM sys.tables tbl WHERE tbl.name = 'vegsperring'
)
BEGIN
	DROP TABLE vegsperring
END;


IF  EXISTS(
	SELECT * FROM sys.tables tbl WHERE tbl.name = 'svingerestriksjon'
)
BEGIN
	DROP TABLE svingerestriksjon
END;

CREATE TABLE [dbo].[dg_veglenke](
	[ogr_fid] [int] IDENTITY(1,1) NOT NULL,
	[GEOMETRY] [geometry] NULL,
	[veglenkeid] [int] NULL,
	[kjoreretning] [nvarchar](10) NULL,
	[typeveg] [nvarchar](100) NULL,
	[fartsgrense] [tinyint] NULL,
	[kommunenummer] [nvarchar](4) NULL,
	[adressekode] [nvarchar](6) NULL,
	[adressenavn] [nvarchar](250) NULL,
	[metrert_lengde] [float] NULL,
	[vegsystemreferanse] [nvarchar](50) NULL,
 CONSTRAINT [PK_veglenke] PRIMARY KEY CLUSTERED 
(
	[ogr_fid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO



CREATE TABLE [dbo].[dg_svingerestriksjon](
	[ogr_fid] [int] IDENTITY(1,1) NOT NULL,
	[GEOMETRY] [geometry] NULL,
	[fra_veglenkeid] [int] NULL,
	[til_veglenkeid] [int] NULL,
 CONSTRAINT [PK_svingerestriksjon] PRIMARY KEY CLUSTERED 
(
	[ogr_fid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO



CREATE TABLE [dbo].[vegsperring](
	[ogr_fid] [int] IDENTITY(1,1) NOT NULL,
	[GEOMETRY] [geometry] NULL,
	[veglenkeid_1] [int] NULL,
	[veglenkeid_2] [int] NULL,
 CONSTRAINT [PK_vegsperring] PRIMARY KEY CLUSTERED 
(
	[ogr_fid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

Eksempel på kommandoer via GISinternals

ogr2ogr -update -append -f MSSQLSpatial "[DESTINASJON]" "[KILDE]" -a_srs "EPSG:25833" -lco "GEOM_TYPE=geometry" -lco "UPLOAD_GEOM_FORMAT=wkt" -nln veglenke -sql "select veglenkeid,kjoreretning,typeveg,fartsgrense,kommunenummer,adressekode,adressenavn,metrert_lengde,vegsystemreferanse,GEOMETRY from veglenke WHERE kommunenummer IN([KOMMUNENUMMER])" --config CPL_LOG "[LOGFIL]" --config MSSQLSPATIAL_USE_BCP TRUE --config MSSQLSPATIAL_BCP_SIZE 5000 --config CPL_LOG_ERRORS ON
ogr2ogr -update -append -f MSSQLSpatial "[DESTINASJON]" "[KILDE]" -a_srs "EPSG:25833" -lco "GEOM_TYPE=geometry" -lco "UPLOAD_GEOM_FORMAT=wkt" -nln svingerestriksjon -sql "select * from svingerestriksjon" --config CPL_LOG "[LOGFIL]" --config MSSQLSPATIAL_USE_BCP TRUE --config MSSQLSPATIAL_BCP_SIZE 5000 --config CPL_LOG_ERRORS ON
ogr2ogr -update -append -f MSSQLSpatial "[DESTINASJON]" "[KILDE]" -a_srs "EPSG:25833" -lco "GEOM_TYPE=geometry" -lco "UPLOAD_GEOM_FORMAT=wkt" -nln vegsperring -sql "select * from vegsperring" --config CPL_LOG "[LOGFIL]" --config MSSQLSPATIAL_USE_BCP TRUE --config MSSQLSPATIAL_BCP_SIZE 5000 --config CPL_LOG_ERRORS ON

Kartdata fra Open Street Map

dGis kan lese data fra Open Street Map på OSM XML fil-format.

Tilgang på data

Data kan hentes fra mange kilder f. eks Geofabrik, men det minste utvalget denne tillater er data for hele Norge. Data tilbys i et svært komprimert PBF-format som må konverteres til OSM XML før det leses inn i dGis.

For å konvertere data til OSM XML kan verktøy som osmconvert eller osmfilter benyttes.

Hvilke data brukes

Open Street Map inneholder mye data som ikke er aktuelt for lenking og som dGis ikke kan lese.

dGis leser blant annet kurve, vegnavn, vegklassifisering, kjøreretning. Fra dette utledes vegtype, svingbegrensninger, kurvelengder og kjøretider.

Andre data er uaktuelle og kan derfor utelates.

Her er et eksempel der vi benytter osmfilter til å filtrere vekk alt som ikke er kjørbare veger.

Kommuneinndeling

Det kan være ønskelig å dele filene opp i kommuner slik man er vant med fra SOSI.

Dette gir mulighet for å se hvilken kommune veger og adresser tilhører som er nyttig for å orientere seg.

SOSI er bygd opp slik at man enkelt kan hente kommune for veger og adresser.

I Open Street Map må man beregne dette selv.

Polygoner som angir omriss for fylker og kommuner ligger i Open Street Map og man kan f. eks benytte osmfilter til å hente ut disse.

Polygonene kan konverteres til polygon-filter som igjen kan brukes som input til osmconvert for å hente ut data kun for ønsket omriss.

Vi kjenner ikke til ferdige verktøy for å konvertere til polygon-filter, men DataGrafikk tilbyr egenutviklet verktøy for denne oppgaven.


Hjelp til å komme igang

DataGrafikk tilbyr verktøy både for å laste ned og konvertere data fra Open Street Map til noe dGis kan benytte.