首页 > 解决方案 > 我可以将 google map/api 与 openlayers 集成吗?

问题描述

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

我也可以用谷歌地图做上述功能吗?

标签: google-mapsopenlayersbing-maps

解决方案


之前有人问过这个问题,但有些答案过于否定,主要是因为 OpenLayers 的例子很差。

与 Bing 不同,Google 不允许直接在 Openlayers 中使用其地图图块,并且您不能在 Google 地图 API 中使用 OpenLayers 代码,因此您需要重写大部分代码。

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

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


推荐阅读