每年的 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,它非常专门用于创建 WebGL 可视化,将数据映射到 3D 地球仪上。如果您对此感兴趣,一些 演示 非常棒。
对于其他工具,OpenGeo Foundation 提供了一个相当 全面的 Web 地图工具列表,但请注意,它们的范围和生产准备状态各不相同。
使用这些库的好处在于,它们鼓励混合和匹配,以便根据您的需求完美地设置地图样式。不喜欢位于地图下方的默认地图图层?选择另一个。更喜欢使用不同的图标来表示地图上的点?没问题。
是否有我们在此处未提及的您认为适合初学者的最喜欢的 Web 地图 API?请在下面的评论中告诉我们。祝您 GIS 日快乐!
6 条评论