开源地图入门

目前还没有人喜欢这个。
OpenStreetMap

Opensource.com

你在浏览网页时,肯定遇到过许多网站使用嵌入式地图来显示数据。 人类是视觉动物,因此在地图上呈现温度、犯罪统计数据或人口密度,通常比以枯燥表格的形式呈现相同的事实更容易辨别模式和空间关系。 基于地图的可视化可以非常复杂,甚至可以显示跨越时间和空间的模式;Maps Mania 是一个展示许多优秀在线地图示例的博客。

但在嵌入式地图上显示数据并不需要是一件复杂的事情。 你可以使用开源工具来做到这一点。 在这篇文章中,我提供了一些入门技巧。

River Guages

图片由 Gordon Haff 提供。 CC BY-SA 4.0

选择你的地图

你需要的第一件事是地图。 大多数人都熟悉 Google 地图,在大多数轻度使用情况下,你可以免费使用它。 然而,与 Google 地图不同,OpenStreetMap (OSM) 使用在开放数据库许可证下发布的开放数据。 OSM 由 Steve Coast 于 2004 年在英国创建,使用从调查、GPS 设备、航空摄影和其他免费来源收集的众包数据。 虽然在驾驶方向和其他特定任务方面,OSM 往往不如 Google 地图,但对于徒步旅行路线等通常未出现在传统地图上的特征,它可能要详细得多。

此时,我应该区分 OSM 数据和基于该数据的切片。 切片是地图数据的(通常)256 x 256 像素的可视化表示。 人们通过将切片并排放置来创建大多数网络“滑移地图”,从而产生一种可以在各种缩放级别上显示的非常大地图的错觉。 这种方法有很多优点,这些优点可以有效地归结为有效地利用服务器和网络资源,并在客户端平移地图和放大或缩小地图时提供良好的体验。

作为项目的一部分,OSM 项目渲染并提供一组标准(“Mapnik”)切片。 这些切片根据 Creative Commons Attribution-ShareAlike 2.0 获得许可,允许在署名的情况下免费使用。 但是,OSM 对切片有使用策略。 这些策略旨在防止其服务上的过度负载。 基于 OSM 数据的切片也可以从各种免费和商业提供商处获得,每个提供商都有自己的使用策略。 在大多数随意使用这些切片时,您不会遇到使用限制和限制,但值得注意的是,即使数据是免费和开放的(甚至可以用来设置您自己的地图服务),您也不能真正将 OSM 的切片服务器用于繁重的商业用途。

嵌入你的地图

你现在需要一种嵌入地图、操作地图切片以及将其他数据覆盖到地图上的方法。 Leaflet 是一个流行的选择。 它是一个开源 Javascript 库,可让你轻松创建带有平铺底图、平移和缩放以及各种分层功能(例如特定地理坐标(即纬度和经度)的标记)的“滑移”地图。 它处理与地图的交互,具有相当丰富且文档完善的 API,并且还可以与提供其他功能的各种插件配合使用。

Leaflet 并非旨在提供完整地理信息系统 (GIS) 的所有功能,后者往往包括许多与地图投影以及使用矢量和栅格数据的高级叠加相关的功能; 但是,结果是,这些产品往往更复杂。 如果你想要一个比 Leaflet 具有更多功能的开源库,请使用 OpenLayers,它是在 2 条款 BSD 许可证下发布的。

显示你的地图

最后,你将需要数据才能在地图上显示。 这可以是简单的静态数据,例如城市周围的一组兴趣点,这些兴趣点被键入到列表中(以及它们的纬度和经度),以便在地图上用标记显示。 它也可能是从网络上抓取或以其他方式传输的数据。 你通常会发现创建嵌入式地图最耗时的部分是将数据整理成可用的形式。 然而,政府和其他来源正在以易于使用的形式提供越来越多的丰富数据集——无论是作为可下载的文件还是通过 Web 服务。 例如,你可以在美国政府的 data.gov 找到近 158,000 个开放数据集。

映射和混合这些数据只需要一些 HTML、CSS 和 Javascript 技能。 Leaflet 提供了一些很好的示例来帮助你入门。 实际上,如果你的数据集是动态的、需要预处理的或很大的,你可能需要开始考虑将数据加载到数据库中。 在“使用 OpenShift 通过 Flask、MongoDB、Leaflet 和 OpenStreetMaps 绘制河流级别”中,我讨论了一个更复杂的 Web 应用程序,该应用程序显示从 USGS Web 服务获得的近实时 USGS 河流水位数据。(在这篇 后续文章中,我概述了解析数据的详细信息; 这篇文章详细介绍了处理相对复杂的真实世界数据格式的过程。)

降低有效可视化位置链接数据的障碍意味着更有效的沟通: 让某些东西更容易或更便宜,你就会得到更多。 有些“只是”教育或乐趣。 但是(如果做得正确和诚实),更有效地沟通有关人和地点的数据也可以成为更好理解公共政策和我们周围世界的重要工具。

User profile image.
Gordon Haff 是红帽技术布道者,是客户和行业活动中一位频繁且备受赞誉的演讲者,并且专注于包括红帽研究、开源采用以及广泛的新兴技术领域。

3 条评论

网络地图的良好开端。 还有一些优秀的开源桌面地图工具,例如 GRASS GIS,http://grass.osgeo.org/ 和 qgis,http://www.qgis.org。 你可以在桌面上连接到与上述 Web 示例中相同的 Web 服务。

所有这些地图都很棒,我只是希望它们不会随着触控板变大或变小,我宁愿单击 [+] 或 [-] 来放大或缩小地图大小。 有时地图会变得如此之大,以至于我看到的只是大西洋,我必须刷新地图才能回到我的兴趣点。

我已经使用 CartoDB 的免费帐户大约 6 个月了,并且真的很喜欢它。 CartoDB 支持许多免费和开源的地图技术,包括 Leaflet。 我最喜欢的功能是对 PostGIS 的广泛支持!

Creative Commons License此作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.