![]() | Bu modül şu Lua modüllerini kullanıyor: |
![]() | Çok fazla sayfada kullanılan bu modül alınmıştır. Vandalizm veya istem dışı hatalar pek çok sayfayı etkileyeceğinden ve en ufak düzenleme bile sunuculara önemli bir yük bindirebileceğinden tabidir. |
Bu Lua modülü yaklaşık 578.000 sayfada kullanılmaktadır. Lütfen yapacağınız değişiklikleri büyük ölçekli aksamaları ve sunucuya gereksiz yük binmesini önlemek için öncelikle şablonun (deneme tahtası) ile alt sayfalarında ya da kendi test ediniz. Testten geçen değişiklikler daha sonra bu sayfaya tek bir düzenlemede eklenebilir. Eğer yapmayı planladığınız değişiklikler ile istediğiniz sonucu elde edemiyorsanız tartışma sayfasında görüş alışverişinde bulununuz. |
Kullanımı
Bu modül {{}} ve {{}} şablonlarını çalıştırır. Kullanım talimatları için lütfen şablonların belgelemelerine bakın.
İzleme/bakım kategorileri
- (17)
Tüm haritalar
Ayrıca bakınız
- (Modül:Konum haritası/bilgi)
- (Modül:Konum haritası/çoklu)
require('Modül:Küresel değil') local p = {} local getArgs = require('Modül:Bağımsız değişkenler').getArgs local ulkeler = require("Modül:Ülkeler").ulkeler local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getTurkishParams(args) --Türkçe parametreleri tanıtalım args.width = args['genişlik'] or args.width args.default_width = args['varsayılan_genişlik'] or args.default_width args.float = args['pozisyon'] or args.float args.border = args['kontur'] or args.border args.caption = args['altyazı'] or args.caption args.relief = args['rölyef'] or args.relief args.AlternativeMap = args['alternatif_harita'] or args.AlternativeMap args.overlay_image = args['bindirilen_resim'] or args.overlay_image args.label = args['etiket'] or args['etiket1'] or args.label args.label_size = args['etiket_boyutu'] or args['etiket1_boyutu'] or args.label_size args.label_width = args['etiket_genişlik'] or args['etiket1_genişlik'] or args.label_width args.position = args['etiket_konumu'] or args['etiket1_konumu'] or args.position args.background = args['arkaplan'] or args['arkaplan1'] or args.background args.mark = args['işaret'] or args['işaret1'] or args.mark args.marksize = args['işaret_boyutu'] or args['işaret1_boyutu'] or args.marksize args.link = args['bağ'] or args['bağ1'] or args.link args.lat = args['enlem'] or args['enlem1'] or args.lat args.long = args['boylam'] or args['boylam1'] or args.long args.lat_deg = args['enlem_der'] or args['enlem1_der'] or args.lat_deg args.lat_min = args['enlem_dak'] or args['enlem1_dak'] or args.lat_min args.lat_sec = args['enlem_san'] or args['enlem1_san'] or args.lat_sec args.lat_dir = args['enlem_dir'] or args['enlem1_dir'] or args.lat_dir args.lon_deg = args['boylam_der'] or args['boylam1_der'] or args.lon_deg args.lon_min = args['boylam_dak'] or args['boylam1_dak'] or args.lon_min args.lon_sec = args['boylam_san'] or args['boylam1_san'] or args.lon_sec args.lon_dir = args['boylam_dir'] or args['boylam1_dir'] or args.lon_dir args.outside = args['dışarıda'] or args.outside args.places = args['yerler'] or args.places args.coordinates = args['koordinatlar'] or args['koordinatlar1'] or args.coordinates end local function ulkeBul(harita) local sayfa = harita local s, d = sayfa, "" local function bulvedeg(yazi, bir, iki) return mw.ustring.sub( mw.ustring.gsub(yazi, bir, iki), 1, -1 ) end for i=1,5 do if ulkeler[d] then break else d = d .. (d~="" and " " or "") .. bulvedeg(s, "%s.*", "") s = bulvedeg(s, "^[^%s]*%s*", "") end end return ulkeler[d] and bulvedeg(sayfa, d, ulkeler[d]) or sayfa end function p.getMapParams(map, frame) --ülke çevirici map = ulkeBul(map) if not map then error('Kullanılacak konum haritası tanımının adı belirtilmek zorundadır', 2) end local moduletitle = mw.title.new('Modül:Konum haritası/veri/' .. map) if not moduletitle then error(string.format('%q konum haritası tanımı için geçerli ad değil', map), 2) elseif moduletitle.exists then local mapData = mw.loadData('Modül:Konum haritası/veri/' .. map) return function(name, params) if name == nil then return 'Modül:Konum haritası/veri/' .. map elseif mapData[name] == nil then return '' elseif params then return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain() else return mapData[name] end end else return "-1" --error('Belirtilen konum haritası tanımı bulunamıyor. "Modül:Konum haritası/veri/' .. map .. '" mevcut değil', 2) end end function p.veri(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true}) end if not map then map = p.getMapParams(args[1], frame) end local params = {} for k,v in ipairs(args) do if k > 2 then params[k-2] = v end end return map(args[2], #params ~= 0 and params) end local hemisphereMultipliers = { boylam = { W = -1, w = -1, B = -1, b = -1, E = 1, e = 1, D = 1, d = 1 }, enlem = { S = -1, s = -1, G = -1, g = -1, N = 1, n = 1, K = 1, k = 1 } } local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction) if decimal then if degrees then error('Desimal ve DDS dereceleri her iki ' .. direction .. ' için değer verilebilir', 2) elseif minutes then error('Dakikaya ' .. direction ..' için yalnızca DDS dereceleri ile değer verilebilir', 2) elseif seconds then error('Saniyeye ' .. direction ..' için yalnızca DDS dereceleri ile değer verilebilir', 2) elseif hemisphere then error('Bir yarımküreye ' .. direction ..' için yalnızca DDS dereceleri ile değer verilebilir', 2) end local retval = tonumber(decimal) if retval then return retval end error(direction .. ' için verilen değer ' .. decimal .. ' için geçerli değil', 2) elseif seconds and not minutes then error('Ayrıca ' .. direction .. ' için değer verilen dakika olmadan saniyeye değer verildi', 2) elseif not degrees then if minutes then error('Ayrıca ' .. direction .. ' için değer verilen derece olmadan dakikaya değer verildi', 2) elseif hemisphere then error('Ayrıca ' .. direction .. ' için değer verilen derece olmadan bir yarımküreye değer verildi', 2) end return nil end decimal = tonumber(degrees) if not decimal then error(direction .. ' için verilen değer ' .. degrees .. ' için geçerli değil', 2) elseif minutes and not tonumber(minutes) then error(direction .. ' için verilen değer ' .. minutes .. ' için geçerli değil', 2) elseif seconds and not tonumber(seconds) then error(direction .. ' için verilen değer ' .. seconds .. ' için geçerli değil', 2) end decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600 if hemisphere then local multiplier = hemisphereMultipliers[direction][hemisphere] if not multiplier then error(direction .. ' için verilen değer ' .. hemisphere .. ' için geçerli değil', 2) end decimal = decimal * multiplier end return decimal end -- Finds a parameter in a transclusion of {{Coord}}. local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NSKG] %-?[%.%d]+°[EWDB]') or '', '[ °]') if para == 'boylam' then result = {result[3], result[4]} end if not tonumber(result[1]) or not result[2] then return error('Hatalı koordinat değerleri', 2) end return tonumber(result[1]) * hemisphereMultipliers[para][result[2]] end -- effectively make removeBlanks false for caption and maplink, and true for everything else -- if useWikidata is present but blank, convert it to false instead of nil -- p.top, p.bottom, and their callers need to use this function p.valueFunc(key, value) if value then value = mw.text.trim(value) end if value ~= '' or key == 'caption' or key == 'maplink' then return value elseif key == 'useWikidata' then return false end end local function getContainerImage(args, map) if args.AlternativeMap then return args.AlternativeMap elseif args.relief and map('resim1') ~= '' then return map('resim1') else return map('resim') end end function p.top(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local width local default_as_number = tonumber(mw.ustring.match(tostring(args.default_width),"%d*")) if not args.width then width = round((default_as_number or 240) * (tonumber(map('varsayılan_ölçü')) or 1)) elseif mw.ustring.sub(args.width, -2) == 'px' then width = mw.ustring.sub(args.width, 1, -3) else width = args.width end local width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; if width_as_number == 0 then -- check to see if width is junk. If it is, then use default calculation width = round((default_as_number or 240) * (tonumber(map('varsayılan_ölçü')) or 1)) width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; end if args.max_width ~= "" and args.max_width ~= nil then -- check to see if width bigger than max_width local max_as_number = tonumber(mw.ustring.match(args.max_width,"%d*")) or 0; if width_as_number>max_as_number and max_as_number>0 then width = args.max_width; end end local retval = frame:extensionTag{name = 'templatestyles', args = {src = 'Şablon:Konum haritası/stiller.css'}} if args.float == 'center' then retval = retval .. '<div class="center">' end if args.caption and args.caption ~= '' and args.border ~= 'infobox' then retval = retval .. '<div class="locmap noviewer thumb ' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'tleft' elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' then retval = retval .. 'tnone' else retval = retval .. 'tright' end retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px' if args.border == 'none' then retval = retval .. ';border:none' elseif args.border then retval = retval .. ';border-color:' .. args.border end retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. (args.border ~= 'none' and ';border:1px solid lightgray">' or '">') else retval = retval .. '<div class="locmap" style="width:' .. width .. 'px;' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'float:left;clear:left' elseif args.float == '"center"' or args.float == 'center' then retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto' elseif args.float == '"none"' or args.float == 'none' then retval = retval .. 'float:none;clear:none' else retval = retval .. 'float:right;clear:right' end retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">' end local image = getContainerImage(args, map) local currentTitle = mw.title.getCurrentTitle() retval = string.format( '%s[[Dosya:%s|%spx|%s%s]]', retval, image, width, args.alt or (map('ad') .. ' üzerinde ' .. (args.label or currentTitle.text)), args.maplink and ('|link=' .. args.maplink) or '' ) if args.caption and args.caption ~= '' then if (currentTitle.namespace == 0) and mw.ustring.find(args.caption, '##') then retval = retval .. '[[Kategori:Pages using location map with a double number sign in the caption]]' end end if args.overlay_image then return retval .. '<div style="position:absolute;top:0;left:0">[[Dosya:' .. args.overlay_image .. '|' .. width .. 'px]]</div>' else return retval end end function p.bottom(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local retval = '</div>' local currentTitle = mw.title.getCurrentTitle() if not args.caption or args.border == 'infobox' then if args.border then retval = retval .. '<div style="padding-top:0.2em">' else retval = retval .. '<div style="font-size:91%;padding-top:3px">' end retval = retval .. (args.caption or (args.label or currentTitle.text) .. ' (' .. map('ad') .. ')') .. '</div>' elseif args.caption ~= '' then -- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:Dosya:' .. getContainerImage(args, map) .. '| ]]</div>' .. args.caption .. '</div>' end if args.switcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>' elseif args.autoSwitcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. map('ad') .. ' haritasında göster</span>' end retval = retval .. '</div></div>' if args.caption_undefined then mw.log('Silinen caption_undefined parametresi kullanıldı.') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then retval = retval .. '[[Kategori:Konum haritaları ile olası hataları|Sayfa parametresi kullanılarak kaldırılanlar]]' end end if map('eğri') ~= '' or map('enlem_eğri') ~= '' or map('çakışma180') ~= '' or map('tip') ~= '' then mw.log('Removed parameter used in map definition ' .. map()) if currentTitle.namespace == 0 then local key = (map('eğri') ~= '' and 'eğri' or '') .. (map('enlem_eğri') ~= '' and 'enlem_eğri' or '') .. (map('çakışma180') ~= '' and 'çakışma180' or '') .. (map('tip') ~= '' and 'tip' or '') retval = retval .. '[[Kategori:Konum haritaları ile olası hataları|' .. key .. ' ]]' end end if string.find(map('ad'), '|', 1, true) then mw.log('Pipe used in name of map definition ' .. map()) if currentTitle.namespace == 0 then retval = retval .. '[[Kategori:Konum haritaları ile olası hataları|Adı içeren boru]]' end end if args.float == 'center' then retval = retval .. '</div>' end return retval end local function markOuterDiv(x, y, imageDiv, labelDiv) return mw.html.create('div') :addClass('od') :cssText('top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%') :node(imageDiv) :node(labelDiv) end local function markImageDiv(mark, marksize, label, link, alt, title) local builder = mw.html.create('div') :addClass('id') :cssText('left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px') :attr('title', title) if marksize ~= 0 then builder:wikitext(string.format( '[[File:%s|%dx%dpx|%s|link=%s%s]]', mark, marksize, marksize, label, link, alt and ('|alt=' .. alt) or '' )) end return builder end local function markLabelDiv(label, label_size, label_width, position, background, x, marksize) if tonumber(label_size) == 0 then return mw.html.create('div'):addClass('l0'):wikitext(label) end local builder = mw.html.create('div') :cssText('font-size:' .. label_size .. '%;width:' .. label_width .. 'em') local distance = round(marksize / 2 + 1) if position == 'top' then -- specified top builder:addClass('pv'):cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'bottom' then -- specified bottom builder:addClass('pv'):cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left builder:addClass('pl'):cssText('right:' .. distance .. 'px') else -- specified right or autodetected to right builder:addClass('pr'):cssText('left:' .. distance .. 'px') end builder = builder:tag('div') :wikitext(label) if background then builder:cssText('background-color:' .. background) end return builder:done() end local function getX(longitude, left, right) if longitude == nil then return 0 end local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) if latitude == nil then return 0 end return 100 * (top - latitude) / (top - bottom) end function p.mark(frame, args, map) if not args then args = getArgs(frame, {wrappers = 'Şablon:Konum haritası~'}) end local mapnames = {} p.getTurkishParams(args) if not map then if args[1] then map = {} for mapname in mw.text.gsplit(args[1], '#', true) do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) mapnames[#mapnames + 1] = mapname end if #map == 1 then map = map[1] end else map = p.getMapParams('Dünya', frame) args[1] = 'Dünya' end end if type(map) == 'table' then local outputs = {} local oldargs = args[1] for k,v in ipairs(map) do args[1] = mapnames[k] outputs[k] = tostring(p.mark(frame, args, v)) end args[1] = oldargs return table.concat(outputs, '#PlaceList#') .. '#PlaceList#' end local x, y, longitude, latitude longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'boylam') latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'enlem') if args.excludefrom then -- If this mark is to be excluded from certain maps entirely (useful in the context of multiple maps) for exclusionmap in mw.text.gsplit(args.excludefrom, '#', true) do -- Check if this map is excluded. If so, return an empty string. if args[1] == exclusionmap then return '' end end end local builder = mw.html.create() local currentTitle = mw.title.getCurrentTitle() if args.coordinates then --Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]] --if longitude or latitude then --error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided') --end longitude = coord2text('boylam', args.coordinates) latitude = coord2text('enlem', args.coordinates) elseif not longitude and not latitude and args.useWikidata then -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. local entity = mw.wikibase.getEntity() if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local value = entity.claims.P625[1].mainsnak.datavalue.value longitude, latitude = value.longitude, value.latitude end if args.link and (currentTitle.namespace == 0) then builder:wikitext("[[Kategori:Vikiveri'den koordinat çeken konum haritaları]]") end end if not args.useWikidata then if not longitude then error('Boylam değeri saptanamadı') elseif not latitude then error('Enlem değeri saptanamadı') end end if currentTitle.namespace > 0 then if (not args.lon_deg) ~= (not args.lat_deg) then builder:wikitext('[[Kategori:Konum haritaları ile farklı enlem ve boylam presizyonları|Derece]]') elseif (not args.lon_min) ~= (not args.lat_min) then builder:wikitext('[[Kategori:Konum haritaları ile farklı enlem ve boylam presizyonları|Dakika]]') elseif (not args.lon_sec) ~= (not args.lat_sec) then builder:wikitext('[[Kategori:Konum haritaları ile farklı enlem ve boylam presizyonları|Saniye]]') elseif (not args.lon_dir) ~= (not args.lat_dir) then builder:wikitext('[[Kategori:Konum haritaları ile farklı enlem ve boylam presizyonları|Yarımküre]]') elseif (not args.long) ~= (not args.lat) then builder:wikitext('[[Kategori:Konum haritaları ile farklı enlem ve boylam presizyonları|Desimal]]') end end if args.skew or args.lon_shift or args.markhigh then mw.log('Silinen parametre çağrıda kullanıldı.') local parent = frame:getParent() if parent then mw.log('Temel ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = (args.skew and 'eğri' or '') .. (args.lon_shift and 'lon_shift' or '') .. (args.markhigh and 'markhigh' or '') builder:wikitext('[[Kategori:Konum haritaları ile olası hataları|' .. key ..' ]]') end end if map('x') ~= '' then x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude }))) else x = tonumber(getX(longitude, map('sol'), map('sağ'))) end if map('y') ~= '' then y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude }))) else y = tonumber(getY(latitude, map('üst'), map('alt'))) end if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then mw.log('İşaret, dış bayrak koyulmadan dış harita sınırlarına yerleştirildi. x = ' .. x .. ', y = ' .. y) local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = currentTitle.prefixedText builder:wikitext('[[Kategori:Konum haritaları ile olası hataları|' .. key .. ' ]]') end end local mark = args.mark or map('işaret') if mark == '' then mark = 'Red pog.svg' end local marksize = tonumber(args.marksize) or tonumber(map('işaret_boyutu')) or 8 local imageDiv = markImageDiv(mark, marksize, args.label or mw.title.getCurrentTitle().text, args.link or '', args.alt, args[2]) local labelDiv if args.label and args.position ~= 'none' then labelDiv = markLabelDiv(args.label, args.label_size or 91, args.label_width or 6, args.position, args.background, x, marksize) end return builder:node(markOuterDiv(x, y, imageDiv, labelDiv)) end local function switcherSeparate(s) if s == nil then return {} end local retval = {} for i in string.gmatch(s .. '#', '([^#]*)#') do i = mw.text.trim(i) retval[#retval + 1] = (i ~= '' and i) end return retval end function p.main(frame, args, map) local caption_list = {} if not args then args = getArgs(frame, {wrappers = 'Şablon:Konum haritası', valueFunc = p.valueFunc}) end if args.useWikidata == nil then args.useWikidata = true end p.getTurkishParams(args) if not map then if args[1] then map = {} for mapname in string.gmatch(args[1], '[^#]+') do local val = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) if val ~= '-1' then map[#map + 1] = val end end if args['caption'] then if args['caption'] == "" then while #caption_list < #map do caption_list[#caption_list + 1] = args['caption'] end else for caption in mw.text.gsplit(args['caption'], '##', true) do caption_list[#caption_list + 1] = caption end end end if #map == 1 then map = map[1] end else map = p.getMapParams('Dünya', frame) end end if type(map) == 'table' then local altmaps = switcherSeparate(args.AlternativeMap) if #altmaps > #map then error(string.format('%d alternatif_harita girildi, ama sadece %d haritalar sağlandı', #altmaps, #map)) end local overlays = switcherSeparate(args.overlay_image) if #overlays > #map then error(string.format('%d bindirilen_resim girildi, ama sadece %d haritalar sağlandı', #overlays, #map)) end if #caption_list > #map then error(string.format('%d altyazılar girildi, ama sadece %d haritalar sağlandı', #caption_list, #map)) end local outputs = {} args.autoSwitcherLabel = true for k,v in ipairs(map) do args.AlternativeMap = altmaps[k] args.overlay_image = overlays[k] args.caption = caption_list[k] outputs[k] = p.main(frame, args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map) end end return p
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Modul belgelemesi gor degistir gecmis temizle Bu modul su Lua modullerini kullaniyor Modul Kuresel degilModul Bagimsiz degiskenlerModul UlkelerCok fazla sayfada kullanilan bu modul korumaya alinmistir Vandalizm veya istem disi hatalar pek cok sayfayi etkileyeceginden ve en ufak duzenleme bile sunuculara onemli bir yuk bindirebileceginden korumaya tabidir Bu Lua modulu yaklasik 578 000 sayfada kullanilmaktadir Lutfen yapacaginiz degisiklikleri buyuk olcekli aksamalari ve sunucuya gereksiz yuk binmesini onlemek icin oncelikle sablonun deneme tahtasi ile alt sayfalarinda ya da kendi kullanici sayfanizda test ediniz Testten gecen degisiklikler daha sonra bu sayfaya tek bir duzenlemede eklenebilir Eger yapmayi planladiginiz degisiklikler ile istediginiz sonucu elde edemiyorsaniz tartisma sayfasinda gorus alisverisinde bulununuz Kullanimi Bu modul Konum haritasi ve Konum haritasi sablonlarini calistirir Kullanim talimatlari icin lutfen sablonlarin belgelemelerine bakin Izleme bakim kategorileri Kategori Konum haritalari ile olasi hatalari 17 Tum haritalar Tum haritalarAyrica bakiniz Modul Konum haritasi bilgi Modul Konum haritasi coklu Yukaridaki belgeleme icerigi Modul Konum haritasi belge sayfasindan yansitilmaktadir degistir gecmis Kullanicilar denemelerini bu sablonun deneme tahtasi degistir fark ve test senaryosu olustur sayfalarinda yapabilirler Lutfen kategorileri belge alt sayfasina ekleyin Bu modul ile ilgili alt sayfalar icin buraya tiklayiniz require Modul Kuresel degil local p local getArgs require Modul Bagimsiz degiskenler getArgs local ulkeler require Modul Ulkeler ulkeler local function round n decimals local pow 10 decimals or 0 return math floor n pow 0 5 pow end function p getTurkishParams args Turkce parametreleri tanitalim args width args genislik or args width args default width args varsayilan genislik or args default width args float args pozisyon or args float args border args kontur or args border args caption args altyazi or args caption args relief args rolyef or args relief args AlternativeMap args alternatif harita or args AlternativeMap args overlay image args bindirilen resim or args overlay image args label args etiket or args etiket1 or args label args label size args etiket boyutu or args etiket1 boyutu or args label size args label width args etiket genislik or args etiket1 genislik or args label width args position args etiket konumu or args etiket1 konumu or args position args background args arkaplan or args arkaplan1 or args background args mark args isaret or args isaret1 or args mark args marksize args isaret boyutu or args isaret1 boyutu or args marksize args link args bag or args bag1 or args link args lat args enlem or args enlem1 or args lat args long args boylam or args boylam1 or args long args lat deg args enlem der or args enlem1 der or args lat deg args lat min args enlem dak or args enlem1 dak or args lat min args lat sec args enlem san or args enlem1 san or args lat sec args lat dir args enlem dir or args enlem1 dir or args lat dir args lon deg args boylam der or args boylam1 der or args lon deg args lon min args boylam dak or args boylam1 dak or args lon min args lon sec args boylam san or args boylam1 san or args lon sec args lon dir args boylam dir or args boylam1 dir or args lon dir args outside args disarida or args outside args places args yerler or args places args coordinates args koordinatlar or args koordinatlar1 or args coordinates end local function ulkeBul harita local sayfa harita local s d sayfa local function bulvedeg yazi bir iki return mw ustring sub mw ustring gsub yazi bir iki 1 1 end for i 1 5 do if ulkeler d then break else d d d and or bulvedeg s s s bulvedeg s s s end end return ulkeler d and bulvedeg sayfa d ulkeler d or sayfa end function p getMapParams map frame ulke cevirici map ulkeBul map if not map then error Kullanilacak konum haritasi taniminin adi belirtilmek zorundadir 2 end local moduletitle mw title new Modul Konum haritasi veri map if not moduletitle then error string format q konum haritasi tanimi icin gecerli ad degil map 2 elseif moduletitle exists then local mapData mw loadData Modul Konum haritasi veri map return function name params if name nil then return Modul Konum haritasi veri map elseif mapData name nil then return elseif params then return mw message newRawMessage tostring mapData name unpack params plain else return mapData name end end else return 1 error Belirtilen konum haritasi tanimi bulunamiyor Modul Konum haritasi veri map mevcut degil 2 end end function p veri frame args map if not args then args getArgs frame frameOnly true end if not map then map p getMapParams args 1 frame end local params for k v in ipairs args do if k gt 2 then params k 2 v end end return map args 2 params 0 and params end local hemisphereMultipliers boylam W 1 w 1 B 1 b 1 E 1 e 1 D 1 d 1 enlem S 1 s 1 G 1 g 1 N 1 n 1 K 1 k 1 local function decdeg degrees minutes seconds hemisphere decimal direction if decimal then if degrees then error Desimal ve DDS dereceleri her iki direction icin deger verilebilir 2 elseif minutes then error Dakikaya direction icin yalnizca DDS dereceleri ile deger verilebilir 2 elseif seconds then error Saniyeye direction icin yalnizca DDS dereceleri ile deger verilebilir 2 elseif hemisphere then error Bir yarimkureye direction icin yalnizca DDS dereceleri ile deger verilebilir 2 end local retval tonumber decimal if retval then return retval end error direction icin verilen deger decimal icin gecerli degil 2 elseif seconds and not minutes then error Ayrica direction icin deger verilen dakika olmadan saniyeye deger verildi 2 elseif not degrees then if minutes then error Ayrica direction icin deger verilen derece olmadan dakikaya deger verildi 2 elseif hemisphere then error Ayrica direction icin deger verilen derece olmadan bir yarimkureye deger verildi 2 end return nil end decimal tonumber degrees if not decimal then error direction icin verilen deger degrees icin gecerli degil 2 elseif minutes and not tonumber minutes then error direction icin verilen deger minutes icin gecerli degil 2 elseif seconds and not tonumber seconds then error direction icin verilen deger seconds icin gecerli degil 2 end decimal decimal minutes or 0 60 seconds or 0 3600 if hemisphere then local multiplier hemisphereMultipliers direction hemisphere if not multiplier then error direction icin verilen deger hemisphere icin gecerli degil 2 end decimal decimal multiplier end return decimal end Finds a parameter in a transclusion of Coord local function coord2text para coord this should be changed for languages which do not use Arabic numerals or the degree sign local result mw text split mw ustring match coord d NSKG d EWDB or if para boylam then result result 3 result 4 end if not tonumber result 1 or not result 2 then return error Hatali koordinat degerleri 2 end return tonumber result 1 hemisphereMultipliers para result 2 end effectively make removeBlanks false for caption and maplink and true for everything else if useWikidata is present but blank convert it to false instead of nil p top p bottom and their callers need to use this function p valueFunc key value if value then value mw text trim value end if value or key caption or key maplink then return value elseif key useWikidata then return false end end local function getContainerImage args map if args AlternativeMap then return args AlternativeMap elseif args relief and map resim1 then return map resim1 else return map resim end end function p top frame args map if not args then args getArgs frame frameOnly true valueFunc p valueFunc end if not map then map p getMapParams args 1 frame end local width local default as number tonumber mw ustring match tostring args default width d if not args width then width round default as number or 240 tonumber map varsayilan olcu or 1 elseif mw ustring sub args width 2 px then width mw ustring sub args width 1 3 else width args width end local width as number tonumber mw ustring match tostring width d or 0 if width as number 0 then check to see if width is junk If it is then use default calculation width round default as number or 240 tonumber map varsayilan olcu or 1 width as number tonumber mw ustring match tostring width d or 0 end if args max width and args max width nil then check to see if width bigger than max width local max as number tonumber mw ustring match args max width d or 0 if width as number gt max as number and max as number gt 0 then width args max width end end local retval frame extensionTag name templatestyles args src Sablon Konum haritasi stiller css if args float center then retval retval lt div class center gt end if args caption and args caption and args border infobox then retval retval lt div class locmap noviewer thumb if args float left or args float left then retval retval tleft elseif args float center or args float center or args float none or args float none then retval retval tnone else retval retval tright end retval retval gt lt div class thumbinner style width width 2 px if args border none then retval retval border none elseif args border then retval retval border color args border end retval retval gt lt div style position relative width width px args border none and border 1px solid lightgray gt or gt else retval retval lt div class locmap style width width px if args float left or args float left then retval retval float left clear left elseif args float center or args float center then retval retval float none clear both margin left auto margin right auto elseif args float none or args float none then retval retval float none clear none else retval retval float right clear right end retval retval gt lt div style width width px padding 0 gt lt div style position relative width width px gt end local image getContainerImage args map local currentTitle mw title getCurrentTitle retval string format s Dosya s spx s s retval image width args alt or map ad uzerinde args label or currentTitle text args maplink and link args maplink or if args caption and args caption then if currentTitle namespace 0 and mw ustring find args caption then retval retval Kategori Pages using location map with a double number sign in the caption end end if args overlay image then return retval lt div style position absolute top 0 left 0 gt Dosya args overlay image width px lt div gt else return retval end end function p bottom frame args map if not args then args getArgs frame frameOnly true valueFunc p valueFunc end if not map then map p getMapParams args 1 frame end local retval lt div gt local currentTitle mw title getCurrentTitle if not args caption or args border infobox then if args border then retval retval lt div style padding top 0 2em gt else retval retval lt div style font size 91 padding top 3px gt end retval retval args caption or args label or currentTitle text map ad lt div gt elseif args caption then This is not the pipe trick We re creating a link with no text on purpose so that CSS can give us a nice image retval retval lt div class thumbcaption gt lt div class magnify gt Dosya getContainerImage args map lt div gt args caption lt div gt end if args switcherLabel then retval retval lt span class switcher label style display none gt args switcherLabel lt span gt elseif args autoSwitcherLabel then retval retval lt span class switcher label style display none gt map ad haritasinda goster lt span gt end retval retval lt div gt lt div gt if args caption undefined then mw log Silinen caption undefined parametresi kullanildi local parent frame getParent if parent then mw log Parent is parent getTitle end mw logObject args args if currentTitle namespace 0 then retval retval Kategori Konum haritalari ile olasi hatalari Sayfa parametresi kullanilarak kaldirilanlar end end if map egri or map enlem egri or map cakisma180 or map tip then mw log Removed parameter used in map definition map if currentTitle namespace 0 then local key map egri and egri or map enlem egri and enlem egri or map cakisma180 and cakisma180 or map tip and tip or retval retval Kategori Konum haritalari ile olasi hatalari key end end if string find map ad 1 true then mw log Pipe used in name of map definition map if currentTitle namespace 0 then retval retval Kategori Konum haritalari ile olasi hatalari Adi iceren boru end end if args float center then retval retval lt div gt end return retval end local function markOuterDiv x y imageDiv labelDiv return mw html create div addClass od cssText top round y 3 left round x 3 node imageDiv node labelDiv end local function markImageDiv mark marksize label link alt title local builder mw html create div addClass id cssText left round marksize 2 px top round marksize 2 px attr title title if marksize 0 then builder wikitext string format File s dx dpx s link s s mark marksize marksize label link alt and alt alt or end return builder end local function markLabelDiv label label size label width position background x marksize if tonumber label size 0 then return mw html create div addClass l0 wikitext label end local builder mw html create div cssText font size label size width label width em local distance round marksize 2 1 if position top then specified top builder addClass pv cssText bottom distance px left label width 2 em elseif position bottom then specified bottom builder addClass pv cssText top distance px left label width 2 em elseif position left or tonumber x gt 70 and position right then specified left or autodetected to left builder addClass pl cssText right distance px else specified right or autodetected to right builder addClass pr cssText left distance px end builder builder tag div wikitext label if background then builder cssText background color background end return builder done end local function getX longitude left right if longitude nil then return 0 end local width right left 360 if width 0 then width 360 end local distanceFromLeft longitude left 360 the distance needed past the map to the right equals distanceFromLeft width the distance needed past the map to the left equals 360 distanceFromLeft to minimize page stretching go whichever way is shorter if distanceFromLeft width 2 gt 180 then distanceFromLeft distanceFromLeft 360 end return 100 distanceFromLeft width end local function getY latitude top bottom if latitude nil then return 0 end return 100 top latitude top bottom end function p mark frame args map if not args then args getArgs frame wrappers Sablon Konum haritasi end local mapnames p getTurkishParams args if not map then if args 1 then map for mapname in mw text gsplit args 1 true do map map 1 p getMapParams mw ustring gsub mapname s s 1 frame mapnames mapnames 1 mapname end if map 1 then map map 1 end else map p getMapParams Dunya frame args 1 Dunya end end if type map table then local outputs local oldargs args 1 for k v in ipairs map do args 1 mapnames k outputs k tostring p mark frame args v end args 1 oldargs return table concat outputs PlaceList PlaceList end local x y longitude latitude longitude decdeg args lon deg args lon min args lon sec args lon dir args long boylam latitude decdeg args lat deg args lat min args lat sec args lat dir args lat enlem if args excludefrom then If this mark is to be excluded from certain maps entirely useful in the context of multiple maps for exclusionmap in mw text gsplit args excludefrom true do Check if this map is excluded If so return an empty string if args 1 exclusionmap then return end end end local builder mw html create local currentTitle mw title getCurrentTitle if args coordinates then Temporarily removed to facilitate infobox conversion See Wikipedia Coordinates in infoboxes if longitude or latitude then error Coordinates from Module Coordinates and individual coordinates cannot both be provided end longitude coord2text boylam args coordinates latitude coord2text enlem args coordinates elseif not longitude and not latitude and args useWikidata then If they didn t provide either coordinate try Wikidata If they provided one but not the other don t local entity mw wikibase getEntity if entity and entity claims and entity claims P625 and entity claims P625 1 mainsnak snaktype value then local value entity claims P625 1 mainsnak datavalue value longitude latitude value longitude value latitude end if args link and currentTitle namespace 0 then builder wikitext Kategori Vikiveri den koordinat ceken konum haritalari end end if not args useWikidata then if not longitude then error Boylam degeri saptanamadi elseif not latitude then error Enlem degeri saptanamadi end end if currentTitle namespace gt 0 then if not args lon deg not args lat deg then builder wikitext Kategori Konum haritalari ile farkli enlem ve boylam presizyonlari Derece elseif not args lon min not args lat min then builder wikitext Kategori Konum haritalari ile farkli enlem ve boylam presizyonlari Dakika elseif not args lon sec not args lat sec then builder wikitext Kategori Konum haritalari ile farkli enlem ve boylam presizyonlari Saniye elseif not args lon dir not args lat dir then builder wikitext Kategori Konum haritalari ile farkli enlem ve boylam presizyonlari Yarimkure elseif not args long not args lat then builder wikitext Kategori Konum haritalari ile farkli enlem ve boylam presizyonlari Desimal end end if args skew or args lon shift or args markhigh then mw log Silinen parametre cagrida kullanildi local parent frame getParent if parent then mw log Temel parent getTitle end mw logObject args args if currentTitle namespace 0 then local key args skew and egri or args lon shift and lon shift or args markhigh and markhigh or builder wikitext Kategori Konum haritalari ile olasi hatalari key end end if map x then x tonumber mw ext ParserFunctions expr map x latitude longitude else x tonumber getX longitude map sol map sag end if map y then y tonumber mw ext ParserFunctions expr map y latitude longitude else y tonumber getY latitude map ust map alt end if x lt 0 or x gt 100 or y lt 0 or y gt 100 and not args outside then mw log Isaret dis bayrak koyulmadan dis harita sinirlarina yerlestirildi x x y y local parent frame getParent if parent then mw log Parent is parent getTitle end mw logObject args args if currentTitle namespace 0 then local key currentTitle prefixedText builder wikitext Kategori Konum haritalari ile olasi hatalari key end end local mark args mark or map isaret if mark then mark Red pog svg end local marksize tonumber args marksize or tonumber map isaret boyutu or 8 local imageDiv markImageDiv mark marksize args label or mw title getCurrentTitle text args link or args alt args 2 local labelDiv if args label and args position none then labelDiv markLabelDiv args label args label size or 91 args label width or 6 args position args background x marksize end return builder node markOuterDiv x y imageDiv labelDiv end local function switcherSeparate s if s nil then return end local retval for i in string gmatch s do i mw text trim i retval retval 1 i and i end return retval end function p main frame args map local caption list if not args then args getArgs frame wrappers Sablon Konum haritasi valueFunc p valueFunc end if args useWikidata nil then args useWikidata true end p getTurkishParams args if not map then if args 1 then map for mapname in string gmatch args 1 do local val p getMapParams mw ustring gsub mapname s s 1 frame if val 1 then map map 1 val end end if args caption then if args caption then while caption list lt map do caption list caption list 1 args caption end else for caption in mw text gsplit args caption true do caption list caption list 1 caption end end end if map 1 then map map 1 end else map p getMapParams Dunya frame end end if type map table then local altmaps switcherSeparate args AlternativeMap if altmaps gt map then error string format d alternatif harita girildi ama sadece d haritalar saglandi altmaps map end local overlays switcherSeparate args overlay image if overlays gt map then error string format d bindirilen resim girildi ama sadece d haritalar saglandi overlays map end if caption list gt map then error string format d altyazilar girildi ama sadece d haritalar saglandi caption list map end local outputs args autoSwitcherLabel true for k v in ipairs map do args AlternativeMap altmaps k args overlay image overlays k args caption caption list k outputs k p main frame args v end return lt div class switcher container gt table concat outputs lt div gt else return p top frame args map tostring p mark frame args map p bottom frame args map end end return p