在Openlayer中添加谷歌地图层.要求是什么

Adding Google map layer in Openlayer. What is the requirement?

本文关键字:图层 是什么 地图 谷歌 Openlayer 添加      更新时间:2023-09-26

自去年以来,我一直在应用程序中使用谷歌地图层,但它突然停止了工作。我们需要密钥使用谷歌地图API。?我的代码如下。

map = new OpenLayers.Map('mapDiv');
map.addControl(new OpenLayers.Control.LayerSwitcher());
var gphy = new OpenLayers.Layer.Google(
    "Google Physical",
    {type: google.maps.MapTypeId.TERRAIN}
);
var gmap = new OpenLayers.Layer.Google(
    "Google Streets", // the default
    {numZoomLevels: 20}
);
var ghyb = new OpenLayers.Layer.Google(
    "Google Hybrid",
    {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20}
);
var gsat = new OpenLayers.Layer.Google(
    "Google Satellite",
    {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22}
);
map.addLayers([gphy, gmap, ghyb, gsat]);
// Google.v3 uses EPSG:900913 as projection, so we have to
// transform our coordinates
map.setCenter(new OpenLayers.LonLat(10.2, 48.9).transform(
    new OpenLayers.Projection("EPSG:4326"),
    map.getProjectionObject()
), 5);

我已经插入了所有必要的脚本库。如果有一次我选择了谷歌卫星,然后尝试谷歌街道或地图以外的其他选项,请在应用程序上加载。

Google不断发布其API的新版本,弃用旧版本。从版本v3.21开始,OpenLayers 2.13.1不再工作。如果你向谷歌申请3.21之前的版本,你仍然会从谷歌获得最新版本。

我精心挑选了上面提到的补丁到我们自己的开放层分叉中:https://github.com/UMS/openlayers/tree/release-2.13.1_ums

这是带有上述更改的2.13.1标签和dist目录。

我们使用bower,以下bower配置适用于我们:

{
    "dependencies": {
        "openlayers": "git://github.com/ums/openlayers.git#release-2.13.1_ums"
    },
    "overrides": {
        "openlayers": {
            "main": [
                "dist/OpenLayers.js",
                "theme/default/style.css",
                "theme/default/img/"
            ]
        }
    }
}

此处讨论了修复方法:https://github.com/openlayers/openlayers/issues/1450-它还有一个链接,指向我精心挑选的修复程序:https://github.com/v5analytics/openlayers/commit/5c6a7f4540b7d70261e9483d3a3770cfbfc72001

Google Maps Javascript API问题追踪器中的相关问题:问题8092:错误:OpenLayers 的页面加载中未显示地图分片