维基旅行:如何使用动态地图
需要一个动态更新的地图,以便在添加、更新和删除列表时同步更新吗?本页将告诉你如何操作。
嵌入动态地图
将{{Mapframe}}模板放置在页面上你希望嵌入地图出现的位置。默认情况下,它会显示在页面的右侧。它通常应该放在“交通”标题正下方,这样就不会离后面的列表太远。
语法是:
{{Mapframe|纬度 |经度 |zoom=缩放级别 |height=高度 |width=宽度 |staticmap=图像文件 |align=对齐}}
一些说明:
- 纬度是十进制度数的纬度坐标(2到5位小数),例如6.78或23.54321。
- 经度是(2到5位小数)的十进制度数经度坐标。
- 不要在坐标前加上lat=和long=这两个词,尽管你在列表模板中会这样做,因为它们在Mapframe中不起作用。
- 缩放级别是1到18之间的数字,指定了地图在页面上初始显示的放大或缩放级别(读者之后可以调整)。对于城镇地图,13到15的缩放级别通常是合适的。可选——默认值为14。
- 如果省略(纬度,经度)和缩放级别,{{mapframe}}单独使用现在将默认以适合当前文章所有兴趣点(POI)的比例和位置来显示。这些默认值通常已经足够。
- 高度和宽度是以像素为单位,地图在页面上显示的尺寸。可选——默认高度和宽度均为420px。
- 图像文件是可选的,表示静态地图图像的普通png或svg文件的文件名。可选——如果指定,地图框架的下角将显示一个文本为“查看静态地图”的超链接。
- 对齐是地图框架的对齐方式。可选——默认值为右对齐(其他值为“left”和“none”(居中))。
- group是另一个可选参数,可以指定地图上要显示的标记(listing, see, do, buy, eat, drink, sleep)的类型。
- name是另一个可选参数,用于定义地图下方一个非默认的标题。这通常有助于移除标题中的消歧义词。
当文章中的每个列表同时设置了lat和long属性时,在嵌入的动态地图上会自动出现按顺序编号的彩色图标,这些图标代表兴趣点(PoI)。
地图不够详细?
也许你试图添加地图的区域不够详细,只有一条主要道路,而实际上有几十条。这意味着基础地图数据不足,你需要前往OpenStreetMap,并使用他们的iD编辑器或JOSM等编辑器。要添加道路和建筑物,请在卫星图像上描绘。如果道路没有名称,请为它们命名。
如果你觉得不方便,可以在维基旅行:动态地图探险或维基旅行:地图请求页面提出,也许会有人来帮助你完善OpenStreetMap。
地理模板

你可能已经注意到屏幕顶部有一个
小地图图标,它链接到覆盖文章区域的大地图。没有看到?使用GeoMap,并在左侧选择Geo选项来填写{{geo}}模板,它可能看起来像{{geo|1.3421|129.0122|zoom=14}}。数字标记城市或地区的中心,而缩放数字决定了地图的比例。1覆盖整个地球,18标记城市街区级别。
添加图片

在列表中可以添加一个额外的图像属性,这样当点击兴趣点时,微小的图像就会在动态地图上弹出。这张预览图可以通过点击放大。
语法:image=文件名
示例
{{listing | name=游客中心 | ..... | image=Hornburg Tourismus-Amt.jpg | ..... }}
{{see | name=老忠实喷泉 | ..... | image=Old Faithful Rainbow.jpg | ..... }}
.... = 其他参数:| lat= | long= | etc | etc
动态地图放在哪里?
放在“交通”标题的正下方。
如果放在那里,使用维基旅行手机版的用户(它打开时所有部分都是折叠的,除了引言段落)会知道点击哪个部分来打开动态地图。如果因为某种原因将其添加到其他位置,请在编辑摘要或文章的讨论页中解释原因。
地理编码列表
这些数字是什么意思?
维基旅行使用十进制度数系统来表示地理坐标。每个列表都需要一对唯一的数字,称为纬度和经度,它们代表其在地图上的位置。它们也称为地理数据、坐标、coords,或简称lat和long。为兴趣点添加坐标称为地理编码。

纬度指的是南北方向,范围从-90.0000°到90.0000°。负纬度位于南半球,正数纬度位于赤道以北。
经度表示位置是在0.0000°(经过格林威治,英格兰)的本初子午线的东边还是西边,范围从-180.0000°(西)到180.0000°(东)。这里我们不使用纬度/经度的分钟或秒(例如60° 12' 34" N 22° 15' 22" E),你可能在别处看到过;这些坐标需要转换。
小数位数呢?它们衡量坐标的精度,即预期的误差有多大。由于千米最初的定义使得地球周长为40,000 千米,所以
- 一度纬度等于(10,000 ÷ 90) 千米,即111.1 千米(69.0 英里)
- 一度经度等于赤道上的111.1 千米(69.0 英里),在北纬或南纬60°处为55.56 千米(34.52 英里),在两极处为零。
使用“一度约等于100 千米(62 英里)”的近似值来估算纬度和经度,可预期的近似精度为:
- 0位小数:精度约±50 千米(31 英里)
- 1位小数:精度约±5 千米(3.1 英里)
- 2位小数:精度约500 米(1,600 英尺)
- 3位小数:精度约50 米(160 英尺)
- 4位小数:精度约5 米(16 英尺)
超过五位小数通常是不需要的——如果你在附近却找不到地点,那说明有问题——尽管一些导航和地图软件可以提供纳米级别的精度。每一对纬度和经度必须有相同的小数位数,即使这意味着需要添加尾随零(不同数量有时可以工作,但可能会在下次更新时失效)。
收集地理坐标
地理数据存在类似版权的问题,尽管不严格是版权,所以个人地理数据和OpenStreetMap(OSM)坐标比所有其他派生来源更受欢迎。在不太麻烦的情况下,请注明你的来源。
对于维基旅行用户来说,最方便的工具是GeoMap,它提供了一种非常快速简单的方法来获取单个位置的坐标,以及Geobatcher,它提供了一种方法来一次性查找和定位整个维基旅行文章的坐标,而无需输入或复制粘贴坐标本身!
每个列表都有一个根据其类型而定的单独图标。像See、Do、Buy、Eat和Sleep这样的特定列表模板应该只在它们各自的章节中使用。对于Get in和Cope等其他章节,请使用通用的{{listing}}模板。
每个章节中的自动编号从“1”开始。通用列表模板例外,它在整个文章中进行编号。
方法1:GPS

使用GPS或智能手机前往地点,并以以下格式添加列表:lat=12.34567 | long=45.67890
方法2:动态地图
如果兴趣点的位置已知,请打开poimap2,方法是点击目的地页面右上角的地图图标,然后在动态地图上右键点击特定地点。会弹出一个窗口显示坐标。将此数据复制并粘贴到相应的列表中。
方法3:GeoMap
打开GeoMap。输入地址,例如33, Long Row, Nottingham或Wall Street Bar, Roppongi。搜索是多语言的,但仅限于OSM识别的术语。点击红点标记。然后通过复制粘贴将显示的数值传输到文章中。
方法4:Geobatcher
使用Geobatcher一次查找和绘制多达100个坐标。

- 在第一个字段中输入城市和/或国家。
- 选择按名称或地址搜索。按名称搜索会匹配OpenStreetMap的兴趣点数据库,而按地址搜索则依赖于街道地址,可能存在间隙(例如,找不到20 Main St和50 Main St之间的20 Main St)。
- 从维基旅行文章的编辑选项卡中,将列表复制粘贴到大的文本框中。
- 按下Find coords按钮。1个列表通常需要1秒来查找。
- 已找到坐标的列表将被绘制,而没有坐标的列表将在地图上用问号标记。
- 拖放标记以调整坐标。如果你不知道其他列表的位置,请按下Remove ?s按钮。
- lat/long属性已插入到第三个文本框中。
- 将第三个文本框中的列表复制回维基旅行。
奖励:使用地图上方的文本框搜索OSM,返回的坐标将显示并绘制在红点标记上。
方法5:ShareMap

ShareMap.org – 一个开放的、创意共享的社交地图工具(http://sharemap.org)可用于生成文章的整个兴趣点列表。使用ShareMap,用户可以轻松地使用搜索服务(Nominatim),导入OSM数据(向导或XAPI查询),甚至校准旧的光栅地图(请注意,创建的内容必须是CC许可)。
详细的教程录屏可以在这里找到 - http://www.youtube.com/watch?v=Xc5F98q87uo
方法6:OSM
在OpenSteetMap上搜索你的列表。然后右键点击它并选择“show address”。这将在左侧面板(第二行)显示lat/long。还可以使用“Query features”来获取单个兴趣点的位置。
方法7:Google Maps
如果可能,请避免使用此方法,因为它会带来很多与OpenStreetMap合作的许可问题。如果使用此方法,请务必在编辑摘要中将Google Maps命名为坐标来源。
打开Google Maps,右键点击你想要获取坐标的位置。坐标将显示在弹出菜单的最顶部。点击它即可复制数值。
方法8:Google Earth
与Google Maps相同的许可注意事项可能适用。
打开Google Earth,直到所需位置在地图上可见。将光标置于该位置上方。其地理坐标显示在屏幕的右下角。你可以通过工具栏上的“工具”选项卡,然后选择下拉菜单中的“选项”来选择是以度、分、秒还是以十进度的度数显示。
从DMS系统转换
要从传统的度/分/秒格式(例如lat=N45°30'0",long=W73°36'0")或度/分格式(例如lat=N45°30.0',long=W73°36.0')进行转换,请使用以下公式:
- X°Y'Z" = X+(Y/60)+(Z/3600)
过去
- 对于S(南纬),在纬度前加“-”;对于N(北纬),假设为“+”。
- 对于W(西经),在经度前加“-”;对于E(东经),假设为“+”。
添加地区和轨迹

地区可以用来突出地图上的不同区域,而轨迹可以显示徒步路线或其他对旅行者有用的元素(例如摩纳哥F1赛道的轮廓)。
OpenStreetMap地区和轨迹
添加地区的首选方法是使用OpenStreetMap数据库中已有的几何图形来渲染遮罩、形状或线条。有关更多详细信息,请参阅{{mapshape}}模板文档。
以下是两个示例。代码说明:
- 第一行将地图添加到文章中。已定义地图中心坐标、地图在页面上的大小和缩放级别。
- 第二行借助适当的Wikidata ID从OpenStreetMap提取地区/轨迹。已定义一个标题,该标题将在点击地图元素后显示。
示例1 - 徒步路线
在文章地图上显示的实时示例:Southern Ridges Walk
{{mapframe|1.28278|103.79203|width=450|height=300|zoom=13}}
{{Mapshape|type=geoline|wikidata=Q7570434|fill=#FF0000|stroke-width=3|title=Southern Ridges Walk}}
示例2 - 地区边界
在文章地图上显示的实时示例:Hamburg districts
{{Mapframe|width=450|height=450|53.560|10.023|zoom=10|show=go,mask}}
{{Mapshape|type=geoshape|wikidata=Q1554, Q1551, Q1561|fill=#d5dc76|title=[[Hamburg/Neustadt-Altstadt|Neustadt-Altstadt]]}}
该工具Wikivoyage Districtifier可能有助于创建地区概览地图。
自定义地区和轨迹
地图中有两种非常有用的自定义GeoJSON文件用例:
- 你想添加一个徒步路线或类似的行程相关的元素,这些元素在OpenStreetMap中不存在(例如:Stockholm history tour)。
- 官方的地区边界在OSM中不存在,或者从旅游角度来看它们根本没有意义(例如:新加坡或阿姆斯特丹)。
如果你正在寻找一种比下方视频更简单的行程方法,请参阅User:SHB2000/Getting a line on an itinerary,其中GeoJSON代码直接复制到文章中。它也可以用于徒步路线。
创建GeoJSON数据
下面的视频展示了如何使用自定义的地区边界创建动态地区概览地图。对于路线,绘制线条而不是多边形,其工作流程是相同的。
工作流程
下面的文字旨在作为视频的补充信息。观看视频才能真正理解工作流程。
- 1. 创建地区概览地图
- 简而言之,有两种选择来创建GeoJSON:
- 1a. 仅使用geojson.io
- 前往geojson.io,绘制线条/多边形,设置所需的颜色和标题。复制GeoJSON文件并继续第2步。此方案的一个缺点是无法合并节点。所以,如果你有两个紧挨着的多边形,它们不会完美对齐。使用1b的解决方案则不存在这个问题。
- 1b. JOSM & geojson.io(视频中展示)
- 使用JOSM按需绘制多边形,并导出为.geojson。一些注意事项:
- 只有当多边形分配了一个描述性标签(通常在OpenStreetMap中应用于某个区域,例如landuse=residential)时,从多边形导出到.geojson才能在JOSM中正常工作。
- 你可以在JOSM中直接为每个多边形/线条分配title和fill标签,如果你不想在geojson.io中进行(例如:title=[[Amsterdam/Noord|Noord]]和fill=#000000)。
- 使用JOSM按需绘制多边形,并导出为.geojson。一些注意事项:
- 2. 上传到Commons
- 在Wikimedia Commons中创建一个新地图,并将步骤1中创建的GeoJSON粘贴进去。
- 3. 在维基旅行中创建文章地图,并链接到保存在Commons中的GeoJSON文件
- 示例
{{Mapframe|55.95878|-3.18726|width=600|height=550|zoom=13}}- 和
{{Mapshape|type=page|wikicommons=Edinburgh_Districts.map}}
- 4. 创建地图遮罩(可选)
- 为了在地区文章地图上灰色显示无关部分(示例),你可以将步骤2中的GeoJSON粘贴到工具Mapmask <-> GeoJSON Converter中,以生成地图遮罩代码。
创建GPX数据
作为直接创建GeoJSON(如上所述)的替代方法,也可以生成GPX轨迹,然后将其转换为GeoJSON。要创建地图遮罩(指定地区的边界示例)或行程的GPX轨迹(示例),则需要遵循以下步骤:
- 生成边界或轨迹数据
- 选项1:直接从OpenStreetMap.org下载数据
- 下载JOSM,这是一个OpenStreetMap数据编辑器。
- 在OpenStreetMap.org上找到你感兴趣的边界或路线对象。例如,如果要查找城市边界:
- 在openstreetmap.org上导航到所需城市
- 点击“?”图标来查询要素。
- 在感兴趣的点上点击地图(例如,如果要生成城市边界,则点击城市名称)。
- 点击后,左侧导航栏会显示“enclosing features”(包含要素)列表。选择你感兴趣的要素(示例:“City boundary city name”)
- 然后你应该会看到所选对象的视图,左侧导航栏会显示边界类型和ID,例如“Relation: city name (id)”——记住这些值,它们将在下一步中使用。
- 在JOSM中,转到File → Download Object。输入你在OpenStreetmap上找到的对象类型和ID。JOSM随后会显示该对象。
- 根据需要编辑JOSM中的对象——例如,如果存在无关的对象,可以将其删除。在大多数情况下,此步骤不应是必需的。
- 在JOSM中转到File → Save As,选择“GPX files”作为文件类型,并使用任何你喜欢的名称。
- 选项2:自己创建轨迹
- 使用合适的路线编辑器。不要使用Google Maps来绘制边界/轨迹——Google Maps的许可与OSM许可不兼容。
- 通过点击地图上的不同点来创建轨迹。保存为mytrack [TRACK]。
- 选项1:直接从OpenStreetMap.org下载数据
- 前往维基旅行GPX格式化工具并上传你刚刚创建的GPX文件。该工具会将信息重新格式化为维基旅行地图工具可用的格式。验证页面底部的地图预览是否符合你的预期。如果地图不符合预期,你需要修改GPX数据。如果你不确定该怎么做,请向其他维基旅行用户寻求帮助。
可以使用各种第三方工具生成GPX轨迹,然后将其转换为GeoJSON供维基旅行使用。
- GPX在线编辑器。请参阅在线帮助获取说明。下载为轨迹。
- http://gpxcreator.com是一个免费的开源Java桌面应用程序,它显示OpenStreetMap并允许用户绘制路径,生成GPX文件。只需进行少量更改(例如,在文本编辑器中进行搜索和替换以从每个点删除“elevation=0”)即可将这些路径转换为行程的可使用格式。
- OpenStreetMap提供JOSM作为生成GPX轨迹的工具,请参阅http://josm.openstreetmap.de/download/josm.jnlp
转换为GeoJSON
各种在线工具可将GPX或其他标准格式转换为GeoJSON,例如:
- http://2geojson.com
- http://www.gpsies.com/convert.do
- https://mapbox.github.io/togeojson
- https://mygeodata.cloud/converter
一旦轨迹或边界采用兼容格式,就可以通过各种选项在维基旅行中使用它们。
- 边界可以使用{{mapmask}}、{{mapshape}}和{{mapframe}}模板。
- 边界或轨迹可直接使用,如mw:Help:Extension:Kartographer中所述。
请参阅跨西伯利亚铁路,了解直接调用<maplink>以绘制横跨俄罗斯的行程的示例。该<maplink>的坐标在文章末尾。
请参阅圣彼得堡,了解以Commons作为数据源的示例,数据来自commons:Data:Saint_Petersburg_Districts.map,通过以下方式嵌入:
{{Mapframe|59.92|30.24|30.30|zoom=9|show=other,mask,go}}
{{mapshape|type=page|wikicommons=Saint_Petersburg_Districts.map}}
现在{{GPX}}模板子页面已弃用。User:Yurik/Sandbox/Gpx1和User:Yurik/Sandbox/Gpx2包含在mw:Extension:Kartographer部署时已存在于维基旅行中的现有GPX轨迹的转换版本。这些可以导入回原始文章,只需移除(lat, long, zoom)参数——允许新的{{mapframe}}自动检测正确的比例和范围。Special:Diff/3142916/3207633是将其中一张地图导入Trans-Labrador Highway的示例。(另请参阅phab:T154908和phab:T137677。)
参见
- mw:Help:Extension:Kartographer——Kartographer扩展在后台用于生成所有动态地图。
