每年的 11 月第三个星期三,世界各地的地图爱好者(包括我自己)都会庆祝 GIS 日。GIS 是地理信息系统的缩写,有时也指地理空间信息科学,它主要使用计算机系统来收集、存储、分析和显示地理数据,或者任何具有空间组成部分的数据。
过去十年极大地改变了 GIS。随着数据挖掘、机器学习、移动应用、物联网、社交媒体以及其他近期加入计算领域的技术的出现,每个学科都拥有了数量级更多的数据,并且开展有用和有趣的事情的竞赛正在全速进行。GIS 曾经仅限于土地记录、农业、自然资源和城市规划等更传统的领域,现在几乎渗透到每个领域。
但是,如何开始探索广阔的 GIS 世界呢?在探索高级建模、空间分析和数据管理之前,开始学习 GIS 最合乎逻辑的地方是从地理数据的最基本表示形式开始:地图。如果您具备基本的 Web 编程和标记语言(JavaScript、HTML 和 CSS)背景,那么 Web 地图可能是入门的最轻松途径。
许多熟悉 Google Maps 的人立即转向 Google Maps API 入门,但 Google Maps 远非唯一的选择。事实上,有许多开源替代方案更适合特定需求,无论这些需求是以最小的开销显示非常基本的内容,还是具有许多不同组件和集成的复杂应用程序。
如果您正在寻找 Web 地图入门方案,以下是三个值得关注的库。
Leaflet
Leaflet 在过去几年中已成为创建交互式 JavaScript 地图的最受欢迎的选择之一。它的基本库相当小巧,这使得 Leaflet 成为移动应用程序或其他对加载时间或大小有较高要求的场景的绝佳选择。但它也有大量的可用插件,因此您可以添加几乎任何更强大的地图库提供的功能。
Leaflet 还有一个强大的 文档 项目作为后盾,使其成为初学者的不错选择,并且互联网上有许多社区贡献的示例,供您在遇到困难时参考,项目主页上也有许多 示例。Leaflet 的源代码在 GitHub 上提供,并根据 BSD 许可证获得许可。
Modest Maps
虽然 Leaflet 可以被认为是极简主义库,但 Modest Maps 可能会赢得更小巧的奖项。Modest Maps 的设计也非常模块化,对于简单地图以及希望挑选组件的人来说,都是一个绝佳选择。查看他们的 示例库,了解更多关于您可以使用它做什么的想法。
Modest Maps 是在 BSD 许可证下开源的,您也可以在 GitHub 上查看其源代码。
Polymaps
Polymaps 是一个 JavaScript 地图库,用于创建具有基于 SVG 向量以及用于栅格数据的基于瓦片地图的交互式地图。使用 SVG(可缩放矢量图形)创建地图的好处在于,许多可以应用于具有 CSS 的 Web 文档的样式选项也适用于您的地图设计。我还发现,与某些其他库相比,Polymaps 在处理缩放方面非常出色。
与上述其他库一样,Polymaps 也是在 BSD 许可证下开源的,您也可以在 GitHub 上查看其源代码。
其他
当然,我们看到的这三个并不是唯一的选择。还有许多其他选择,根据您的具体需求,您可能应该花一些时间探索所有选项,然后再决定从哪里开始。我喜欢的其他一些选项包括
- OpenLayers,您可以将其视为 Web 地图编程的“厨房水槽”。我在使用 GeoServer 时经常使用 OpenLayers;如果您使用开源 OpenGeo Suite 构建完整的 GIS 解决方案,则所有组件都可以很好地集成。
- Mapael,这是一个 jQuery 库,用于使用矢量数据构建有吸引力的地图可视化效果。
- D3.js,这是一个更通用的 JavaScript 可视化库,但具有一些很棒的功能,可以轻松创建简单地图。如果您对更广泛的数据可视化世界更感兴趣,D3 是一个很好的起点。
- Cesium,它专门用于创建映射到 3D 地球仪上的数据的 WebGL 可视化效果。如果这让您感兴趣,那么一些 演示 非常精彩。
对于其他工具,OpenGeo Foundation 提供了一个相当 全面的 Web 地图工具列表,但请注意,它们的范围和生产就绪状态各不相同。
使用这些库的好处在于,它们鼓励混合和匹配,以根据您的需求完美地设计地图样式。不喜欢位于地图下方的默认地图图层?选择另一个。喜欢使用不同的图标来表示地图上的点?没问题。
是否有我们在此处未提及的您认为非常适合初学者的 Web 地图 API?请在下面的评论中告诉我们。祝您 GIS 日快乐!
6 条评论