我可以将 google map/api 与 openlayers 集成吗?

Can I integrate google map/api with openlayers?

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

我也可以使用 google 地图实现上述功能吗?

之前有人问过这个问题,但有些答案过于否定,主要是因为 OpenLayers 示例非常糟糕。

不像Bing Google不允许直接在Openlayers中使用它的地图瓦片,你不能在Google地图中使用OpenLayers代码API所以你需要重写其中的大部分内容。

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

这是一个修改后的例子 运行 这些调整 http://mikenunn.16mb.com/demo/ol5-google-demo.htm 它使用图层切换器,因此您可以比较缩放半透明地质图层与普通 OpenLayers OSM 图层和底层 Google地图。如果您已经有很多 OpenLayers 代码,您可能偶尔希望将其与 Google 背景一起使用,则值得考虑。