وحدة:Coordinates/P625

من أرابيكا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
local p = {}

-- This is used to get the coordinates of a location (property P625) e.g. 52°31'33"N, 2°4'30"W which is then formatted as 52|31|33|N|2|4|30|W for use in the {{coord}} template
p.getPipedCoords = function(frame)
	local propertyID = mw.text.trim(frame.args[1] or "")
	local input_parm = mw.text.trim(frame.args[2] or "")
	
	local entity = mw.wikibase.getEntityObject()
	if entity then
		claims = entity.claims['P625']
		if claims then
			local coords = entity:formatPropertyValues('P625', mw.wikibase.entity.claimRanks).value
			-- remove degrees, minutes, seconds - matches (digit, char) three times then N or S, then (digit, char) three times then E or W
			local result = mw.ustring.gsub(coords, "°", "|")
			local result = mw.ustring.gsub(result, "%p", "|")
			local result = mw.ustring.gsub(result, "||39", "")
			local result = mw.ustring.gsub(result, "||34", "")
			return result
		else
			return "0|0|0|N|0|0|0|W"
		end
	else
		return "0|0|0|N|0|0|0|W"
	end
end

return p