Módulo:Infobox/Corpo de água/Testes

Origem: Wikipédia, a enciclopédia livre.
Documentação do módulo[ver] [editar] [histórico] [purgar]


Descrição[editar código-fonte]

Este módulo tem funções auxiliares de {{Info/Lago}}

Uso[editar código-fonte]

Outra documentação:

local building = require "Módulo:Infobox/Funções/Edifício/Testes"
local general = require "Módulo:Infobox/Funções"
local l = require "Módulo:Infobox/Funções/Localidade"
local convert = require "Módulo:Conversão"

function mainimage(args, defaultimage)
    if type( args ) ~= 'table' then
        args = { cat = args, defaultimage = defaultimage }
    end
    return {
        type = 'images',
        imageparameters =  {'imagem', 'image', 'imagem_lago'},
        defaultimages = args.defaultimage,
        defaultimagelink = 'Ajuda:Guia de edição/Como usar imagens',
        sizeparameter = 'imagem tamanho',
        uprightparameter = 'upright',
        defaultupright = args.upright,
        defaultsize =     args.size or args.tamanho,
        maintenancecat = args.cat or '!Artigos de geografia sem imagens',
        captionparameter = {'legenda', 'imagem_legenda', 'legenda_imagem', 'legenda_lago' },
        altparameter = args.altparameter or 'alternative image',
        defaultalt = args.alt,
        defaultimagealt = args.defaultimagealt,
        wikidata = args.wikidata or {property = 'P18'},
        numval = 1,
    }
end

-- Nome na língua nativo
local function nomeNativo()
    local value = function(localdata)
        nome = localdata['nome_nativo']
    lang = localdata['nome_nativo_ling']
    if lang then
        value = '(' .. lang .. ') ' .. nome
    end
    return value
    end
    return {type = 'text', value = value, ['background-color'] = maincolor, wikidata = {property = 'P1705', showlang = true}}

end

local function estimativas(localdata)
    local value = function(localdata)
        value = localdata['perimetro'] or localdata['perímetro'] or localdata['perímetro_n'] or localdata['área_n'] or localdata['área'] or localdata['volume'] or localdata['volume_n']
    if value then
        value = '<sup>*</sup> Os valores do perímetro, área e volume podem ser imprecisos devido às estimativas envolvidas, podendo não estar normalizadas.'
    end
    return value
    end
    return {type = 'text', value = value, ['background-color'] = maincolor, ['font-weight'] = 'normal' }

end

-- Comprimento
local function comprimento()
    local value = function(localdata)
        local numval = tonumber (localdata['comprimento'])
    if not numval and not localdata['comprimento_n'] then -- se os dados são incomuns, a função de chamada é deixada para se defender
        return value
    end
        local quilometro = mw.getCurrentFrame():expandTemplate{title = 'Formatnumif', args = { localdata['comprimento_n'], localdata['comprimento'], 'km' }}
        if not localdata['posição'] then
           return quilometro
        else
       return quilometro .. '<br /><small>[[Lista dos rios mais extensos do mundo|Posição]]: ' .. localdata['posição'] .. '</small>'
        end
    end
 
    return {type = 'row', label = 'Comprimento', value = value, wikidata = {property = 'P2043', targetunit = 'km', rounding = '2'}}

end

-- Largura
local function largura()
    local value = function(localdata)
        value = localdata['largura']
    
        local quilometro = convert.displayvalue( value, 'km', {showunit = true, rounding = 2, showlink = false})
      return quilometro
    end
    return {type = 'row', label = 'Largura', value = value, wikidata = {property = 'P2040', targetunit = 'km', rounding = '2'}}

end

-- Profundidade
local function profundidade()
    local value = function(localdata)
        value = localdata['profundidade']
        local metro = convert.displayvalue( value, 'm', {showunit = true, rounding = 0, showlink = false})
    end
    return {type = 'row', label = 'Profundidade', value = value, wikidata = {property = 'P4511', targetunit = 'm', rounding = '0'}}

end

-- Profundidade média
local function profundidade_med()
    local value = function(localdata)
        value = localdata['profundidade média']
        local metro = convert.displayvalue( value, 'm', {showunit = true, rounding = 0, showlink = false})
    end
    return {type = 'row', label = 'Profundidade média', value = value}

end

-- Profundidade max
local function profundidadeMax()
    local value = function(localdata)
        local numval = tonumber (localdata['prof_max'])
    if not numval and not localdata['prof_max_n'] then -- se os dados são incomuns, a função de chamada é deixada para se defender
        return value
    end
        local metro =  mw.getCurrentFrame():expandTemplate{title = 'Formatnumif', args = { localdata['prof_max_n'], localdata['prof_max'], 'm' }}
    if localdata['prof_max_n'] or localdata['prof_max'] then
       return metro
    else
       return nil
    end
    end
 
    return {type = 'row', label = 'Profundidade máxima', value = value, wikidata = {property = 'P2225', targetunit = 'm3/s', rounding = '0'}}
 
end

--perimetro
local function perimetro()
    local value = function(localdata)
        value = localdata['perimetro']
        local metro = convert.displayvalue( value, 'm', {showunit = true, rounding = 0, showlink = false})
    end
    return {type = 'row', label = 'Perímetro', value = value}

end

local function altitude()
    local value = function(localdata)
        local metro = mw.getCurrentFrame():expandTemplate{title = 'Formatnumif', args = { localdata['altitude_n'], localdata['altitude'], 'm' }}
    if localdata['altitude_n'] or localdata['altitude'] then
       return metro
    else
       return nil
    end
    end
 
    return {type = 'row', label = '[[Altitude]]', value = value}
end


local function bacia()
    local value = function(localdata)
        local numval = tonumber (localdata['área_bacia'])
    if not numval and not localdata['área_bacia_n'] then -- se os dados são incomuns, a função de chamada é deixada para se defender
        return value
    end
        local quilometro = mw.getCurrentFrame():expandTemplate{title = 'Formatnumif', args = { localdata['área_bacia_n'], localdata['área_bacia'], 'km²' }}
    if localdata['área_bacia_n'] or localdata['área_bacia'] then
       return quilometro
    else
       return nil
    end

    end
    return {type = 'row', label = '[[Bacia hidrográfica|Área da bacia]]', value = value, wikidata = {property = 'P2053', targetunit = 'sqkm', rounding = '0'}}
end

return {
    maincolor = 'D0E0F0',
    parts = {
   
        general.title( 'mapa', nil, nomeNativo(), nil),
        {type = 'table', rows = {
            nomeNativo,
        {type = 'text', value = 'outro_nome'},
            {type = 'text', value = 'nome oficial', wikidata = {property = 'P1448', showlang = true}},
        }},
        mainimage(), --desligar params extra!
        -- general.bathymetricmap(),  -- imagem extra
  
        {type = 'table', title = 'Localização', rows = {
            {type = 'row', label = 'Continente', plurallabel = 'Continentes', value = 'continente', property = 'P30'},
            {type = 'row', label = 'Região geográfica', value = {'região_geo', 'regiao_geo'}},
            {type = 'row', label = 'Localização', value = {'localização', 'local'}, property = 'P706'},
            building.adminlocation(),
            {type = 'row', label = function ( localdata )
            return localdata['regiao_adm1_rot'] or localdata['região_adm1_rót'] or 'Região administrativa'
            end, value = {'regiao_adm1', 'região_adm1'}},
            {type = 'row', label = function ( localdata )
            return localdata['regiao_adm2_rot'] or localdata['região_adm2_rót'] or 'Província'
            end, value = {'regiao_adm2', 'região_adm2'}},
            {type = 'row', label = function ( localdata )
            return localdata['regiao_adm3_rot'] or localdata['região_adm3_rót'] or 'Município'
            end, value = {'regiao_adm3', 'região_adm3'}},
            {type = 'row', label = function ( localdata )
            return localdata['regiao_adm4_rot'] or localdata['região_adm4_rót'] or 'Comuna'
            end, value = {'regiao_adm4', 'região_adm4'}},
            building.island(),
            building.mountainrange(),
            {type = 'row', label = 'Parte de', value = 'parte de', property = 'P361'},
            building.protectedarea(),
            {type = 'row', label = 'Distrito', value = 'distrito'},
            {type = 'row', label = 'Província', value = 'província'},
            {type = 'row', label = 'Município', value = 'município'},
            {type = 'row', label = 'Comuna', value = 'comuna'},
            regiaoAdmin,
            {type = 'row', label = 'Localidade mais próximas', value = {'localidades', 'cidades'}},
            {type = 'row', label = 'Maior cidade', value = 'cidade'},
            {type = 'row', label = 'Fronteira', value = 'fronteira'},
        -- general.coordms(), modelo a mostrar na caixa
            building.coordenadas(),
        }},
        {type = 'table', title = 'Dimensões', rows = {
            {type = 'row', label = '[[Altitude]]', value = function ( localdata ) return convert.displayvalue( localdata['altitude'], 'metro', {showunit = 'short'} ) end, wikidata = {property = 'P2044', targetunit = 'metro', conjtype = ' ou ', rounding = '0'}},
        comprimento,
            {type = 'row', label = 'Comprimento máximo', value = function ( localdata ) return convert.displayvalue( localdata['comprimento'] or localdata['comprimento_n'], 'km', {showunit = 'short'} ) end, wikidata = {property = 'P2043', targetunit = 'km', rounding = '2'}},
        largura,
            {type = 'row', label = 'Largura máxima', value = function ( localdata ) return convert.displayvalue( localdata['largura'] or localdata['largura_n'], 'km', {showunit = 'short'} ) end, wikidata = {property = 'P2040', targetunit = 'km', rounding = '2'}},
        perimetro,
            {type = 'row', label = 'Perímetro', value = function ( localdata ) return convert.displayvalue( localdata['perimetro'] or localdata['perimetro_n'], 'km', {showunit = 'short'} ) end, wikidata = {property = 'P2547', targetunit = 'km', rounding = '2'}},
        --area,
            {type = 'row', label = 'Superfície', value =  function ( localdata ) return convert.displayvalue( localdata['area'] or localdata['area_n'] or localdata['área'], 'sqkm', {showunit = 'short'} ) end, wikidata = {property = 'P2046', targetunit = 'sqkm', rounding = '1'} },
            {type = 'row', label = 'Profundidade média', value = function ( localdata ) return convert.displayvalue( localdata['prof_med'], 'metro', {showunit = 'short'} ) end, wikidata = {property = 'P4511', targetunit = 'm', rounding = '0'}},
            {type = 'row', label = 'Maior [[Batimetria|profundidade]]', value = function ( localdata ) return convert.displayvalue( localdata['prof_max'] or localdata['maior profundidade'], 'metro', {showunit = 'short'} ) end},
        volume,
            {type = 'row', label = 'Volume', value = function ( localdata ) return convert.displayvalue( localdata['volume'] or localdata['volume_n'],  'hm³', {showunit = 'short'} ) end, wikidata = {property = 'P2234', targetunit = {'hectometro cúbico', 'quilómetro cúbico'}, rounding = '3'}},
            {type = 'row', label = 'Clima', plurallabel = 'Climas', value = 'clima', property = 'P2564'},
            {type = "row", label = "Ilhas", value = {"nome das ilhas", "ilhas"}, wikidata = { property = 'P2670', targetvalue = 'Q23442', qualifiers = 'P1114',
showonlyqualifier = {'P1114'}}},
        }},
        {type = 'table', title = 'Hidrografia', rows = {
            {type = 'row', label = 'Tipo', value = 'tipo', property = 'P31'},
            {type = 'row', label = 'Superfície da bacia', value = function ( localdata ) return convert.displayvalue( localdata['área da bacia'], 'sqkm', {showunit = 'short'} ) end, wikidata = {property = 'P2053', targetunit = 'sqkm', rounding = '0'} },
        bacia,
            {type = 'row', label = 'Bacia hidrográfica', value = function ( localdata )    return convert.displayvalue( localdata['baciahidrografica'],  'km3', {showunit = 'short'} ) end, wikidata = {property = 'P2053', targetunit = 'sqkm', rounding = '0'}},
            {type = 'row', label = 'País(es) da<br />bacia hidrográfica', plurallabel = 'Países da<br />bacia hidrográfica', value = {'país_bacia', 'países_bacia', 'país da bacia hidrográfica', 'país soberano sobre a bacia hidrográfica'}, property = 'P205'},
            {type = 'row', label = '[[Afluente]]', plurallabel='[[Afluente]]s', value = {'alimentação', 'afluentes'}, property = 'P200'},
            {type = 'row', label = 'Retenção', value = {'retenção', 'duração da retenção'}, property = 'P3020'},
            {type = 'row', label = 'Efluente', plurallabel='Efluentes', value = {'emissário', 'efluentes'}, property = 'P201'},
            building.watershed(),
        }},
        {type = 'table', title = 'História', rows = {
            {type = 'row', label = 'Origem do nome', value = 'origem do nome', property = 'P138'},
            {type = 'row', label = 'Evento chave', plurallabel = 'Eventos chave', value = 'evento chave', property = 'P793'},
            building.owner(),
            {type = 'row', label = 'Barragem', plurallabel = 'Barragens', value = 'barragem', property = 'P4792'},
            {type = 'row', label = 'Problema ambiental', plurallabel = 'Problemas ambientais', value = 'problema ambiental', property = 'P3643'},
            {type = 'row', label = 'Estatuto patrimonial', value = 'estatuto patrimonial', property = 'P1435'},
            {type = 'row', label = 'Distinção', plurallabel = 'Distinção', value = 'distinção', property = 'P166'},
        }},
--    general.auxmap(),
    building.geoloc({pointtype = 'lago', maptype = 'relief', marker = 'wetland', markercolor = '#778BA5'}),
    estimativas,
  
    }
}