Hei!
Jeg har laget et utkast til konvertering av vegdata fra kartverket.
Vedlagt er vegdata.lua, men for bruk med sosi2osm [1]. For de som ikke
har installert sosi2osm, har jeg lagt ut Elveg-data fylkesvis på [2] i
zippet OSM-format. Her ligger både filer konvertert med default.lua
(alle tagger overføres som de er) og vedlagte vegdata.lua.
Jeg vet det er mange skritt igjen før vi kan starte å importere, men
tenkte å legge ut dette til gjennomsyn for å starte prosessen.
Merk at det ikke er tillatt å importere disse dataene OpenStreetMap i
denne omgang!
Noen som har kommentarer til taggingen eller har noe å si om import av
vegdata generelt?
[1]: http://wiki.openstreetmap.org/wiki/Sosi2osm
[2]:
https://drive.google.com/folderview?id=0BwxPkSBawddGN0hUeUZtLUctUW8&usp=sharing
out = {}
-- Variables for making a road ID
local kommunenr = nil
local found_kommunenr = false
local gatenr = nil
local found_gatenr = false
for i, indent, tokens in tokens, info, 0 do
-- Only return roads, given by the OBJTYPE=VegSenterlinje
-- There are other types in the data, at least
-- * GangSykkelVegSenterlinje
-- * Svingekonnekteringslenke
-- * Kjørefelt
-- * Kommunedele
-- * Fortau
-- * Vegsperring
-- * Ferjekai
-- * Bilferjestrekning
if tokens[1] == "OBJTYPE" then
if tokens[2] ~= "VegSenterlinje" and tokens[2] ~= "Kjørebane" then
-- Return only the OBJTYPE
return {OBJTYPE=tokens[2]}
end
end
if tokens[1] == "VNR" then
vegkategori = tokens[2]
vegstatus = tokens[3]
if vegkategori == 'E' or vegkategori == 'R' or vegkategori == 'F' then
-- E, R, F should have road numbers
vegnummer = tokens[4]
elseif #tokens > 3 then
-- For K, P, vegnummer is optional
vegnummer = tokens[4]
end
if vegkategori == 'E' then
-- Europaveg
out['highway'] = "trunk"
out['ref'] = "E " .. vegnummer
elseif vegkategori == 'R' then
-- Riksveg
out['highway'] = "trunk"
out['ref'] = vegnummer
elseif vegkategori == 'F' then
-- Fylkesveg
-- May be primary or secondary. If one is not already on the map,
-- it is probably a secondary.
out['highway'] = "secondary"
out['ref'] = vegnummer
elseif vegkategori == 'K' then
-- Kommunal veg
-- Don't try to classify. May be tertiary, residential, unclassified, or service.
out['highway'] = "road"
elseif vegkategori == 'P' then
-- Privat veg
-- Don't try to classify. May be tertiary, residential, unclassified, or service.
out['highway'] = "road"
elseif vegkategori == 'S' then
-- Skogsbilveg
-- There may be more information in the LBVKLASSE tag,
-- but I have only found it in 19 Troms county (not
-- present in counties 01, 02, 05, 08)
out['highway'] = "track"
end
-- Include the NVDB category in output. It may give a mapper further hints to the classification
out['nvdb:category'] = vegkategori
-- Add street name
elseif tokens[1] == "GATENAVN" then
out['name'] = tokens[2]
-- Add unique NVDB identifier if present
-- TRANSID only contained in Elveg data set, not Vbase
-- TRANSID is no longer a part of SOSI 4.5 specs
elseif tokens[1] == "TRANSID" then
out['nvdb:id'] = tokens[2]
elseif tokens[1] == "LOKALID" then
-- This presumes that the local ID is from a NVDB. This can be seen
-- from the tag NAVNEROM=NVDB_Transportlenker with the same ident, but
-- all the data that this lua script is used for should originate form NVDB
out['nvdb:id'] = tokens[2]
elseif tokens[1] == "KOMM" then
kommunenr = tokens[2]
found_kommunenr = true
elseif tokens[1] == "GATENR" then
gatenr = tokens[2]
found_gatenr = true
--else
-- -- For debugging, pass through other tags (remove this later)
-- if tokens[1] == "FLATE" then
-- out["type"] = "multipolygon"
-- elseif #tokens == 2 then
-- out[tokens[1]] = tokens[2]
-- elseif #tokens > 2 then
-- out[tokens[1]] = table.concat(tokens, "; ", 2)
-- end
end
end
if found_gatenr and found_kommunenr then
out['nvdb:road_id'] = kommunenr .. '-' .. gatenr
end
return out
_______________________________________________
kart mailing list
[email protected]
http://lists.nuug.no/mailman/listinfo/kart