"ഘടകം:Slippymap/sandbox" എന്ന താളിന്റെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം

Schoolwiki സംരംഭത്തിൽ നിന്ന്
No edit summary
No edit summary
 
(ഒരേ ഉപയോക്താവ് ചെയ്ത ഇടയ്ക്കുള്ള 5 നാൾപ്പതിപ്പുകൾ പ്രദർശിപ്പിക്കുന്നില്ല)
വരി 1: വരി 1:
local p = {}
local DEFAULT_FRAME_WIDTH = "270"
local DEFAULT_FRAME_HEIGHT = "200"
local DEFAULT_ZOOM = 10


function p.slippymap(frame)
-- Trim whitespace from arguments
     -- Get arguments from the template or directly from the page
function trimArgs(argsTable)
     local args = frame:getParent().args
     local cleanArgs = {}
    local lat = args["lat"] or "0"  -- Default latitude
     for key, val in pairs(argsTable) do
    local lon = args["lon"] or "0"  -- Default longitude
        if type(val) == 'string' then
     local text = args["text"] or "Marker"  -- Default marker text
            val = val:match('^%s*(.-)%s*$')
     local logo = args["logo"] or "https://schoolwiki.in/File:63rd_state_kalolsavam_logo.png"  -- Default logo image (complete URL)
            if val ~= '' then
                cleanArgs[key] = val
            end
        else
            cleanArgs[key] = val
        end
     end
     return cleanArgs
end


    -- Ensure lat and lon are numeric
-- Main function to generate map
    lat = tonumber(lat) or 0
local p = {}
    lon = tonumber(lon) or 0
 
    -- Generate the HTML for the map
    local mapHtml = mw.html.create("div")
    mapHtml:addClass("leaflet-map")
    mapHtml:attr("style", "width: 100%; height: 400px;")
    mapHtml:attr("id", "map")


    -- Check if the logo URL is valid (it should already be the complete URL)
-- This will display the map based on provided coordinates
     local logoUrl = logo  -- Use the logo URL passed from the template directly
p.main = function(frame)
    local parent = frame.getParent(frame)
     local parentArgs = parent.args
    local config = trimArgs(parentArgs)


     local script = mw.html.create("script")
     -- Extract coordinates (if provided)
     script:wikitext([[
     local coords = config.coordinates or config.coord
        mw.loader.using(['ext.kartographer.static']).then(function() {
            var map = L.map('map').setView([]] .. lat .. [[, ]] .. lon .. [[], 13);
           
            // Add OpenStreetMap tile layer
            L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
                maxZoom: 19
            }).addTo(map);


            // Add marker
    if not coords then
            L.marker([]] .. lat .. [[, ]] .. lon .. [[]).addTo(map)
        return ''  -- Return an empty string if no coordinates are provided
                .bindPopup("]] .. text .. [[")
    end
                .openPopup();


            // Add logo image as a custom control
    -- Configure mapframe arguments
            var logoControl = L.control({position: 'bottomleft'});
    local args = {}
            logoControl.onAdd = function() {
    args.display = "inline"
                var div = L.DomUtil.create('div', 'logo');
    args.frame = "yes"
                div.innerHTML = '<img src="]] .. logoUrl .. [[" style="width: 100px; height: auto;" />';
    args.plain = "yes"
                return div;
    args["frame-width"] = config["frame-width"] or DEFAULT_FRAME_WIDTH
            };
    args["frame-height"] = config["frame-height"] or DEFAULT_FRAME_HEIGHT
            logoControl.addTo(map);
    args.zoom = config.zoom or DEFAULT_ZOOM
        });
     args["frame-coord"] = coords
     ]])


     -- Combine HTML and script
     -- Return the mapframe code as a string
     return tostring(mapHtml) .. tostring(script)
     return frame:preprocess('{{#mapframe:' .. mw.uri.encodeArgs(args) .. '}}')
end
end


return p
return p

18:34, 6 ജനുവരി 2025-നു നിലവിലുള്ള രൂപം

ഈ ഘടകത്തിന്റെ വിവരണം ഘടകം:Slippymap/sandbox/വിവരണം എന്ന താളിൽ നിർമ്മിക്കാവുന്നതാണ്

local DEFAULT_FRAME_WIDTH = "270"
local DEFAULT_FRAME_HEIGHT = "200"
local DEFAULT_ZOOM = 10

-- Trim whitespace from arguments
function trimArgs(argsTable)
    local cleanArgs = {}
    for key, val in pairs(argsTable) do
        if type(val) == 'string' then
            val = val:match('^%s*(.-)%s*$')
            if val ~= '' then
                cleanArgs[key] = val
            end
        else
            cleanArgs[key] = val
        end
    end
    return cleanArgs
end

-- Main function to generate map
local p = {}

-- This will display the map based on provided coordinates
p.main = function(frame)
    local parent = frame.getParent(frame)
    local parentArgs = parent.args
    local config = trimArgs(parentArgs)

    -- Extract coordinates (if provided)
    local coords = config.coordinates or config.coord

    if not coords then
        return ''  -- Return an empty string if no coordinates are provided
    end

    -- Configure mapframe arguments
    local args = {}
    args.display = "inline"
    args.frame = "yes"
    args.plain = "yes"
    args["frame-width"] = config["frame-width"] or DEFAULT_FRAME_WIDTH
    args["frame-height"] = config["frame-height"] or DEFAULT_FRAME_HEIGHT
    args.zoom = config.zoom or DEFAULT_ZOOM
    args["frame-coord"] = coords

    -- Return the mapframe code as a string
    return frame:preprocess('{{#mapframe:' .. mw.uri.encodeArgs(args) .. '}}')
end

return p
"https://schoolwiki.in/index.php?title=ഘടകം:Slippymap/sandbox&oldid=2624391" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്