跳至內容

使用者:What7what8/testdoc

維基百科,自由的百科全書

模板功能概覽

[編輯]
地圖
About OpenStreetMaps
Maps: terms of use
680m
741yds
C
r
o
p
s
t
o
n
R
e
s
e
r
v
o
i
r
Old John
File:Old John (Leicestershire).jpg
Old John
Tower
Old John
Old John
Newtown Linford Car Park
Hallgates Car Park
Hallgates
Old John Car Park
Old John
Car Park
(Hunt's Hill)
Cropston reservoir
Bradgate House ruins
Bradgate
House
Bradgate House ruins
Bradgate House ruins
B R A D G A T E   P A R K
War memorial at Bradgate
War memorial
File:Leicestershire UK location map.svg
Old John Tower in Bradgate Park, Leicestershire

此模板提供:

  1. 靜態定位地圖: 在框架內顯示來自 OpenStreetMap (OSM) 的地圖,覆蓋全球到單個建築的任意位置和比例。
  2. 豐富的標註:
    • 可選的多個標記點(圖像或內置形狀)。
    • 文本標籤(可帶維基鏈接)。
    • 編號點(圓形、方形、三角形、菱形)。
    • 其他圖形元素(線條、框、箭頭等)。
  3. 交互式鏈接: 右上角提供鏈接,可打開全屏交互式地圖版本,包含所有標記點的詳細信息。
  4. 上下文微縮圖: 可在地圖一角顯示小型定位地圖(Minimap),提供地理上下文。
  5. 比例尺: 右下角顯示粗略的比例尺(注意:地圖投影導致比例隨緯度變化)。

核心優勢: 框架地圖能直接展示精心選擇和編輯的細節與上下文,無需用戶額外交互即可理解主題。全屏地圖則提供探索性交互功能。

核心用法與示例

[編輯]

基礎用法:顯示位置

[編輯]

僅需中心坐標和縮放級別即可顯示一個簡單的地圖。

{{OSM Location map
| coord = {{coord|53.4146|-4.3341}}    <!-- 地图中心点的纬度/经度 -->
| zoom = 15    <!-- 缩放级别:0 (全球) 到 19 (街道) -->
}}

添加標記點與標籤

[編輯]
The 'Llanfechell Triangle' standing stones are north-west of Llanfechell.

添加一個默認的紅色標記點 (Red pog) 及其文本標籤。mark-title, mark-image, 和 mark-description 參數用於增強全屏地圖的交互體驗。

{{OSM Location map
| coord = {{coord|53.4146|-4.3341}}
| zoom = 15
<!-- 标记点 -->
| mark-coord = {{coord|53.3966|-4.46204}}  <!-- 标记点的坐标 -->
| label = [[Llanfechell#Llanfechell Triangle|Llanfechell Triangle]]  <!-- 标签文本(可含维基链接) -->
| label-pos = right  <!-- 标签位置:right, left, top, bottom 或方位点如 south, southeast, east -->
| mark-title = [[Llanfechell#Llanfechell Triangle|Llanfechell Triangle]]  <!-- 全屏地图的工具提示/可点击链接 -->
| mark-image = The Llanfechell Triangle - geograph.org.uk - 1260817.jpg  <!-- 全屏显示的图片(Commons文件名,无File:) -->
| mark-description = Located in [[Llanfechell]] <!-- 全屏显示的描述文本 -->
}}
  • 標籤鏈接: 標籤中的維基鏈接會在框架地圖上顯示為鏈接。如果鏈接指向章節(如 #Llanfechell Triangle),框架地圖顯示鏈接文本,全屏地圖則可能顯示特徵圖片(如果相關頁面存在)。
  • 空白模板參考:

    {{OSM Location map
    | coord = {{coord|}}
    | width = 
    | height = 
    | caption = 
    | label = 
    | mark-coord = {{coord|}}
    | label-pos = 
    | mark-title = 
    | mark-image = 
    | mark-description = }}

添加多個標記點

[編輯]

支持無限個編號的標記點。每個標記點有自己的參數集(mark-coord1, label1, label-pos1 等)。mark1 參數集的值會被後續編號點繼承(除非被覆蓋),markD 參數集可提供更通用的默認值。

{{OSM Location map
| coord = {{coord|...}}
| zoom = ...
| mark-coord1 = {{coord|...}}  | label1 = Point 1 | ... <!-- 标记点 1 -->
| mark-coord2 = {{coord|...}}  | label2 = Point 2 | ... <!-- 标记点 2 -->
| mark-coord3 = {{coord|...}}  | label3 = Point 3 | ... <!-- 标记点 3 -->
}}
  • 繼承規則: 對於某個標記點參數(如 shape3),查找順序為:shape3 > shapeD > shape1 > 底層默認值。

使用編號點與自動標題

[編輯]
Venice
地圖
About OpenStreetMaps
Maps: terms of use
790m
861yds
12
Tronchetto
12 Tronchetto
12 Tronchetto
11
Santa Lucia
railway station
11 Venezia Santa Lucia railway station
11 Venezia Santa Lucia railway station
10
Santa Croce
10 Santa Croce (Venice)
10 Santa Croce (Venice)
9
Dorsoduro
9 Dorsoduro
9 Dorsoduro
8
Castello
8 Castello, Venice
8 Castello, Venice
7
Isola di
San Michele
7 Isola di San Michele
7 Isola di San Michele
6
Cannaregio
6 Cannaregio
6 Cannaregio
5
Santa Maria
della Salute
5 Santa Maria della Salute
5 Santa Maria della Salute
4
Bridge of
Sighs
4 Bridge of Sighs
4 Bridge of Sighs
3
Grand Canal
3 Grand Canal (Venice)
3 Grand Canal (Venice)
2
Piazza
San Marco
2 Piazza San Marco St Mark's Basilica St Mark's Campanile Horses of Saint Mark Doge's Palace
2 Piazza San Marco St Mark's Basilica St Mark's Campanile Horses of Saint Mark Doge's Palace
1
Rialto Bridge
1 Rialto Bridge
1 Rialto Bridge

使用 shape = n-circle(或 n-square, n-triangle, n-diamond)創建帶數字的標記點。auto-caption 參數可自動生成圖例。

{{OSM Location map
| coord = {{coord|...}}
| zoom = ...
| shape1 = n-circle  | mark-coord1 = {{coord|...}} | mark-title1 = Location 1 | ...
| shape2 = n-circle  | mark-coord2 = {{coord|...}} | mark-title2 = Location 2 | ...
| auto-caption = 1  <!-- 启用自动图例 -->
}}
  • 標籤位置調整: 使用 ldx(水平偏移,-左/+右)和 ldy(垂直偏移,-上/+下)微調標籤位置,避免重疊。label-pos4 = top,with-line | ldx4=8 | ldy4=-37 可將標籤移遠並用線連接。
  • 換行符: 在標籤文本中使用 ^ 進行換行(顯示實際的 ^ 用 &Hat;)。
  • 自動圖例 (auto-caption):
    • auto-caption=1: 生成基本圖例。
    • auto-caption=14: 指定最小列寬(14 em),自動分列。
    • auto-caption=collapsed columns=2: 初始摺疊的 2 列圖例。
  • 編號匹配: 框架地圖上的編號應與全屏地圖一致。全屏編號總是從 1 開始順序排列。使用 numbered= 覆蓋自動編號可能導致不匹配。

查看 {{Flushing Meadows-Corona Park map}} 模板獲取真實示例。

高級功能與技巧

[編輯]

添加圖形元素

[編輯]
地圖
About OpenStreetMaps
Maps: terms of use
350m
382yds
Powys
Neath Port Talbot
Roman road
Blast Furnaces at Banwen
Blast
Furnaces
Blast Furnaces at Banwen
Blast Furnaces at Banwen
Roman
Marching
Camp
Roman Fort
Roman Auxiliary Fort
Roman Auxiliary Fort
File:Wales relief location map.jpg
Map of the area around Banwen, South Wales, showing the Roman roads and relocation from camp to a more permanent fort.[1]

地圖可包含各種圖形,如線條 (shape=rule)、箭頭 (shape=curveA/curveC)、框 (shape=box/panel)、自定義形狀(如 diamondD, cross, fivepointstar)等。

  • 線條 (shape=rule): 使用 shape-outline 控制顏色、寬度、不透明度和樣式(實線 solid、虛線 dashed、點線 dotted、雙線 double)。例:shape-outline6=hard grey,2,60,dashed
  • 自定義尺寸: mark-size 可設置寬度和高度(mark-size=44,62),對矩形框 (box) 還可設置圓角 (mark-size=44,62,4)。
  • 透明與輪廓: 設置 shape-color=transparent 或低不透明度值(如 shape-color=hard blue, 30)創建透明形狀。shape-outline 定義輪廓。
  • 面板 (shape=panel): 創建信息框區域。文本放置在內部,label-pos 控制對齊(左/右)和換行。
  • 圖例框 (legendBox): 更便捷地添加圖例。指定位置(相對於地圖左上角的像素)、大小和條目(引用現有標記點的形狀)。例:

    | legendBox=Legend,115px65px1px,175px205px <!-- 标题,宽高边框,位置X,Y -->
    | legendItem1=Major Roman Sites,7 <!-- 文本,标记点编号 -->
    | legendItem2=Medieval Sites,1,42 <!-- 文本,标记点编号,距顶距离(像素) -->

添加微縮地圖 (Minimap)

[編輯]

在角落添加定位地圖提供上下文。

{{OSM Location map
| ...
| minimap = file bottom left  <!-- 位置:file bottom left/right, file top left/right -->
| mini-file = Location_map_UK_Leicester.svg  <!-- Commons文件名,无File: -->
| mini-width = 120  <!-- 宽度(像素) -->
| mini-height = 100 <!-- 高度(像素) -->
| minipog-gx = 38   <!-- 定位点X坐标 (0-100网格,左上角为0,0) -->
| minipog-gy = 60   <!-- 定位点Y坐标 -->
}}
  • 定位點: minipog-gxminipog-gy 在覆蓋微縮圖的 100x100 網格上定位(0,0 在左上角)。例如 (38,60)
  • 定位框: 使用 minimap-boxwidth=xxxx 是框占微縮圖寬度的百分比)替代點,框以 (minipog-gx, minipog-gy) 為中心。
  • 簡寫格式 (mini-locator):

    | mini-locator=Leicester UK ward map 2015 (blank).svg,top left,132px153px,38,60,16
    <!-- 文件名, 位置, 宽px高px, gx, gy, 框宽度% -->

弧線上的文本 (ArcText)

[編輯]
地圖
About OpenStreetMaps
Maps: terms of use
170m
185yds
A
f
o
n
R
h
e
i
d
o
l
C
A
R
D
I
G
A
N
B
A
Y
Old College, Aberystwyth
Old College
Old College, Aberystwyth
Old College, Aberystwyth
Royal Pier, Aberystwyth
Royal Pier
Royal Pier, Aberystwyth
Royal Pier, Aberystwyth
Aberystwyth railway station
Railway
Station
Aberystwyth railway station
Aberystwyth railway station
Castle
ruins
Aberystwyth Castle
Aberystwyth Castle
Location of Old College and other Aberystwyth Seafront buildings

沿曲線放置文本,適合標記河流、海岸線等。

  • 標準格式:

    | arc-coordA = {{coord|52.4109|-4.0875}}  <!-- 第一个字母的坐标 -->
    | arc-textA = Afon Rheidol <!-- 文本 -->
    | arc-angleA = -31 <!-- 起始角度(度) -->
    | arc-gapA = 4.5   <!-- 字母间距 -->
    | arc-radiusA = 0.24 <!-- 弧线半径 -->
    | arc-text-sizeA = 11 <!-- 字体大小 -->
    | arc-text-colorA = blue <!-- 颜色 -->
    | ellipse-factorA = 0.98 <!-- 椭圆因子(1=圆) -->
  • 簡寫格式 (arcA):

    | arcA = "Afon Rheidol", 52.4109, -4.0875, 11, blue, -31, 4.5, 0.24, 0.98
    <!-- 文本, 纬度, 经度, 大小, 颜色, 角度, 间距, 半径, 椭圆因子 -->

    更多示例和模式見 Template:OSM Location map/ArcText/doc

使用地圖數據

[編輯]
Orientation map for faults near Kahurangi National Park
  (red) Active faults
  (dark grey) Selected inactive faults
  (black) Antoki Fault
點擊地圖放大,並將滑鼠懸停在斷層名稱上,注意許多已知的非活動斷層未顯示,可能是斷層帶而不是簡單斷層。
地圖
About OpenStreetMaps
Maps: terms of use
30km
19miles
Kahurangi
National Park
File:New Zealand relief map.jpg
地圖
About OpenStreetMaps
Maps: terms of use
690m
752yds
Public Art in Hoogvliet
Sculpture
Relief sculpture
Other
Example using both map-data (for boundary line) and map-wdqs for geopoints from wikidata
  • map-data 添加來自 OpenStreetMap 的行政邊界、道路等(需維基數據 Q 值)。例:map-data=Q83065(萊斯特市邊界)。可添加多個 Q 值(逗號分隔)。
  • map-data-heavy / map-data-light 分別使用更粗/更細的線寬。
  • map-data-inverse 在指定邊界添加淺灰色遮罩(帶 1px 灰邊)。
  • map-data-text (全屏地圖)點擊線條時顯示的文本(可含鏈接)。
  • map-raw 直接顯示維基上的 GeoJSON 文件(如 Wikipedia:Map data/... 或 Commons 的 .map 文件)。
  • map-wdqs 執行 SPARQL 查詢並在圖上顯示結果點/線/面。

樣式控制

[編輯]
地圖
About OpenStreetMaps
Maps: terms of use
340m
371yds
River Soar
St Nicholas Church, Leicester (Saxon, built from Roman material)
Jewry Wall and Baths
St Margaret's Church, Leicester
Leicester Cathedral
Greyfriars, Leicester, Richard III's original burial site
Magazine Gateway
Trinity Hospital, Leicester
Leicester Castle
Legend
Main Roman archaeological sites
Selected Medieval sites
Roman and Medieval Leicester: some key sites.
地圖
About OpenStreetMaps
Maps: terms of use
80km
50miles
GREAT GLEN
SCOTLAND

文本顏色 (label-color):

    • 建議方案:定居點(soft grey)、水域(soft blue)、綠地(soft green)、單個地點(dark grey)、圖例/面板(dark brown)。
    • 避免過度使用紅色(hard red),易與維基紅鏈混淆。
    • 可使用標準顏色名(見下方表格)或十六進制值(如 #AAAAAA)。
    • 設置不透明度:label-color=dark blue, 40(40% 不透明度)。
  • 形狀顏色 (shape-color) 與輪廓 (shape-outline): 類似文本顏色控制,可設置不透明度和線條樣式。
  • 文本效果:
    • 換行:label 文本中使用 ^
    • 無標記的標籤: 設置 mark-size=0
    • 傾斜標籤: 使用 label-angle=角度(定居點名稱通常不傾斜)。
    • 維基標記: 標籤文本支持 **粗体**_斜体_维基链接。謹慎使用 HTML/CSS。

在信息框中使用

[編輯]
  • 如果信息框支持 map_image 參數,優先使用。
  • 或通過 |module={{OSM Location map|...}} 嵌入(例如 {{infobox school}})。
  • 可放在信息框圖片下方的標題中(需同時存在圖片)。
  • 使用 {{switcher}} 可在單個信息框中切換顯示兩個地圖實例。
  • 如果信息框默認使用 maplink 地圖,檢查是否有機制替換為更豐富的 OSM Location map

參數速查表

[編輯]

以下是所有可用參數的列表。markD 參數集提供默認值。

Code blank - OSM Location map/sandbox template, listing all the parameters
{{OSM Location map/sandbox
| coord = {{coord|  |  }}
| zoom=
| float = 
| width = 
| height = 
| fullscreen-option =
| caption = 
| title =

| minimap = 
| mini-file =
| mini-width =
| mini-height =
| minipog-gx =
| minipog-gy =
| minipog-boxwidth =
| scalemark =
    <!-- optional default settings. These 'D' parameters only create override values for subsequent marks. They make no marks of their own -->
|          shapeD = 
|    shape-colorD = 
|  shape-outlineD = 
|    shape-angleD =
|           markD = 
|      mark-sizeD = 
|       mark-dimD = 
|     label-sizeD = 
|    label-colorD = 
|    label-angleD =
|      label-posD = 
|            ldxD = <!-- short-forms of label-offset-x and -y are now available for all sets-->
|            ldyD =  

    <!-- unumbered parameter set creates mark and/or label on the map -->
|   mark-coord = {{coord|  |  }}
|         mark = 
|        shape = 
|  shape-color = 
|shape-outline =
|  shape-angle = 
|    mark-size = 
|     mark-dim = 
|        label = 
|   label-size = 
|  label-color = 
|  label-angle =
|    label-pos = 
| ldx = 
| ldy =  
|   mark-title = 
|   mark-image = 
| mark-description=

<!-- Arc text (A, B, C ... Z) no shape, mark or fullscreen effect, just text on an arc. Coords are for the first letter (max 26).-->
|     arc-coordA = {{coord| | }}   
|      arc-textA =  
|     arc-angleA =  
|       arc-gapA = 
|    arc-radiusA = 
| arc-text-sizeA = <!-- defaults to 12 --> 
|arc-text-colorA = 
|ellipse-factorA = <!-- defaults to 1.0 --> 

<!-- numbered markers. Values set in mark1 will be inherited by all other numbered markers, unless overridden by a 'D' value-->
|   mark-coord1 = {{coord| | }}
|         mark1 = 
|        shape1 = <!--image/circle/square/triangle/diamond/rule/box/ellipse/etriangle/panel -->
|  shape-color1 = 
|shape-outline1 = <!--color,width,opacity,style-->
|  shape-angle1 = 
|    mark-size1 = <!--width,height,corner-->
|     mark-dim1 = 
|        label1 = <!--use ^ to add a newline, this makes labela1 and labelb1 redundant -->
|   label-size1 = <!--includes extra parameter options: ,outline,background for text effects-->
|  label-color1 = 
|  label-angle1 =
|    label-pos1 = <!--position,[line option][,further options] -->
|          ldx1 = 
|          ldy1 =  
|   mark-title1 = 
|   mark-image1 = 
| mark-description1=

|    mark-coord2 ={{coord|  |  }}
|          mark2 =
|         shape2 =
|   shape-color2 = <!-- ... and so on for all the parameters above -->
}}

地圖顯示參數

[編輯]
參數 描述
coord 必需。 地圖中心點的緯度/經度。使用 coord={{Coord|纬度|经度}}
zoom 必需。 縮放級別 (0=全球, 19=街道)。
float 地圖浮動位置:left, center (或 centre), right (默認)。
width
height
地圖寬度和高度(像素,默認 350x250)。
caption 地圖下方的標題文本(可含維基標記、圖片、參考文獻)。
auto-caption 為編號點自動生成圖例:1(基礎)、15(最小寬度15em)、collapsed columns=2(初始摺疊的2列)。
toggletext 設置摺疊圖例的切換文本(如 '[Hide/show points list]')。
title 地圖上方的標題文本(默認居中粗體)。
legendBox
legendItem(n)
在地圖內添加圖例框。legendBox=标题,宽度px高度px边框px,位置Xpx,YpxlegendItem(n)=文本,标记点编号[,距顶距离px]
map-data
map-data-text
map-data-heavy
map-data-light
map-data-inverse
添加 OSM 數據元素(邊界、道路等,需 Q 值)。map-data-text 設置全屏點擊文本。heavy/light 控制線寬。inverse 添加外部遮罩。
map-raw 顯示原始 GeoJSON 文件(逗號分隔多個文件)。
map-wdqs
map-wdqs-type
執行 SPARQL 查詢並顯示結果 (geopoint-點, geoline-線, geoshape-面)。
minimap 微縮地圖位置:file bottom left/right, file top left/right
mini-file Commons 微縮地圖文件名(無 File:)。
mini-width
mini-height
微縮地圖寬高(像素)。
minipog-gx
minipog-gy
微縮地圖上定位點的網格坐標 (0-100, 左上角0,0)。
minimap-boxwidth 使用定位框(寬度百分比)替代點。
mini-locator 微縮地圖簡寫:文件名,位置,宽度px高度px,gx,gy,框宽度%
scalemark 比例尺:1 顯示 (默認),0 隱藏,數值 向左移動像素。
magnify (2025+) 放大中心區域 (1.0-2.0)。
nolabels 1 隱藏 OSM 基礎地圖上的標籤(道路名可能仍顯示)。

標記點默認值 (D 參數集)

[編輯]

這些參數為後續標記點設置覆蓋默認值,本身不創建標記點。

參數 描述
shapeD 默認形狀 (image, circle, box, rule 等)。
shape-colorD 默認形狀填充色。
shape-outlineD 默認形狀輪廓 (颜色,宽度,不透明度,样式)。
shape-angleD 默認形狀旋轉角度。
markD 默認標記圖像文件 (Commons)。
mark-sizeD 默認標記尺寸 (宽[,高[,圆角]])。
label-sizeD 默認標籤字體大小。
label-colorD 默認標籤文字顏色。
label-angleD 默認標籤旋轉角度。
label-posD 默認標籤位置 (left, right, top, bottom, center, 方位點)。
ldxD
ldyD
默認標籤水平/垂直偏移(像素, -左/-上, +右/+下)。

標記點參數

[編輯]
參數 描述
mark-coord 必需。 標記點的緯度/經度 ({{Coord|...}})。
mark 標記圖像文件 (Commons)。默認為 Red pog.svg
shape 標記形狀 (image, circle, square, triangle, diamond, box, panel, rule, curveA/C, n-circle 等, 或 clip-path 形狀如 diamondD, cross)。
shape-color 形狀填充色(可加不透明度)。
shape-outline 形狀輪廓 (颜色,宽度px,不透明度%,样式)。
shape-angle 形狀旋轉角度(度)。
mark-size 尺寸 (宽px[,高px[,圆角px]])。設 0 僅顯示標籤。
label 標籤文本。用 ^ 換行。支持維基標記 (**粗体**, _斜体_, 链接, 謹慎使用 )。
label-size 標籤字體大小(可加 ,background, ,outline, ,paleground, ,beigeground 增強可讀性)。
label-color 標籤文字顏色(建議使用 OSM 柔和色調)。
label-angle 標籤旋轉角度(度)。
label-pos 標籤位置 (left/right/top/bottom/center/方位点)。可加選項:,with-line, ,n-line, ,mark-line,线宽,样式,间隙, ,photo-panel,图片尺寸,面板宽,面板高
ldx
ldy
標籤水平/垂直偏移(像素)。
mark-title 全屏地圖的工具提示/可點擊鏈接。設 none 排除在全屏外。含鏈接會使框架地圖標記點也可點擊。
mark-image 全屏地圖顯示的圖片(Commons文件名,無 File:)。
mark-description 全屏地圖顯示的描述文本。
numbered 覆蓋編號形狀的自動編號(文本)。

弧線文本參數 (A, B, C ... Z)

[編輯]
參數 描述 簡寫參數
arc-coordA 弧線文本起點坐標 ({{Coord|...}})。
arc-textA 顯示的文本。 arcA = "文本", 纬度, 经度, 大小, 颜色, 角度, 间距, 半径, 椭圆因子
arc-angleA 文本起始角度(度)。
arc-gapA 字母間距因子。
arc-radiusA 弧線半徑因子。
arc-text-sizeA 字體大小(默認 12)。
arc-text-colorA 文字顏色。
ellipse-factorA 橢圓因子(1=圓,<1壓扁垂直,>1壓扁水平)。
[編輯]
  • OSM Location Map:
    • 優勢: 框架地圖能直接展示豐富的手工定製細節(多種標記、形狀、文本標籤、圖形、覆蓋層)。提供更精細的控制和表達力,適合需要特定上下文的地圖。
    • 特點: 靜態框架 + 全屏交互鏈接。文本標籤在地圖上直接可見。
  • Maplink:
    • 優勢: 更側重自動化(通過維基數據 Q 值添加點/線/面)。通常在信息框中使用,代碼可能更簡潔。
    • 特點: 框架地圖功能較基礎,主要依賴全屏交互。文本標籤通常在全屏顯示。
  • 總結: OSM Location map</code> 更适合需要'''在框架地图中直接呈现复杂、定制化信息'''的场景。<code>{{Maplink}} 更擅長快速生成基於維基數據的自動化地圖。兩者功能有部分重疊,但核心目標不同。

更新歷程

[編輯]
  • 當前版本 (2025+): 核心基於 Lua/Scribunto 模塊。使用 MediaWiki 的 Kartographer 擴展 (<mapframe>) 渲染 OSM 基礎地圖。模塊計算坐標轉換(緯度/經度 -> 地圖像素),並使用 內聯 CSS 在地圖上疊加圖形和文本元素。這使得地圖成為頁面的「實時」部分(支持維基標記、鏈接)。
  • 優勢: 高性能(相比舊方案加載快 5 倍)、低資源消耗、支持無限標記點、功能擴展性強。
  • 歷史: 曾依賴 {{Graph:Street map with marks}} 和 Vega 庫 (2016-2023)。2023 年 Vega 因安全風險被移除,臨時方案使用純維基模板 + Kartographer。2025 年遷移到 Lua 模塊解決性能瓶頸。
  • 全屏地圖: 通過 <maplink> 實現,提供平移、縮放、查看附近文章、顯示標記點詳情等功能。

核心背景:服務中斷與恢復 (2024 年更新)

  • 問題起源 (2023 年 4 月): 維基媒體基金會 (WMF) 發現安全漏洞,停用了關鍵的 'Graph' 模塊。該模塊負責三件事:顯示正確的 OSM 地圖區域、坐標轉換(墨卡托轉頁面坐標)、生成地圖上的符號/圖像/文本。
  • 預期與延宕: 最初計劃短暫停用以升級到 Vega v5,但因安全顧慮、性能問題(加載時間長)和未來維護資源的不確定性,升級受阻,停用期延長。
  • 技術突破與解決方案:
    • 利用停用期解決了墨卡托坐標轉換的數學問題,使得坐標轉換可通過維基文本實現。
    • 探索並利用了維基百科內置的 CSS 圖形功能和 {{maplink}} 的「覆蓋層」(overlay)能力。
    • 基於以上兩點,成功重建了 OSM 位置地圖的核心功能(顯示、坐標、符號),無需再依賴 'Graph' 模塊或 Vega 引擎
  • 目標: 新版本旨在讓約 5,600 張現有地圖恢復接近原始設計的顯示效果(優於僅顯示標記點的臨時方案),並增加新功能。

新版本 (CSS 版) 的局限與差異 (截至 2024 年 3 月)

  1. 文本定位 (已解決): 初期最大問題是文本放置。現已可靠解決,文本可精確放置在符號四周「合適的距離」處。
    • 注: 臨時的 jdx= 參數已廢棄,可從模板調用中移除。
  2. 尺寸與位置差異: 因代碼和調用方式不同,新版的圖形和文本大小、位置可能與舊版略有差異。目標是大多數地圖視覺上相似。
  3. 弧形文本 (ArcText):
    • 舊版需要大量調整(隨縮放和緯度變化)。
    • CSS 版更穩定可預測,但結果與舊版不同,可能需要手動編輯適配。
    • 改進: 文本渲染更優,彎曲更平滑。
  4. 光暈功能 (Halo): 因簡化需求,該少用功能在重寫中被省略。可用 shape-outline 模擬類似效果(需社區討論是否恢復)。
  5. 大型圖像/覆蓋層定位: 因尺寸模型根本性改變及統一形狀/圖像尺寸的決定,大型透明覆蓋層的位置可能與舊版不同,可能需要重新調整大小和位置。

現已可用的新功能 (2024 年 CSS 版)

  • 全屏鏈接: 直接利用 { {maplink}} 在右上角提供的「全屏鏈接」框,替代了舊版圖注頂部的文本鏈接。
  • 標記點可點擊鏈接:
    • 首次實現點擊地圖標記點可跳轉到對應維基條目。
    • 利用 mark-title 中的信息(也用於自動圖注和全屏)。
    • 行為:維基鏈接第一個提供的鏈接(如有多個),鼠標懸停時顯示鏈接提示。無鏈接的標記點無動作。
    • 待討論: 是否需要視覺提示表明可點擊?(如演示地圖中的 5 個可點擊點)。
  • 行政區劃邊界 (重大新增):
    • 之前僅限於全屏顯示的「願望清單」功能。
    • 現在可直接在頁面內的地圖框架中顯示邊界(及潛在的其他線狀要素)。
    • 限制:只能繪製實線(不能虛線等),但可設置高透明度融入背景。
    • 使用方法:通過 map-data 設置,利用維基數據頁面上的 'Qvalues'。
  • 自動圖注分欄: auto-caption= 現在可指定欄寬(單位 em),將編號項列表分成多欄顯示。
  • 繪製順序:
    • 舊版:先畫所有形狀,再覆蓋文本。
    • 新版:每個元素(形狀、標籤、編號文本)按順序繪製,後繪製的可能覆蓋先繪製的。
    • 建議: 將重要項目(mark1)視為頂層,編號更大的在下層。若遮擋重要信息,可能需要重新編號。也可用下文的連接線功能將標籤移出擁擠區。
  • 標籤偏移簡寫: 使用 ldx (水平偏移) 和 ldy (垂直偏移) 替代 label-offset-x/y。正值向右/下,負值向左/上 (例: ldx4=-25| ldy4=-15)。廢棄的 jdx= 已無效。
  • 多值參數 (簡化模板調用): 多個參數現在接受逗號分隔值:
    • mark-size=: [寬度(px), 高度(px), 圓角半徑(px)] (僅寬度必需)。
    • shape-color=: [顏色, 不透明度(0-100)] (兼容性:1=全透明(舊習慣),100=不透明,0/未定義=不透明)。取代 shape-opacity=
    • shape-outline=: [顏色, 線寬(px), 不透明度(0-100), CSS線型(solid/dotted/dashed/double等)]。例: shape-outline=red,8,30,solid 可模擬光暈。
    • label-pos=: 新增了多種繪製連接線的方式(見下文「新圖形元素」)。
  • 新圖形元素 (均可用於最多60個標記點):
  • 地圖
    About OpenStreetMaps
    Maps: terms of use
    30km
    19miles
    Shapes with one size value:






    Each can be assigned
    mark-size=, shape-color=,
    shape-outline=, shape-angle=,
    plus a set of label parameters.
    Some shapes can set a mark-size
    with both height and width values
    Eiffel Tower
    File:Eiffel Tower from north Avenue de New York, Aug 2010.jpg
    Photo-
    panel
    Eiffel Tower
    Eiffel Tower
    Example
    label-pos adds line-drawing
    features by using 'with-line',
    'line-next', 'n-line' or
    to a 'photo-panel'
    Example
    Example
    C-DAC
    or use numbered=
    C-DAC Centre for Development of Advanced Computing
    C-DAC Centre for Development of Advanced Computing
    17
    n-shape auto-number
    17 17 (number)
    17 17 (number)
    Image
    default is shape=image
    mark=Red pog.svg
    Image
    Image
    panel: mark-size=150,35,2
    and text is put inside
    shape=box
    mark-size=30,12
    shape=ellipse
    shape=square
    with double outline
    shape=circle
    with open centre
    shape=box
    with rounded corners
    Shapes can have variants:
    rule
    ruleA
    curveC
    triangle
    diamond
    square
    circle
    Example shapes now available using OSM Location map/sandbox. This also gives an idea of how a legend can be incorporated within a map.
    • 基礎形狀 (circle, square, diamond, triangle/triangle-up): 寬度=高度,只需一個 mark-size 值。可旋轉(shape-angle=)。可設置顏色和輪廓(shape-color/outline=)。注意: 三角形不能有輪廓(CSS限制)。可加 n-l- 前綴在形狀上顯示數字/字母。
    • 可變形狀 (box, ellipse, triangle): 可設不同寬高 (例: mark-size=34,14)。box 可加第三個值設圓角 (例: mark-size=34,34,3)。
    • 線 (rule): 在坐標點處放置一條線。mark-size= 設置長度。若「高度」>1,則應用 shape-outline 屬性,繪製雙線 (間隙=高度值,例: mark-size=120,10)。
    • 帶箭頭的線/弧 (ruleA, curveA(逆时针), curveC(顺时针)): mark-size= 設長度,shape-angle= 旋轉,shape-outline= 設線及箭頭顏色/粗細/樣式。
    • 信息面板 (panel): 不同於點狀標記。用於圖例/信息框。
      • 坐標代表面板左上角(其他形狀是中心點)。
      • 文本默認嘗試放在面板內部 (text-pos=left 在左上角左對齊)。
      • 類似 box, mark-size=W,H,R 設置寬、高、圓角。
    • 圖像 (image): 默認形狀。mark= 指定共享資源文件名。未指定則顯示紅色標記點(pog)。圖像現在可加輪廓(shape-outline=)。圖像比例固定(不被擠壓/拉伸)。非正方形圖像最好提供 mark-dim=mark-size=宽,高 以優化標籤定位。
  • 連接線 (作為 label-pos 的附加選項): 有四種方式向地圖添加連接線 (with-line, n-line, mark-line, photo-panel):
    • with-line:ldx/ldy 指定一個偏移點,從標記畫線到此點,標籤放在該點旁 (例: label-pos2=left,with-line|ldx2=-15|ldy2=-3)。用於將擁擠區域的標籤移到清晰位置。
    • n-line: 類似 with-line,專用於帶編號的形狀。用於將重疊點的編號「拉」出來放在線端。編號也可作為維基鏈接。
    • mark-line: 從當前形狀 (markX) 向前一個形狀 (markX-1) 畫連接線。不涉及 ldx/ldy 或標籤。label-posX=right, mark-line, 2 畫 2px 粗的線,顏色由 shape-outlineX 決定。可添加線型(solid/dashed/dotted)和間隙大小(>1 畫雙線,例: label-pos-top, mark-line,3, dotted,6)。
    • photo-panel: 創建帶照片(來自 mark-image=)和文本的面板,並帶連接線。需要尺寸參數 (例: label-pos=left,photo-panel,0.8,110)。面板位置由 ldx/ldy 設定。可設置高度 (例: label-pos=left,photo-panel,0,90,24 創建無照片文本面板)。
  • 標籤 (label=) 增強:
    • 可顯示帶懸停效果的維基文本(使用 SVG 標記時默認啟用)。
    • 可使用 ^ 添加換行符 (例: label=Chester~field ^Railway ^Station)。
    • label-size= 新增選項:添加米色背景 (background) 覆蓋複雜底圖;添加 1px 黑色圓角輪廓 (outline) 突出標籤 (例: label-size3=13,background,outline)。
    • 其他控制:label-pos=, label-size=, label-color= (含不透明度), label-angle=, ldx/ldy=

重大升級:Lua 重寫 (2025 年)

  • 核心優勢:
    • 點數無上限: 移除之前 60 個標記點的限制。
    • 性能飛躍: 顯著減少處理時間和資源占用,頁面加載速度提升約 80%。
    • 完全兼容: 功能等同於 CSS 版,地圖顯示效果「近乎相同」。
    • 弧形文本擴展: 最多支持 26 條弧線 (使用 arc-textAarc-textZ),替代舊版的 A, B, C。(註: 過多弧線可能影響可讀性)。
  • 新增與改進功能:
    • 標籤格式化:
      • label-spacing=:增加字母間距(像素值,默認 0)。
      • label-height=:設置多行標籤的行高(相對於 label-size 的百分比,默認 120)。
    • 標籤位置 (label-pos): 除了 top/bottom/left/right,新增 8 個羅盤點選項 (northeast, southeast, southwest, northwest, north, east, south, west),減少對 ldx/ldy 調整的依賴。
    • 自動圖注 (auto-caption=):
      • 可指定欄數 (columns=N) 替代欄寬。
      • 可添加 collapsiblecollapsed 使列表可摺疊/默認摺疊 (例: auto-caption=30 collapsed)。
      • 默認切換文本為 [Hide/show caption list],可用 toggletext= 自定義 (例: auto-caption=collapsed columns=2| toggletext=[Show/Hide the list of battles])。
    • 高亮功能 (highlight=): 當同一地圖用於多個頁面時,可突出顯示與當前頁面主題相關的特定點。定義 shapeH, shape-outlineH, shape-colorH 等屬性,然後在調用模板時指定 highlight=点编号 (例: {{myOSMmap|highlight=4}})。模板內需傳遞 |highlight={{{highlight|}}}}
地圖
About OpenStreetMaps
Maps: terms of use
340m
371yds
squareD (shape-angle=45)
sevenpointstarD (black, no outline)
fivepointstar(yellow with black outline)
diamondDD(white with fuchsia outline)
circleD (no outline)
squareDD (no outline)
Map Key
Defended site
Market town
Notable place
'D' indicates an additional 'outer line' and DD is a 'double outer line'
    • 新形狀 (基於 CSS clip-path): 引入一系列帶單層(D)或雙層(DD)「外線」(非真正輪廓)的實心形狀:
      • squareD, squareDD, triangleD, triangleDD, circleD, circleDD, diamond, diamondD, diamondDD
      • thincross, cross, crossD, fivepointstar, fivepointstarD, sixpointstar, sixpointstarD, sevenpointstar, sevenpointstarD, eightpointstar, eightpointstarD, ring
      • (boxD/DD, ellipseD/DDsquareD/DD, circleD/DD 的同義詞)。
    • 圖例框 (legendBox=, legendItem(n)=): 在地圖固定位置(相對於左上角,單位px)添加解釋性圖例框。定義尺寸、位置、標題、背景/文本顏色。legendItem 指定解釋文本、關聯點編號及距框頂距離 (px)。自動化程度高,但 panel 形狀提供更精細控制。
    • 放大 (magnify=): 按比例放大所有地圖要素(底圖、標籤、形狀)。用於在縮放級別之間提供中間尺寸。
      • 作用: 當某縮放級別要素太小,而下一級又過大時,提供折中 (例: magnify=1.4 放大 1.4 倍)。
      • 特點: 比例尺數值會相應調整。底圖細節不增加(與真正提高 zoom 不同)。地名也會放大(若太大可 nolabels=1 關閉並自行添加標籤)。
      • 限制: 只能放大 (>1),不能縮小 (<1)。推薦範圍 1.2-1.5。當前存在與 float=centre 的兼容性問題,建議使用 left/right
    • 複雜地圖能力: 模板現在能處理高度複雜的 OSM 地圖,支持標籤/符號層、多個數據層(如維基數據中的輪廓、通過 map-raw= 傳遞的 GeoJSON)。允許通過點擊交互探索更多數據(如地質信息、火山細節),同時初始視圖保持清晰抽象。
Sams Creek Dyke
<mapframe>: 不能解析JSON:語法錯誤
About OpenStreetMaps
Maps: terms of use
2km
1.2miles
<maplink>: 不能解析JSON:語法錯誤
Map showing
  (gold) approximate surface deposits Sams Creek Dyke[2]
Click on square symbol to zoom out, and enable mouse over of names of both parts of the dyke and faults. The darker shading is the area outside the Kahurangi National Park
  (red) Active faults
  (dark grey) Selected inactive faults


另請參閱

[編輯]
  • Template:Location map - 基礎單點定位圖。
  • Template:Location map+ - 多點定位圖。
  • Template:Location map many - 另一種多點定位圖。
  • Commons:Category:Map pointers - 大量標記點圖標。
  • Template:Overlay - 在圖片上疊加編號標籤。
  • Wikipedia:WikiProject Maps - 維基地圖項目資源。
  • Module:OSM Location map - 本模板依賴的 Lua 模塊。
  • Template:OSM Location map/examples - 示例地圖。
  • Template:OSM Location map/Return to service - 2025 年更新詳情和功能演示。
  • Template:OSM Location map/ArcText/doc - 弧線文本詳細指南。
  • Help:Extension:Kartographer - Kartographer 擴展文檔。
  1. ^ Royal Commission on the Ancient and Historical Monuments of Wales. Glamorgan Inventory, Vol 1, Part 2: The Iron Age and Roman Occupation. 1976: 100. 
  2. ^ Tullock 1992,Fig.1.