3 个 Google Maps API 的开源替代方案

还没有读者喜欢这篇文章。
World Map

维基共享资源

每年的 11 月第三个星期三,世界各地的地图爱好者(包括我自己)都会庆祝 GIS 日。GIS 是地理信息系统(geographic information systems)的缩写,有时也称为地理空间信息科学(geospatial information science),它完全是关于使用计算机系统来收集、存储、分析和显示地理数据,或者任何具有空间组成部分的数据。

过去十年极大地改变了 GIS。随着数据挖掘、机器学习、移动应用程序、物联网、社交媒体以及计算领域的其他最新成员的出现,每个学科都有数量级更多的数据可用,而进行有用且有趣的事情的竞赛正在全速进行。GIS 曾经仅限于土地记录、农业、自然资源和城市规划等更传统的领域,现在几乎渗透到每个领域。

但是,如何开始探索广阔的 GIS 世界呢?在探索高级建模、空间分析和数据管理之前,开始学习 GIS 最合乎逻辑的地方是从地理数据的最基本表示形式开始:地图。如果您具备基本的 Web 编程和标记语言(JavaScript、HTML 和 CSS)背景,那么 Web 地图可能是入门的最轻松途径。

许多熟悉 Google 地图的人立即转向 Google Maps API 入门,但 Google 地图远非唯一的选择。事实上,有许多开源替代方案更适合特定需求,无论这些需求是以最小的开销显示非常基本的内容,还是具有许多不同组件和集成的复杂应用程序。

如果您正在寻找开始使用 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 基金会提供了一个相当 全面的列表,列出了 Web 地图工具包,但请注意,它们的范围和生产准备状态各不相同。

使用这些库的好处在于,它们鼓励混合和匹配,以完美地为您的需求设置地图样式。不喜欢位于地图下方的默认地图图层?选择另一个。更喜欢不同的图标来表示地图上的点?没问题。

是否有我们在此处没有提及的您认为适合初学者的最喜欢的 Web 地图 API?请在下面的评论中告诉我们。祝您 GIS 日快乐!

User profile image.
Jason 在 2013 年至 2022 年期间是 Opensource.com 的工作人员和红帽员工。此个人资料包含他在该期间与工作相关的文章。其他贡献可以在他的个人帐户中找到。

6 条评论

很棒的文章!

但是,没有一个字提到 Open Street Maps... 为什么?

嗨 Hugo,OpenStreetMap 是一个协作编辑项目和数据提供商,而不是用于显示地图本身的 API。此处强调的这三个 Web 地图 API 中的任何一个都能够使用 OpenStreetMap 数据作为用户创建地图的底图。

对于能够使用 OpenStreetMap 数据的 Web 地图框架的相当长的列表,请参阅此链接:http://wiki.openstreetmap.org/wiki/Frameworks#Webmaps

回复 作者:Hugo (未验证)

Modest Maps 和 Polymaps 都已多年未维护。

这篇文章是之前重新使用的吗?

两者仍然非常可用,但正如您所指出的,这两个方面都没有太多的积极开发。

回复 作者:Albin Larsson (未验证)

查看 Mapzen:https://mapzen.com/

他们正在走出隐身模式,并有一些很棒的想法,以及来自 Google 和 Mapquest 的一些经验丰富的人。

在地图上找到 @openstreetmap

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