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

Svar til