Special:Permalink/62768046より転記; WP:AN/PE (差分)による
template>Rxy (モジュール:Location map/sandbox 2016-07-24T15:59:36 UTC (←継承元: en:Module:Location map 2016年7月4日 (月) 16:32(UTC)より) の版より。 WP:AN/PE (差分) に基づく。) |
template>Waiesu (Special:Permalink/62768046より転記; WP:AN/PE (差分)による) |
||
116行目: | 116行目: | ||
end | end | ||
return decimal | return decimal | ||
end | |||
-- Finds a parameter in a transclusion of {{Coord}}. | |||
local function coord2text(para,coord) | |||
local result = mw.text.split(mw.ustring.match(coord,'%d+%.?%d*°[NS] %d+%.?%d*°[EW]') or '', '[ °]') | |||
if para == 'longitude' then result = {result[3], result[4]} end | |||
if not tonumber(result[1]) or not result[2] then return error('不正な座標指定です。', 2) end | |||
return tonumber(result[1]) * hemisphereMultipliers[para][result[2]] | |||
end | end | ||
337行目: | 345行目: | ||
longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude') | longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude') | ||
latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude') | latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude') | ||
if not longitude and not latitude and args.useWikidata then | if args.coordinates then | ||
-- Temporarily removed to facilitate infobox conversion. | |||
-- if longitude or latitude then | |||
-- error('[[Module:Coordinates]]からの座標とローカル指定座標の両方を提供できません。') | |||
-- end | |||
longitude = coord2text('longitude', args.coordinates) | |||
latitude = coord2text('latitude', 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. | -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. | ||
local entity = mw.wikibase.getEntity() | local entity = mw.wikibase.getEntity() | ||
347行目: | 363行目: | ||
if not longitude then | if not longitude then | ||
error('緯度の値が指定されていません。') | error('緯度の値が指定されていません。') | ||
elseif not latitude then | |||
error('経度の値が指定されていません。') | error('経度の値が指定されていません。') | ||
end | end |