维基旅行:如何创建地图/专家地图
| 此页面已不再活跃,仅供历史参考。 此页面已不再相关,或者对其用途的共识变得不明确。 不要认为此页面上的内容仍然正确或最新。 |
专家地图
[]|
以下描述的过程需要相当的技术技能,并且略有过时。不过,有一个更新的分支,过程略有不同:osmatravel@github。其他选择可能是Project:如何绘制静态地图或Project:如何绘制静态地图#从OSM导入SVG。 |
此过程可用于创建功能齐全的维基旅行地图,其中包含自动放置和索引的景点、餐厅、酒店等的图标。
先决条件:能够访问运行现代Unix(最好是Linux,最最好是Ubuntu)的机器。此外,您想绘制地图的维基旅行目的地必须已使用新的列表标签格式。
流程概览
[]地图创建过程现在遵循以下步骤:
- 下载并安装 Osmatravel 脚本(以前称为 wtp-maps)
- 在OpenStreetMap中查找您的目的地
- 选择是收集地图坐标还是创建一个边界关系来定义要映射的区域
- 在您的文章中添加适当的Image标签以配置要创建的地图
- 运行脚本以生成SVG图像
- 根据需要“在OSM中编辑”以改进您的地图
- 重新生成SVG图像
- 检查和调整 SVG
- 将SVG上传到Wikivoyage共享
- 运行脚本以生成PNG图像
- 将PNG上传到Wikivoyage共享
下载并安装脚本
[]- 下载Osmatravel(以前称为wtp-maps)脚本的当前Gitorious tarball。
- 将tarball解压到方便的位置,例如您的主目录,或者$HOME/src。
tar -xvzf osmatravel-osmatravel-master.tar.gz
- 这会创建一个名为“osmatravel-osmatravel/”的新目录,其中包含脚本。进入该目录。
cd osmatravel-osmatravel
- 首次运行脚本时,您必须指定一个文章。如果您是第一次为某个文章生成地图,最好分步进行。例如,如果您只想为特定文章生成配置文件,可以这样做:
make Config.mk ARTICLE=Paris/1st_arrondissement
请注意,文章名称中的空格应替换为下划线(_),括号应替换为%28(左括号)和%29(右括号)。
- 您可以随时通过执行类似以下操作来重新配置脚本,以使用不同的目的地:
make clean; make Config.mk ARTICLE=Paris/2nd_arrondissement
在OSM中查找目的地
[]选择定义边界框的方法
[]当您第一次为文章配置地图生成时,您需要选择如何配置地图的边界框。
- 您可以围绕您想要绘制的区域绘制一个关系边界。Osmatravel脚本将计算一个包含该关系的矩形边界框,无论其形状如何,并加上一些填充。
- 您可以复制在OSM中看到的矩形区域角落的经纬度坐标。
每种方法都有优点:如果您绘制了一个关系,它将在地图上显示为略浅的灰色,为地图的目的地部分增加一点视觉层次感。如果您配置了精确的经纬度坐标,脚本运行速度会更快。如果您想要两者兼顾,可以使用这两种方法。
在维基旅行中配置地图的Image标签
[]Osmarender脚本现在从维基旅行文章本身获取特定目的地的配置信息。这意味着任何特定地图项目的配置数据都是公开可用的,并遵循CC BY-SA许可。
配置是通过向适当命名的图像的MediaWiki Image标签添加一些额外的属性来完成的。其中一些是脚本渲染地图所必需的,但有些是可选的。
必需的属性
[]- relid
或
- border
- Is_in
可选属性
[]- expand_for_listings
- listings_placement
- box_width
- box1_x
- box1_y
- box2_x
- box2_y
- box3_x
- box3_y
- box4_x
- box4_y
示例
[]- 来自巴黎/第8区

生成地图
[]- 运行命令make。这将自动执行以下操作:
- 将先前定义的边界内的OSM数据下载到data.osm
- 下载维基旅行文章
- 将其所有列表名称提取到listings.txt
- 将列表与OSM数据进行匹配
- 创建一个名为map.svg的矢量地图,包括所有匹配到的列表图标
- 创建一个名为listings.svg的矢量列表框
- 检查文件unmatched.txt,其中包含所有未在OSM数据中找到的维基旅行列表。如果某些内容未正确匹配……
- 如果您在维基旅行中修复了错误并保存了更改,请运行make wt-clean,然后再次运行make。
- 如果您在OSM中修复了错误,请重新导出数据并再次运行make。
在OSM中编辑
[]
- 浏览OpenStreetMap网站并浏览您的目的地。
- 点击[Edit]选项卡,这将加载您浏览器中的Potlatch Flash编辑器。您可以[Play](尝试)它,阅读文档,并观看Potlatch页面上的视频,直到您感到满意为止;然后[Start](开始)绘图。
- 很可能其他OSM贡献者已经添加了街道和基本城市特征,所以您的任务是添加和检查维基旅行列表。
- 要添加新列表,请在地图上双击创建一个新节点。选择适当的类型(如下),然后点击[+]图标(左下角)并为其添加新标签。最重要的标签是name,它必须与维基旅行列表的名称完全一致。但是,如果维基旅行使用的是英文名称而OSM不是,您可以在OSM节点上添加name:en标签。
以下是将维基旅行列表映射到OSM地图功能的快速参考。完整列表可在此处找到。
| 维基旅行列表 | 类型 | OSM标签 | OSM标签值 |
|---|---|---|---|
| 看 | 博物馆 | tourism | 博物馆 |
| 看 | 教堂、清真寺等 | amenity | place_of_worship |
| 餐饮 | 餐厅 | amenity | 餐厅 |
| 饮品 | 酒吧、酒馆 | amenity | 酒吧 |
| 饮品 | 夜总会 | amenity | 夜总会 |
| 住宿 | 酒店 | tourism | hotel |
| 住宿 | 旅馆 | tourism | 青年旅社 |
| 住宿 | 露营地 | tourism | camp_site |
| 巴士总站 | amenity | bus_station | |
| 火车站 | 铁路 | station |
请注意,这些标签仅由OSM使用,并且(目前和一般而言)对于维基旅行地图生成不是必需的。

- 要定义地图的边缘,请在区域边缘绘制一条线,并连接回起点。
- 根据您的需求,这可以是一个简单的方形盒子或一个复杂的区域多边形。
- 请不要将其定义为道路或任何其他类型,只需将其保留为未命名的线。
- 在Potlatch的左侧,点击Relation Editor按钮(“链环”图标)。
- 选择“Create new relation”。
- 输入“type”: “border”。点击[+]添加新标签,输入“name”以及您之前在Config.mk中输入的Destination。再次点击[+],输入“Is_In”以及Config.mk中的Region。(参见截图以获取示例。)
清理地图
[]
- 在您喜欢的SVG编辑器中加载map.svg,例如Inkscape。
- 找到您的城市中心。(OSM导出通常包含很长的街道和河流,会伸出所选区域,所以您可能需要放大查看。)
- 用填充:无绘制一个水平矩形。
- 用指针工具选择矩形,并将W(宽度)设置为300.8,将H(高度)设置为173.0。
- 如果您想要一个垂直矩形,请交换高度和宽度。
- 如果您有一个大区域,可以使用多个矩形来覆盖它。
- 在按住CTRL键的同时调整矩形大小,以保持比例不变。
- OSM导出可能会有重叠的城市名称、街道下方的图标以及其他轻微的杂乱。请按您的喜好清理矩形区域内的内容。
|
Inkscape的当前版本允许您*编辑*OSM生成的地图,但如果您尝试保存它们,它们会严重损坏输出。因此,下面的变通方法是将SVG导出为PNG位图,然后在此基础上继续工作。 |
- 完成后,选择矩形并从菜单中选择文件 > 导出位图...。选择“Selection”,并输入3008x1730像素作为大小。将其保存为“Destination-raw.png”。
- 关闭map.svg。
检查可读性
[]如果您是第一次导出此城市,现在是验证打印地图是否可读的好时机。在GIMP(或其他位图编辑器)中加载地图,并将图像 > 打印尺寸...设置为宽度6.875英寸,高度3.95英寸,然后将其打印出来(灰度模式)。如果您无需眯眼就能读出街道名称,那就没问题。
完成并导出地图
[]
键入以下命令:
make png
如果Inkscape安装正确,脚本将在后台运行它。然后它们将运行Gimp来降低图像的色彩空间以适应网络。现在您应该在以您的文章命名的目录中找到一个PNG图像,并且可以上传到Wikivoyage共享。您应该检查一下,以防万一。
恭喜——您的地图完成了!
