Modulo:Uzanto:Tlustulimu/Wikidata

El Vikipedio, la libera enciklopedio
Dokumentado Dokumentado

Jen kelkaj testoj

* {{#invoke:Uzanto:Tlustulimu/Wikidata|areo|id=Q657642}} {{#invoke:Uzanto:Tlustulimu/Wikidata|areoUnuo|id=Q657642}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areo|id=Q288899}} {{#invoke:Uzanto:Tlustulimu/Wikidata|areoUnuo|id=Q288899}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areo|id=Q90}} {{#invoke:Uzanto:Tlustulimu/Wikidata|areoUnuo|id=Q90}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areo|id=Q64}} {{#invoke:Uzanto:Tlustulimu/Wikidata|areoUnuo|id=Q64}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areo|id=Q20352}} {{#invoke:Uzanto:Tlustulimu/Wikidata|areoUnuo|id=Q20352}}

redonas

  • 2202 ha
  • 9,06 km²
  • 105,4 km²
  • 891,12 km²
  • 139,86 km²

Komparo de rezultoj

Se estas km²
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areo|id=Q60}} {{#invoke:Uzanto:Tlustulimu/Wikidata|areoUnuo|id=Q60}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areoKM2|id=Q60}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areoHA|id=Q60}}
  • 1213,369839 km²
  • 1213,369839 km²
  • 121336,9839 ha
Se estas ha
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areo|id=Q657642}} {{#invoke:Uzanto:Tlustulimu/Wikidata|areoUnuo|id=Q657642}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areoKM2|id=Q657642}}
* {{#invoke:Uzanto:Tlustulimu/Wikidata|areoHA|id=Q657642}}
  • 2202 ha
  • 22,02 km²
  • 2202 ha


Se vi havas demandon pri ĉi tiu Lua-modulo, tiam vi povas demandi en la diskutejo pri Lua-moduloj. La Intervikiaj ligiloj estu metataj al Vikidatumoj. (Vidu Helpopaĝon pri tio.)
-- provoj de aldonoj por Wikidata aŭ eble eĉ por WikidataGeo

local wikidata = require ("Modulo:Wikidata")

local p = {}

-- funkcio nombro por areo
function p.areo(frame)
	local id = frame.args["id"]	
	local showerrors = frame.args["showerrors"]
	local default = frame.args["default"]
	local subf = frame.args["subf"] -- ĉu subfunkcio de alia modulo aŭ ne
	if default then showerrors = nil end

	-- get wikidata entity
	local entity = mw.wikibase.getEntity(id)
	if not entity then
		if showerrors then return wikidata.printError("entity-not-found") else return default end
	end
	local n = entity:getBestStatements( 'P2046' )
	if (#n == 0) or (n[1].mainsnak.snaktype ~= "value") then
		return nil
	end	
	local x = n[1].mainsnak.datavalue.value.amount
	x=tonumber(x)
	if not subf then
		x= string.gsub(x,"%.",",") -- ŝanĝo de angla punkto al esperanta komo
	end
	return x
end

-- funkcio nombro por unuo de areo
function p.areoUnuo(frame)
	local id = frame.args["id"]	
	local showerrors = frame.args["showerrors"]
	local default = frame.args["default"]
	if default then showerrors = nil end

	-- get wikidata entity
	local entity = mw.wikibase.getEntity(id)
	if not entity then
		if showerrors then return wikidata.printError("entity-not-found") else return default end
	end
	local n = entity:getBestStatements( 'P2046' )
	if (#n == 0) or (n[1].mainsnak.snaktype ~= "value") then
		return nil
	end	
	local x = n[1].mainsnak.datavalue.value.unit
	-- x=tonumber(x)
	local y = string.sub(x,32)
	if y == "Q71226" then			-- kvadrataj kilometroj
		x = "km²"
	elseif y == "Q35852" then		-- hektaro
		x = "ha" -- hektaro		
	elseif y == "Q25343" then		-- kvadrataj metroj
		x = "m²"		
	elseif y == "Q2486298" then		-- kvadrataj centimetroj
		x = "cm²"			
	else
		x = "km²" 					-- kvadrataj kilometroj
	end
	return x
end

-- transkalkulas al kvadrataj kilometroj
function p.areoKM2(frame)
	local id = frame.args["id"]	
	local showerrors = frame.args["showerrors"]
	local default = frame.args["default"]
	local mode = frame.args["mode"]
	
	local a = p.areo({ args = { id = id, showerrors = showerrors, default=default, subf = "jes"  } })
	local u = p.areoUnuo({ args = { id = id, showerrors = showerrors, default=default  } })	
	local ru = "km²"
	
	if a ~= nil and u ~= nil then
		local r = 1
		if u == "km²" then         			-- jam estas km²
			r = a
		elseif u == "ha" then				-- el hektaroj al km²     
			r = a / 100			
		elseif u == "m²" then 				-- el metroj al km²
			r = a / 1e6
		elseif u == "cm²" then				-- el cm² al km²
			r = a / 1e10
		end	
		r= string.gsub(r,"%.",",")     		-- ŝanĝo de angla punkto al esperanta komo
		if mode == "subfunkcio" then
			return r						-- en subfunkcio la mezurunuo devas foresti, por ke kalkulado eblu
		else	
			return r .. " " .. ru			-- eldono kun unuo
		end
		
	else
		return "neniuj valoroj"
	end	
end	

-- transkalkulas al hektaroj
function p.areoHA(frame)
	local id = frame.args["id"]	
	local showerrors = frame.args["showerrors"]
	local default = frame.args["default"]
	local mode = frame.args["mode"]	
	
	local a = p.areo({ args = { id = id, showerrors = showerrors, default=default, subf = "jes"  } })
	local u = p.areoUnuo({ args = { id = id, showerrors = showerrors, default=default  } })	
	local ru = "ha"
	
	if a ~= nil and u ~= nil then
		local r = 1
		if u == "km²" then					-- el km² al hektaroj
			r = a * 100
		elseif u == "ha" then				-- jam hektaroj      
			r = a 			
		elseif u == "m²" then				-- el metroj al hektaroj
			r = a / 1e4
		elseif u == "cm²" then				-- el cm² al hektaroj
			r = a / 1e8
		end	
		r= string.gsub(r,"%.",",")     		-- ŝanĝo de angla punkto al esperanta komo
		if mode == "subfunkcio" then
			return r 						-- en subfunkcio la mezurunuo devas foresti, por ke kalkulado eblu
		else	
			return r .. " " .. ru			-- eldono kun unuo
		end	
	else
		return "neniuj valoroj"
	end	
end	


return p