我正在研究基于Web的地图系统,并且试图找出要使用的库。

这些是可用库比较的链接:



Laurent Jegou的基准测试(从2010年开始)是对Web映射解决方案(客户端和服务器)的全球性展望。 />


到目前为止的库列表:


Google Maps
Microsoft Virtual Earth
MapQuest

传单-“注释的更小,更快,更新和更直接也可以理解为更少的功能和更少的测试。” -Geographika(请参见下文)

用于JavaScript的ArcGIS API-与ArcGIS Server配合使用效果最佳(请参见下文)。还提供了Google Maps和Bing maps扩展,使您可以将ESRI API与Google / Bing maps一起使用(尽管大多数库都适用)。 /> OpenLayers-广泛的文档和大量功能以及使用不同地图提供者的能力。

Mapquery-MapQuery已发布,现在有一些有用的文档。它具有将OpenLayers和jQuery结合在一起的非常有价值的目标。如果您特别热衷于OpenLayers + jQuery的想法,或者您想为JavaScript映射库做出贡献,请参与并做出自己的努力。但是,如果您只是想成为最终用户,或者不熟悉该领域,可能不适合您。

Mapstraction-使事情变得非常简单,尤其是与多个底图提供程序一起使用时。但是,这项工作仍在进行中,功能和文档都缺乏。 (例如,“类型为“ FeatureCollection”的GeoJSON对象是要素集合对象。”不是很有用。)看来它仍在积极开发中,但截至2011年4月4日,尚未在Github上进行提交自一月以来。

deCarta-具有移动和桌面Javascript-第一个兼容HTML5 / CSS3,第二个具有更多的浏览器兼容性。提供的源代码。商业API的最友好的开发人员条款。您可以在地图上加上商标,并且有几种不同的地图样式。您可以选择NAVTEQ或OSM数据。他们也有几个移动API。 -由TheSteve0编辑-deCarta员工
Cloudmade

Polymaps-使合成来自许多不同来源的栅格和矢量数据变得非常容易。让您轻松添加自己的颜色,分组和交互。运行速度快,可以很好地管理背景图块加载,并且只有30k的Javascript。潜在的不利方面:它使用SVG,这意味着它不能也不将在MSIE 7或8中工作。它在其他所有浏览器中都可以正常工作,并且应该在IE9中工作。独立运行的地图库,也就是说,它不是OpenLayers或GoogleMaps API的包装。目前,它正在开发中,但是许多基本功能都可以正常工作。
Mapiator

OpenLayers是我目前正在使用的那个。您可以使用它做很多事情,它支持大多数数据类型。但是,这并非对所有事情都是最好的。例如,Leaflet在许多方面看起来都比较平滑,包括图像淡入和其他视觉调整。如果您喜欢jQuery,则可能想查看MapQuery,它类似于jQuery和OpenLayers的组合。

#1 楼


该问题已转换为社区Wiki,并且维基百科已锁定
,因为它是一个寻求答案列表的问题的示例,并且似乎很受欢迎,可以防止其被关闭。
应该视为特例,不应将其视为此问题或任何Stack Exchange网站上鼓励的问题的类型,但是如果您希望提供更多内容然后可以自由地
通过编辑此答案来做到这一点。推荐使用Leaflet(MapBox现在支持)。易于使用且体积小。更多功能取决于质量和支持各不相同的插件。

GIS联机类型应用程序-使用OpenLayers3-在单个库中具有全套数据源,控件等。它也可以用于简单的地图绘制应用程序,因此,如果您有混搭的话,我会用它来做所有事情。

Google仍然具有库/数据组合(例如,StreetView在其他任何地方均不可用)。

Esri具有GUI Web应用程序构建器,如下所述,如果您已经使用了它们的堆栈,为什么还要使它们变得复杂。

商业API(Google,Bing,Yahoo)

使用任何商业API都会使您不受提供商对API或服务条款所做的任何更改的影响。例如,如果突然您使用Google Maps的地方政府门户网站突然弹出广告,该怎么办?是否想为Intranet网站重复使用您的JavaScript Google Maps代码?您会发现自己必须支付10,000美元的许可费。

Microsoft通常对其服务(如果付费)有更明确和固定的条款,因此此处的风险可能较小。

最近对Twitter的强烈反对是开发人员在其下更改了API的一个很好的例子。如果您不支付服务费用,那么您(或您的系统)就是被出售的服务。

Google从2011年10月开始就对其地图的使用收费。最重要的是来自GIS的背景Esri可能比“新地理”网络巨头更多地考虑了传统的GIS任务和功能(尽管这只是一种看法/感觉)。

OpenLayers内置了对ArcGIS REST图层的支持,如果您希望将代码重用于非基于ESRI的网站,那么开放API再次可以为您提供最佳的服务。

使用OpenLayers ...

我真的不认为为什么开发人员会使用OpenLayers以外的API。开放源代码项目会导致相关的开放源代码项目,因此存在大量可重复使用的组件,例如GeoExt库,MapQuery和GeoPrisma。

我要补充一点,仅仅是因为项目是开源项目并不能自动使其比商业上的等效项目更好-但是在这种情况下,OpenLayers API可以与商业竞争相匹敌,并且可以看到源代码作品,单元测试,构建脚本等意味着您可以轻松地在其之上构建新功能。

最近对OpenLayers提出了一些批评,主要与复杂性,样式和大小有关。 OpenLayers的主要开发人员之一Christopher Schmidt在这里和这里都提出了反对意见。

值得注意的是,如果您需要一个简单的开源映射API,请查看Cloudmade的Leaflet。

注释更小,更快,更新和更直接,也可以理解为功能少,测试少。后者包括诸如WFS图层,编辑工具和SLD支持之类的项目。它也已经在许多不同的环境中进行了测试,并且可以在IE6中运行(允许政府和地方当局用户使用)。

为了更简单地显示空间数据,Leaflet看起来很理想,并且更容易上手。但是,我将坚持使用OpenLayers开发功能更丰富的GIS应用程序。

注意事项

一个可能的缺点是,通常在商业提供商的系统中首先会发现新的创新-但是,这些创新几乎总是会及时过滤到OpenLayers。

最后,我确定在某些情况下其他API更合适-在自定义硬件上,以适合其他IT系统的组织,或者如果您已经知道API的内在知识并且可以在一半的时间内得到开发的系统。

您提到的所有API都可以生成出色的在线地图绘制系统,但您的选择也应符合您或公司未来的发展需求。

评论


我看到Leaflet现在支持投影,WMS服务器,GeoJSON等。这是否仍然意味着其功能不如OpenLayers?

–扎克·史密斯(Zach Smith)
3月10日10:11

#2 楼

javascript映射前端上有一个新播放器-Leaflet。由CloudMade在BSD许可下开发。

确实很有前途。

评论


哇,这似乎是一个令人印象深刻的图书馆。令我惊讶的是我没有意识到这一点。

– dkroy
2011年7月22日在20:45

这是对传单和openlayers导航行为的比较。

– dkroy
2011年7月22日在21:28



不错的流程图。传单实际上真的很好。

–黑猩猩先生
2011-10-27 15:32

在尝试将Leaflet用于一些更复杂的事情之后,我必须承认与OpenLayers或GeoExt相比,Leaflet的功能相当有限。设置非常容易,看起来非常漂亮,但是在交互方面您的工作受到限制。同样,每个都有它的位置。

–黑猩猩先生
2012年3月22日15:18

该图表的更新副本(自2012年1月起)可在以下位置找到:geotux.tuxfamily.org/index.php/en/geo-blogs/item/…

–将
2013年12月4日18:22



#3 楼

我有一个Google Maps / arcgis api项目,大约一年前,我决定尝试OpenLayers。我越喜欢它,就越喜欢它,所以我决定迁移。在我的代码中,我一遍又一遍地将30-100行的Google代码缩减为1-3行。仅仅是因为OpenLayers对我想做的事情很感兴趣,并且不得不为Google地图手动编写代码。

评论


都很好。感谢您的输入!我不确定对此是否有正确的答案,因此意见和轶事是否有用。

–黑猩猩先生
2011年4月1日在15:22

+1如果任务是要显示超过一手的标记,我总是会选择Google而不是Google地图。

– Underdark♦
2011年4月1日在18:51

#4 楼

CartoDB是用于在PostGIS中分析,可视化和共享您的地理空间数据的工具。这是一个提供SQL API层的开源地理空间数据库平台。它允许开发人员查询针对地理空间目的而优化的云PostrgreSQL + OpenGIS数据库。



#5 楼

Mapquery的Vmx克隆似乎特别活跃。

评论


+1用于MapQuery(OpenLayers + JQuery)

– geoographika
2011年4月1日在16:56

OpenLayers + jQuery听起来很理想!是否有任何文档?

–黑猩猩先生
2011年4月4日在9:10

@Mr_Chimp>据我所知尚无文档。只是一个糟糕的Wiki(gitorious.org/mapquery/pages)和一个邮件列表:osgeo.org/mailman/listinfo/mapquery

–simo
2011年4月4日在10:28

#6 楼

我在以下地方比较了(带有重点和注释)执行简单,特定且常见任务所需的代码:


MapQuest
Google Maps
bing
Ovi
Esri
OpenLayers
jQuery Geo

此处:http://trippingthebits.com/geopres/

该帖子用于我在jQuery Geo上给出的演示文稿,可悲的是,它从您的列表中丢失了。

评论


那是一篇好文章。我喜欢您的颜色编码!很好的主意。

–黑猩猩先生
2012年1月9日上午10:55

jQuery Geo FTW!

– Sameer Alibhai
2014年11月26日19:07

谢谢@SameerAlibhai!敬请期待,我们即将发布版本候选1。

–ryanttb
2014年11月26日23:09

#7 楼

我想在浏览器中可视化地球仪Cesium是个不错的选择。 (不带插件,但浏览器需要WebGL支持的作品)

可显示3D,2D和2.5D视图格式(KML等)



自由控制相机和相机的飞行



...以及(现代)浏览器中的所有内容。

评论


哇,这真的是一个非常不错的项目! :)

–克里斯蒂安
13年2月12日在8:34

是的,但是您能为我们解释为什么Cesium不支持(以及许多其他)标准的WFS(Web功能服务)吗?在我看来,这是一个功能非常强大的查看器,但根本不是GIS系统。

– Web-GIS企业家
19年4月3日在14:03

#8 楼

我没有能力做一个全面的比较,但是我已经用Polymaps完成了三个不同的小型项目,对此可以发表评论。它的主要优点是使来自许多不同来源的栅格和矢量数据的合成变得非常容易。它可以满足您的所有要求,尤其是在让您轻松添加自己的颜色,分组和交互方面。 Polymaps的效率也很高:它运行速度快,可以很好地管理背景图块的加载,并且只有30k的Javascript。在MSIE 7或8中运行。它在所有其他浏览器中都可以正常运行,并且在IE9中也应运行,但是我不确定它的测试程度如何。 SVG也是一种优势:它易于编程,并且呈现效果很好,尤其是以小增量缩放矢量和栅格特征。

关于库的一个警告:如果要使用Google的栅格图块作为底图您必须使用其Javascript库。 OpenStreetMap等拥有更多允许您选择库的许可。库。)

评论


只是我的答案的更新; Polymaps两年来没有任何发展。它仍然是一个有趣的库,具有一些独特的功能,但是我不会在新项目中使用它。这些天,我正在使用Leaflet。

–尼尔森
13年4月8日在14:36

#9 楼

我是制图学的研究生,也是Web映射的新手,但是我一直在研究一个项目,比较那里的各种技术,并为Web映射入门编写了基本的“操作方法”指南。我的分析绝不是全面的,并且我一直在尝试与每个人一起玩耍,以及通过经验丰富的程序员撰写类似的文章来了解每个库。我很高兴收到任何反馈。

评论


(+1)感谢您的贡献-欢迎来到我们的社区!

– hu
2012年7月25日15:27

#10 楼

我发现google融合表,polymap,openlayers和Cartographer.js与以下示例图像之间的比较: .html?spref = tw

#11 楼

城市地图中的Mapfluence也在其中。托管的映射平台,提供基于Web的地理服务,可完全通过REST进行访问并使用JavaScript(改进的途中文档/教程)API。或OL(如果需要)。我们渲染了自己的基础图块,拥有大量按需数据目录,并支持数据和其他可视化查询。什么是地理。

#12 楼

您也可以看看Geomajas。这是一个用Java(包括使用GWT的Java客户端)编写的GIS框架。但是,当前正在开发一个插件,以使用JavaScript提供完整的客户端API。
使用Geomajas的优点是后端与客户端之间的强大集成,它具有一些优点,包括可以轻松地将工作卸载到服务器上,并且特别为安全性而添加。
br />

#13 楼

我会推荐ammap:http://www.ammap.com
它们曾经有Flash映射,但是最近推出的JavaScript映射具有很多强大的功能。

#14 楼

如果您正在寻找数据可视化库,请从Highcharts背后的人员(包括我本人-当前受聘为软件开发人员)中查看Highmaps。它是免费的,用于非商业用途,可与移动浏览器(全面支持触摸屏)和旧版IE6兼容。支持高级动态功能,例如向下钻取和丰富的工具提示。



评论


特别是,由于这是您第一次在此处发布文章,因此,我认为您应该编辑您的答案以披露您是Highsoft的软件开发人员。 “避免公开宣传,社区倾向于否决公开宣传,并将其标记为垃圾邮件。发布好的相关答案,如果某些(但不是全部)碰巧与您的产品或网站有关,那就可以了。 ,则您必须在答案中公开您的从属关系。”

– PolyGeo♦
2014年6月25日10:08

足够公平,已编辑。

–奥斯坦
2014年6月25日在11:29

#15 楼

可以找到一种有趣的方法来比较您想要的JavaScript映射库中的功能(不限于此用例)
它由Richard Donohue等人在NACIS 2012大会上展出。
有趣的部分是有关如何根据目的和所需功能进行分类的信息。

#16 楼

我在搜索当前Web映射工具包的比较之后找到了这篇文章。我认为它仍然最重要。但是,我想分享OSGeo的综合工具包列表作为附加资源。

#17 楼

也许你也可以考虑苍鹭。它基于Ext和开放层构建,它们具有许多您可以自定义的模板。

另一个可能的候选对象是GeoJS。