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

还没有读者喜欢这个。
World Map

维基共享资源

每年的 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 日快乐!

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

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

© . All rights reserved.