我可以将Google Map / API与Openlayers集成吗?

时间:2018-11-12 15:02:28

标签: google-maps openlayers bing-maps

我有与bing地图集成的openlayers。我也想用google map而不是bing map转换当前系统。我已将bing地图用于行程计划器,绘制形状,搜索位置,添加注释,添加图层等。

我也可以使用Google Map做上述功能吗?

1 个答案:

答案 0 :(得分:2)

这个问题以前曾被问过,但是一些答案却被否定地否定了,主要是由于OpenLayers的例子很差。

与Bing不同,Google不允许直接在Openlayers中使用其地图图块,并且您无法在Google Maps API中使用OpenLayers代码,因此您需要对其进行大量重写。

但是,可以使用JavaScript将Openlayers地图和控件放置在Google地图的顶部。 OpenLayers给出了一个非常糟糕的示例,说明如何使用OpenLayers 3进行此操作,随后将其删除。这是在OpenLayers 4 http://bl.ocks.org/ThomasG77/21192c7045ab8f50e22e中运行的副本。当缩放地图时,很明显,这两个图层严重不同步。但是,通过在Google地图追赶时暂时隐藏上覆的OpenLayers图层和/或最小化OpenLayers缩放持续时间以减少追赶时间,可以显着改善体验。加上一些小问题,例如重置OpenLayers字体大小,使其不继承底层Google地图的较小大小,以及隐藏或重新放置两组属性以避免出现混淆,这会改善体验。还有一个Google选项可禁用缩放动画,但是该选项不再可用。

这是经过修改的http://mikenunn.16mb.com/demo/ol5-google-demo.htm运行示例,它使用了图层切换器,因此您可以在将半透明地质图层与常规OpenLayers OSM图层和基础Google地图进行缩放时比较效果。值得考虑的是,如果您已经有很多OpenLayers代码,有时您可能希望将它们与Google背景一起使用。