Module:DataMap

From Enshrouded Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:DataMap/doc

local p = {}

function p.getMapJson(pageId)
	local pageTitle = mw.title.new(pageId)
	if not pageTitle.exists then return nil end
	local pageContent = pageTitle:getContent()
    return pageContent
end

function p.toGeoJsonObject(mapData)
	return mw.text.jsonEncode(mapData)
end

function p.toGeoJson(frame)
	local pageId = frame.args[1]
	local mapJson = p.getMapJson(pageId)
	mw.log(mapJson)
	local mapData = mw.text.jsonDecode(mapJson)
	-- This assertion fails. Pain.
	-- assert(mw.text.jsonEncode(mapData) == mapJson, "jsonEncode/jsonDecode are not bijective")
	mw.log(mw.text.jsonEncode(mapData))
	local geoData = mapData and p.toGeoJsonObject(mapData)
    return mw.dumpObject(mapData)
end

return p